@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,3 +1,4 @@
1
+ import type CSSObject from '../../Core/Renderer/CSSObject';
1
2
  /**
2
3
  * The event object for the grid.
3
4
  */
@@ -28,6 +29,10 @@ export interface MakeHTMLElementParameters {
28
29
  innerHTML?: string;
29
30
  style?: Partial<CSSStyleDeclaration>;
30
31
  }
32
+ /**
33
+ * A style object or callback returning one.
34
+ */
35
+ export type StyleValue<T> = CSSObject | ((this: T, target: T) => CSSObject);
31
36
  /**
32
37
  * Creates a HTML element with the provided options.
33
38
  *
@@ -105,6 +110,32 @@ export declare function createOptionsProxy<T extends object>(options: T, default
105
110
  * @returns Formatted text
106
111
  */
107
112
  export declare function formatText(template: string, values: Record<string, string | number>): string;
113
+ /**
114
+ * Resolves a style value that can be static or callback based.
115
+ *
116
+ * @param style
117
+ * Style object or callback returning one.
118
+ *
119
+ * @param target
120
+ * Runtime target used as callback context and first argument.
121
+ *
122
+ * @returns
123
+ * A resolved style object or `undefined`.
124
+ */
125
+ export declare function resolveStyleValue<T>(style?: StyleValue<T>, target?: T): (CSSObject | undefined);
126
+ /**
127
+ * Resolves and merges style values in order.
128
+ *
129
+ * @param target
130
+ * Runtime target used as callback context and first argument.
131
+ *
132
+ * @param styleValues
133
+ * Style values to merge in order, where latter entries override former.
134
+ *
135
+ * @returns
136
+ * Merged style object.
137
+ */
138
+ export declare function mergeStyleValues<T>(target: T, ...styleValues: Array<(StyleValue<T> | undefined)>): CSSObject;
108
139
  declare const _default: {
109
140
  readonly makeHTMLElement: typeof makeHTMLElement;
110
141
  readonly makeDiv: typeof makeDiv;
@@ -113,5 +144,7 @@ declare const _default: {
113
144
  readonly setHTMLContent: typeof setHTMLContent;
114
145
  readonly createOptionsProxy: typeof createOptionsProxy;
115
146
  readonly formatText: typeof formatText;
147
+ readonly resolveStyleValue: typeof resolveStyleValue;
148
+ readonly mergeStyleValues: typeof mergeStyleValues;
116
149
  };
117
150
  export default _default;
@@ -2,19 +2,18 @@
2
2
  *
3
3
  * Grid utilities
4
4
  *
5
- * (c) 2009-2025 Highsoft AS
5
+ * (c) 2009-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
  import AST from '../../Core/Renderer/HTML/AST.js';
16
- import U from '../../Core/Utilities.js';
17
- const { isObject } = U;
16
+ import { isObject } from '../../Shared/Utilities.js';
18
17
  AST.allowedAttributes.push('srcset', 'media');
19
18
  AST.allowedTags.push('picture', 'source');
20
19
  /* *
@@ -163,6 +162,52 @@ export function createOptionsProxy(options, defaultOptions = {}) {
163
162
  export function formatText(template, values) {
164
163
  return template.replace(/\{(\w+)\}/g, (match, key) => (values[key] !== void 0 ? String(values[key]) : match));
165
164
  }
165
+ /**
166
+ * Resolves a style value that can be static or callback based.
167
+ *
168
+ * @param style
169
+ * Style object or callback returning one.
170
+ *
171
+ * @param target
172
+ * Runtime target used as callback context and first argument.
173
+ *
174
+ * @returns
175
+ * A resolved style object or `undefined`.
176
+ */
177
+ export function resolveStyleValue(style, target) {
178
+ if (!style) {
179
+ return;
180
+ }
181
+ if (typeof style === 'function') {
182
+ if (!target) {
183
+ return;
184
+ }
185
+ return style.call(target, target);
186
+ }
187
+ return style;
188
+ }
189
+ /**
190
+ * Resolves and merges style values in order.
191
+ *
192
+ * @param target
193
+ * Runtime target used as callback context and first argument.
194
+ *
195
+ * @param styleValues
196
+ * Style values to merge in order, where latter entries override former.
197
+ *
198
+ * @returns
199
+ * Merged style object.
200
+ */
201
+ export function mergeStyleValues(target, ...styleValues) {
202
+ const mergedStyle = {};
203
+ for (const styleValue of styleValues) {
204
+ const resolvedStyle = resolveStyleValue(styleValue, target);
205
+ if (resolvedStyle) {
206
+ Object.assign(mergedStyle, resolvedStyle);
207
+ }
208
+ }
209
+ return mergedStyle;
210
+ }
166
211
  /* *
167
212
  *
168
213
  * Default Export
@@ -175,5 +220,7 @@ export default {
175
220
  sanitizeText,
176
221
  setHTMLContent,
177
222
  createOptionsProxy,
178
- formatText
223
+ formatText,
224
+ resolveStyleValue,
225
+ mergeStyleValues
179
226
  };
@@ -2,20 +2,101 @@ import type { A11yOptions, HeaderCellA11yOptions, LangAccessibilityOptions } fro
2
2
  import type { PaginationLangOptions, PaginationOptions } from './Pagination/PaginationOptions';
3
3
  import type { ColumnResizingMode } from './Table/ColumnResizing/ColumnResizing';
4
4
  import type { ColumnDataType } from './Table/Column';
5
+ import type { DataProviderOptionsType } from './Data/DataProviderType';
5
6
  import type DataTable from '../../Data/DataTable';
7
+ import type { CellType as DataTableCellType } from '../../Data/DataTable';
6
8
  import type DataTableOptions from '../../Data/DataTableOptions';
7
9
  import type Cell from './Table/Cell';
10
+ import type Column from './Table/Column';
11
+ import type TableCell from './Table/Body/TableCell';
12
+ import type { IconRegistryValue } from './UI/SvgIcons';
8
13
  import type { LangOptionsCore } from '../../Shared/LangOptionsCore';
9
14
  import type { Condition as ColumnFilteringCondition } from './Table/Actions/ColumnFiltering/FilteringTypes';
15
+ import type CSSObject from '../../Core/Renderer/CSSObject';
10
16
  /**
11
17
  * Callback function to be called when a header event is triggered. Returns a
12
18
  * formatted cell's string.
13
19
  */
14
20
  export type CellFormatterCallback = (this: Cell) => string;
21
+ /**
22
+ * Callback function to be called when a header event is triggered. Returns a
23
+ * formatted header's string.
24
+ */
25
+ export type HeaderFormatterCallback = (this: Column) => string;
26
+ /**
27
+ * Callback function to resolve dynamic style for a grid entity.
28
+ */
29
+ export type StyleCallback<T> = (this: T, target: T) => CSSObject;
30
+ /**
31
+ * A static style object or a callback that returns one.
32
+ */
33
+ export type StyleValue<T> = CSSObject | StyleCallback<T>;
15
34
  /**
16
35
  * Column sorting order type.
17
36
  */
18
37
  export type ColumnSortingOrder = 'asc' | 'desc' | null;
38
+ /**
39
+ * Options for a single cell context menu item.
40
+ */
41
+ export interface CellContextMenuActionItemOptions {
42
+ /**
43
+ * The label shown in the menu.
44
+ */
45
+ label: string;
46
+ /**
47
+ * Optional icon name for the menu item (built-in name from the default
48
+ * registry or custom name from rendering.icons).
49
+ */
50
+ icon?: string;
51
+ /**
52
+ * Whether the menu item should be disabled.
53
+ */
54
+ disabled?: boolean;
55
+ /**
56
+ * Whether to render a divider instead of a button.
57
+ */
58
+ separator?: false;
59
+ /**
60
+ * Callback executed when the menu item is clicked.
61
+ *
62
+ * The cell is available on `this` and is also passed as the first argument
63
+ * to support arrow functions.
64
+ */
65
+ onClick?: (this: TableCell, cell: TableCell) => void;
66
+ }
67
+ /**
68
+ * Options for a divider item in the cell context menu.
69
+ */
70
+ export interface CellContextMenuDividerItemOptions {
71
+ /**
72
+ * Whether to render a divider instead of a button.
73
+ */
74
+ separator: true;
75
+ /**
76
+ * Optional label for accessibility or testing.
77
+ * Not rendered as a clickable item.
78
+ */
79
+ label?: string;
80
+ }
81
+ /**
82
+ * Options for a single cell context menu item.
83
+ */
84
+ export type CellContextMenuItemOptions = CellContextMenuDividerItemOptions | CellContextMenuActionItemOptions;
85
+ /**
86
+ * Cell context menu options.
87
+ */
88
+ export interface CellContextMenuOptions {
89
+ /**
90
+ * Whether the cell context menu is enabled.
91
+ *
92
+ * @default true
93
+ */
94
+ enabled?: boolean;
95
+ /**
96
+ * List of items to show in the cell context menu.
97
+ */
98
+ items?: Array<CellContextMenuItemOptions>;
99
+ }
19
100
  /**
20
101
  * Options to control the content and the user experience of a grid structure.
21
102
  */
@@ -41,8 +122,15 @@ export interface Options {
41
122
  * Options for individual columns.
42
123
  */
43
124
  columns?: Array<IndividualColumnOptions>;
125
+ /**
126
+ * Options for the data provider.
127
+ */
128
+ data?: DataProviderOptionsType;
44
129
  /**
45
130
  * Data table with the data to display in the grid structure.
131
+ *
132
+ * @deprecated
133
+ * Use `data.dataTable` instead.
46
134
  */
47
135
  dataTable?: DataTable | DataTableOptions;
48
136
  /**
@@ -77,6 +165,25 @@ export interface Options {
77
165
  * Options to control the way grid is rendered.
78
166
  */
79
167
  export interface RenderingSettings {
168
+ /**
169
+ * Custom or override icons for the grid. Keys are icon names (either
170
+ * built-in names from the default registry or custom names). Values
171
+ * are either an SVG definition object or a raw SVG markup string.
172
+ * Built-in icons can be overridden; new names can be used for custom
173
+ * icons and referenced where an icon name is accepted (e.g. menu
174
+ * items, pagination buttons).
175
+ *
176
+ * @example
177
+ * ```js
178
+ * rendering: {
179
+ * icons: {
180
+ * chevronRight: '<svg>...</svg>',
181
+ * myCustomIcon: { width: 16, height: 16, children: [{ d: '...' }] }
182
+ * }
183
+ * }
184
+ * ```
185
+ */
186
+ icons?: Record<string, IconRegistryValue>;
80
187
  /**
81
188
  * Options to control the columns rendering.
82
189
  */
@@ -262,9 +369,9 @@ export interface ColumnOptions {
262
369
  */
263
370
  sorting?: ColumnSortingOptions;
264
371
  /**
265
- * The width of the column. It can be set in pixels or as a percentage of
266
- * the table width. If unset, the width is distributed evenly between all
267
- * columns.
372
+ * The width of the column. It can be set in pixels, as a percentage of the
373
+ * table width, or `'auto'`. If unset or `'auto'`, the width is distributed
374
+ * evenly between columns without a fixed width.
268
375
  *
269
376
  * This option does not work with the `resizing` option set to `full`.
270
377
  *
@@ -276,6 +383,11 @@ export interface ColumnOptions {
276
383
  * Filtering options for the column.
277
384
  */
278
385
  filtering?: ColumnFilteringOptions;
386
+ /**
387
+ * CSS styles for the whole column, applied to the header and body cells.
388
+ * Can be a static style object or a callback that returns one.
389
+ */
390
+ style?: StyleValue<Column>;
279
391
  }
280
392
  /**
281
393
  * Options for all cells in the column.
@@ -313,6 +425,11 @@ export interface ColumnCellOptions {
313
425
  * A string to be set as a table cell's content.
314
426
  */
315
427
  formatter?: CellFormatterCallback;
428
+ /**
429
+ * CSS styles for table body cells in the column.
430
+ * Can be a static style object or a callback that returns one.
431
+ */
432
+ style?: StyleValue<Cell>;
316
433
  }
317
434
  /**
318
435
  * Options for the header cells in the columns.
@@ -337,7 +454,12 @@ export interface ColumnHeaderOptions {
337
454
  * @return
338
455
  * A string to be set as a header cell's content.
339
456
  */
340
- formatter?: CellFormatterCallback;
457
+ formatter?: HeaderFormatterCallback;
458
+ /**
459
+ * CSS styles for the column header cells.
460
+ * Can be a static style object or a callback that returns one.
461
+ */
462
+ style?: StyleValue<Column>;
341
463
  }
342
464
  /**
343
465
  * Column sorting options available for applying to all columns at once.
@@ -355,7 +477,28 @@ export interface ColumnSortingOptions {
355
477
  *
356
478
  * @default true
357
479
  */
480
+ enabled?: boolean;
481
+ /**
482
+ * @deprecated
483
+ * Use `enabled` instead
484
+ */
358
485
  sortable?: boolean;
486
+ /**
487
+ * Sequence of sorting orders used when toggling sorting from the user
488
+ * interface (for example by clicking the column header).
489
+ *
490
+ * The sequence can contain any number of values, in any order, with
491
+ * duplicates allowed. Allowed values are: `'asc'`, `'desc'`, and `null`.
492
+ *
493
+ * If the sequence is empty (`[]`), sorting toggles become a no-op while
494
+ * the sortable UI can still be shown.
495
+ *
496
+ * This option can be set in both `columnDefaults.sorting` and
497
+ * `columns[].sorting`.
498
+ *
499
+ * @default ['asc', 'desc', null]
500
+ */
501
+ orderSequence?: ColumnSortingOrder[];
359
502
  /**
360
503
  * Custom compare function to sort the column values. It overrides the
361
504
  * default sorting behavior. If not set, the default sorting behavior is
@@ -371,7 +514,7 @@ export interface ColumnSortingOptions {
371
514
  * A number indicating whether the first value (`a`) is less than (`-1`),
372
515
  * equal to (`0`), or greater than (`1`) the second value (`b`).
373
516
  */
374
- compare?: (a: DataTable.CellType, b: DataTable.CellType) => number;
517
+ compare?: (a: DataTableCellType, b: DataTableCellType) => number;
375
518
  }
376
519
  /**
377
520
  * Column sorting options that can be set for each column individually.
@@ -384,6 +527,11 @@ export interface IndividualColumnSortingOptions extends ColumnSortingOptions {
384
527
  * @default null
385
528
  */
386
529
  order?: ColumnSortingOrder;
530
+ /**
531
+ * Priority of this column when multiple columns are sorted. Lower numbers
532
+ * have higher priority.
533
+ */
534
+ priority?: number;
387
535
  }
388
536
  /**
389
537
  * Column options that can be set for each column individually.
@@ -423,6 +571,15 @@ export interface CaptionOptions {
423
571
  * The custom CSS class name for the table caption.
424
572
  */
425
573
  className?: string;
574
+ /**
575
+ * The HTML tag to use for the caption. When set, the caption is rendered
576
+ * as that element (e.g. `h1`, `p`, `span`). Must be one of
577
+ * [AST.allowedTags](https://api.highcharts.com/class-reference/Highcharts.AST#allowedTags)
578
+ * (e.g. `div`, `p`, `span`, `h1`–`h6`).
579
+ *
580
+ * @default 'div'
581
+ */
582
+ htmlTag?: string;
426
583
  /**
427
584
  * The caption of the grid.
428
585
  *
@@ -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
@@ -91,6 +91,9 @@ declare class Pagination {
91
91
  * the specified ID.
92
92
  */
93
93
  render(): void;
94
+ private getAlignmentClass;
95
+ updateAlignmentClass(): void;
96
+ redraw(): void;
94
97
  /**
95
98
  * Render pagination in a tfoot element.
96
99
  */
@@ -2,24 +2,30 @@
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
13
13
  *
14
14
  * */
15
15
  'use strict';
16
- import Icons from './Icons.js';
16
+ import { createGridIcon } from '../UI/SvgIcons.js';
17
17
  import Globals from '../Globals.js';
18
18
  import GridUtils from '../GridUtils.js';
19
- import Utilities from '../../../Core/Utilities.js';
20
19
  import AST from '../../../Core/Renderer/HTML/AST.js';
20
+ import { defined, fireEvent, isObject, merge } from '../../../Shared/Utilities.js';
21
21
  const { makeHTMLElement, formatText } = GridUtils;
22
- const { defined, fireEvent, isObject, merge } = Utilities;
22
+ const paginationAlignments = [
23
+ 'left',
24
+ 'center',
25
+ 'right',
26
+ 'distributed'
27
+ ];
28
+ const alignmentClassName = (alignment) => `${Globals.classNamePrefix}pagination-${alignment}`;
23
29
  /**
24
30
  * Representing the pagination functionalities for the Grid.
25
31
  */
@@ -83,6 +89,10 @@ class Pagination {
83
89
  delete diff.page;
84
90
  delete diff.pageSize;
85
91
  }
92
+ if ('alignment' in diff) {
93
+ this.isDirtyAlignment = true;
94
+ delete diff.alignment;
95
+ }
86
96
  // TODO: Optimize more options here.
87
97
  if (Object.keys(diff).length > 0) {
88
98
  this.grid.dirtyFlags.add('grid');
@@ -101,6 +111,7 @@ class Pagination {
101
111
  render() {
102
112
  const position = this.options?.position;
103
113
  const grid = this.grid;
114
+ const alignmentClass = this.getAlignmentClass();
104
115
  this.oldTotalItems = this.controller.totalItems;
105
116
  // Set row count for a11y
106
117
  grid.tableElement?.setAttribute('aria-current', 'page');
@@ -114,7 +125,9 @@ class Pagination {
114
125
  this.renderFooter();
115
126
  }
116
127
  this.contentWrapper = makeHTMLElement('nav', {
117
- className: Globals.getClassName('paginationWrapper')
128
+ className: alignmentClass ?
129
+ `${Globals.getClassName('pagination')} ${alignmentClass}` :
130
+ Globals.getClassName('pagination')
118
131
  }, position === 'footer' ?
119
132
  this.paginationContainer : grid.contentWrapper);
120
133
  this.contentWrapper.setAttribute('aria-label', 'Results pagination');
@@ -126,6 +139,30 @@ class Pagination {
126
139
  // Update button states after rendering
127
140
  this.updateButtonStates();
128
141
  }
142
+ getAlignmentClass() {
143
+ const align = this.options?.align || '';
144
+ return alignmentClassName(align);
145
+ }
146
+ updateAlignmentClass() {
147
+ const wrapper = this.contentWrapper;
148
+ if (!wrapper) {
149
+ return;
150
+ }
151
+ const alignmentClasses = paginationAlignments.map(alignmentClassName);
152
+ wrapper.classList.remove(...alignmentClasses);
153
+ const alignmentClass = this.getAlignmentClass();
154
+ wrapper.classList.add(alignmentClass);
155
+ }
156
+ redraw() {
157
+ if (this.isDirtyQuerying) {
158
+ this.updateControls(true);
159
+ }
160
+ if (this.isDirtyAlignment) {
161
+ this.updateAlignmentClass();
162
+ }
163
+ delete this.isDirtyQuerying;
164
+ delete this.isDirtyAlignment;
165
+ }
129
166
  /**
130
167
  * Render pagination in a tfoot element.
131
168
  */
@@ -156,9 +193,13 @@ class Pagination {
156
193
  return;
157
194
  }
158
195
  this.paginationContainer = customContainer;
196
+ const alignmentClass = this.getAlignmentClass();
197
+ const className = alignmentClass ?
198
+ `${Globals.getClassName('pagination')} ${alignmentClass}` :
199
+ Globals.getClassName('pagination');
159
200
  // Set content wrapper to the custom container
160
201
  this.contentWrapper = makeHTMLElement('div', {
161
- className: Globals.getClassName('paginationContainer')
202
+ className: className
162
203
  }, customContainer);
163
204
  }
164
205
  /**
@@ -199,7 +240,7 @@ class Pagination {
199
240
  */
200
241
  renderControls() {
201
242
  const navContainer = makeHTMLElement('div', {
202
- className: Globals.getClassName('paginationControlsContainer')
243
+ className: Globals.getClassName('paginationControls')
203
244
  }, this.contentWrapper);
204
245
  const controls = this.options?.controls || {};
205
246
  // Render first/previous buttons
@@ -214,8 +255,6 @@ class Pagination {
214
255
  if (controls.pageButtons) {
215
256
  this.renderPageNumbers(navContainer);
216
257
  }
217
- // Render dropdown page selector
218
- this.renderDropdownPageSelector(navContainer);
219
258
  // Render next button
220
259
  if (controls.previousNextButtons) {
221
260
  this.renderNextButton(navContainer);
@@ -257,11 +296,11 @@ class Pagination {
257
296
  (isObject(firstLastButtons) && firstLastButtons.enabled === false)) {
258
297
  return;
259
298
  }
260
- // Create first button
299
+ const firstIconEl = createGridIcon('doubleChevronLeft', this.grid.options?.rendering?.icons);
261
300
  this.firstButton = makeHTMLElement('button', {
262
- className: Globals.getClassName('button'),
263
- innerHTML: Icons.first
301
+ className: Globals.getClassName('button')
264
302
  }, container);
303
+ this.firstButton.appendChild(firstIconEl);
265
304
  this.firstButton.title = this.lang?.firstPage ?? '';
266
305
  // Set aria-label for a11y
267
306
  this.firstButton.setAttribute('aria-label', this.lang?.firstPage ?? '');
@@ -284,11 +323,12 @@ class Pagination {
284
323
  previousNextButtons.enabled === false)) {
285
324
  return;
286
325
  }
287
- // Create previous button
326
+ const prevIconName = 'chevronLeft';
327
+ const prevIconEl = createGridIcon(prevIconName, this.grid.options?.rendering?.icons);
288
328
  this.prevButton = makeHTMLElement('button', {
289
- className: Globals.getClassName('button'),
290
- innerHTML: Icons.previous
329
+ className: Globals.getClassName('button')
291
330
  }, container);
331
+ this.prevButton.appendChild(prevIconEl);
292
332
  this.prevButton.title = this.lang?.previousPage ?? '';
293
333
  // Set aria-label for a11y
294
334
  this.prevButton.setAttribute('aria-label', this.lang?.previousPage ?? '');
@@ -311,11 +351,12 @@ class Pagination {
311
351
  previousNextButtons.enabled === false)) {
312
352
  return;
313
353
  }
314
- // Create next button
354
+ const nextIconName = 'chevronRight';
355
+ const nextIconEl = createGridIcon(nextIconName, this.grid.options?.rendering?.icons);
315
356
  this.nextButton = makeHTMLElement('button', {
316
- className: Globals.getClassName('button'),
317
- innerHTML: Icons.next
357
+ className: Globals.getClassName('button')
318
358
  }, container);
359
+ this.nextButton.appendChild(nextIconEl);
319
360
  this.nextButton.title = this.lang?.nextPage ?? '';
320
361
  // Set aria-label for a11y
321
362
  this.nextButton.setAttribute('aria-label', this.lang?.nextPage ?? '');
@@ -337,11 +378,12 @@ class Pagination {
337
378
  (isObject(firstLastButtons) && firstLastButtons.enabled === false)) {
338
379
  return;
339
380
  }
340
- // Create last button
381
+ const lastIconName = 'doubleChevronRight';
382
+ const lastIconEl = createGridIcon(lastIconName, this.grid.options?.rendering?.icons);
341
383
  this.lastButton = makeHTMLElement('button', {
342
- className: Globals.getClassName('button'),
343
- innerHTML: Icons.last
384
+ className: Globals.getClassName('button')
344
385
  }, container);
386
+ this.lastButton.appendChild(lastIconEl);
345
387
  this.lastButton.title = this.lang?.lastPage ?? '';
346
388
  // Set aria-label for a11y
347
389
  this.lastButton.setAttribute('aria-label', this.lang?.lastPage ?? '');
@@ -364,7 +406,7 @@ class Pagination {
364
406
  return;
365
407
  }
366
408
  this.pageNumbersContainer = makeHTMLElement('div', {
367
- className: Globals.getClassName('paginationNavButtonsContainer')
409
+ className: Globals.getClassName('paginationPages')
368
410
  }, container);
369
411
  this.updatePageNumbers();
370
412
  }
@@ -481,8 +523,6 @@ class Pagination {
481
523
  }
482
524
  });
483
525
  }
484
- // Update dropdown selector if it exists
485
- this.updateDropdownPageSelector();
486
526
  }
487
527
  /**
488
528
  * Create a page number button.