@highcharts/grid-pro 2.0.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 (442) hide show
  1. package/README.md +35 -0
  2. package/css/grid-pro.css +1756 -0
  3. package/es-modules/Accessibility/A11yI18n.d.ts +95 -0
  4. package/es-modules/Accessibility/A11yI18n.js +290 -0
  5. package/es-modules/Accessibility/Accessibility.d.ts +116 -0
  6. package/es-modules/Accessibility/Accessibility.js +402 -0
  7. package/es-modules/Accessibility/AccessibilityComponent.d.ts +97 -0
  8. package/es-modules/Accessibility/AccessibilityComponent.js +147 -0
  9. package/es-modules/Accessibility/Components/AnnotationsA11y.d.ts +43 -0
  10. package/es-modules/Accessibility/Components/AnnotationsA11y.js +160 -0
  11. package/es-modules/Accessibility/Components/ContainerComponent.d.ts +48 -0
  12. package/es-modules/Accessibility/Components/ContainerComponent.js +142 -0
  13. package/es-modules/Accessibility/Components/InfoRegionsComponent.d.ts +144 -0
  14. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +555 -0
  15. package/es-modules/Accessibility/Components/LegendComponent.d.ts +124 -0
  16. package/es-modules/Accessibility/Components/LegendComponent.js +474 -0
  17. package/es-modules/Accessibility/Components/MenuComponent.d.ts +93 -0
  18. package/es-modules/Accessibility/Components/MenuComponent.js +430 -0
  19. package/es-modules/Accessibility/Components/NavigatorComponent.d.ts +57 -0
  20. package/es-modules/Accessibility/Components/NavigatorComponent.js +235 -0
  21. package/es-modules/Accessibility/Components/RangeSelectorComponent.d.ts +126 -0
  22. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +473 -0
  23. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.d.ts +18 -0
  24. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +234 -0
  25. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.d.ts +87 -0
  26. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +309 -0
  27. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.d.ts +53 -0
  28. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +130 -0
  29. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.d.ts +28 -0
  30. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +415 -0
  31. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.d.ts +114 -0
  32. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +721 -0
  33. package/es-modules/Accessibility/Components/ZoomComponent.d.ts +96 -0
  34. package/es-modules/Accessibility/Components/ZoomComponent.js +314 -0
  35. package/es-modules/Accessibility/FocusBorder.d.ts +40 -0
  36. package/es-modules/Accessibility/FocusBorder.js +301 -0
  37. package/es-modules/Accessibility/HighContrastMode.d.ts +35 -0
  38. package/es-modules/Accessibility/HighContrastMode.js +100 -0
  39. package/es-modules/Accessibility/HighContrastTheme.d.ts +11 -0
  40. package/es-modules/Accessibility/HighContrastTheme.js +212 -0
  41. package/es-modules/Accessibility/KeyboardNavigation.d.ts +133 -0
  42. package/es-modules/Accessibility/KeyboardNavigation.js +450 -0
  43. package/es-modules/Accessibility/KeyboardNavigationHandler.d.ts +48 -0
  44. package/es-modules/Accessibility/KeyboardNavigationHandler.js +126 -0
  45. package/es-modules/Accessibility/Options/A11yDefaults.d.ts +68 -0
  46. package/es-modules/Accessibility/Options/A11yDefaults.js +971 -0
  47. package/es-modules/Accessibility/Options/DeprecatedOptions.d.ts +22 -0
  48. package/es-modules/Accessibility/Options/DeprecatedOptions.js +265 -0
  49. package/es-modules/Accessibility/Options/LangDefaults.d.ts +4 -0
  50. package/es-modules/Accessibility/Options/LangDefaults.js +440 -0
  51. package/es-modules/Accessibility/ProxyElement.d.ts +78 -0
  52. package/es-modules/Accessibility/ProxyElement.js +223 -0
  53. package/es-modules/Accessibility/ProxyProvider.d.ts +90 -0
  54. package/es-modules/Accessibility/ProxyProvider.js +315 -0
  55. package/es-modules/Accessibility/Utils/Announcer.d.ts +26 -0
  56. package/es-modules/Accessibility/Utils/Announcer.js +90 -0
  57. package/es-modules/Accessibility/Utils/ChartUtilities.d.ts +90 -0
  58. package/es-modules/Accessibility/Utils/ChartUtilities.js +298 -0
  59. package/es-modules/Accessibility/Utils/DOMElementProvider.d.ts +20 -0
  60. package/es-modules/Accessibility/Utils/DOMElementProvider.js +69 -0
  61. package/es-modules/Accessibility/Utils/EventProvider.d.ts +26 -0
  62. package/es-modules/Accessibility/Utils/EventProvider.js +65 -0
  63. package/es-modules/Accessibility/Utils/HTMLUtilities.d.ts +108 -0
  64. package/es-modules/Accessibility/Utils/HTMLUtilities.js +319 -0
  65. package/es-modules/Core/Animation/AnimationUtilities.d.ts +107 -0
  66. package/es-modules/Core/Animation/AnimationUtilities.js +200 -0
  67. package/es-modules/Core/Animation/Fx.d.ts +130 -0
  68. package/es-modules/Core/Animation/Fx.js +388 -0
  69. package/es-modules/Core/Chart/Chart.d.ts +1009 -0
  70. package/es-modules/Core/Chart/Chart.js +3008 -0
  71. package/es-modules/Core/Chart/Chart3D.d.ts +276 -0
  72. package/es-modules/Core/Chart/Chart3D.js +1686 -0
  73. package/es-modules/Core/Chart/ChartDefaults.d.ts +8 -0
  74. package/es-modules/Core/Chart/ChartDefaults.js +1304 -0
  75. package/es-modules/Core/Chart/ChartNavigationComposition.d.ts +55 -0
  76. package/es-modules/Core/Chart/ChartNavigationComposition.js +90 -0
  77. package/es-modules/Core/Chart/GanttChart.d.ts +74 -0
  78. package/es-modules/Core/Chart/GanttChart.js +189 -0
  79. package/es-modules/Core/Chart/MapChart.d.ts +132 -0
  80. package/es-modules/Core/Chart/MapChart.js +232 -0
  81. package/es-modules/Core/Chart/StockChart.d.ts +117 -0
  82. package/es-modules/Core/Chart/StockChart.js +641 -0
  83. package/es-modules/Core/Color/Color.d.ts +112 -0
  84. package/es-modules/Core/Color/Color.js +418 -0
  85. package/es-modules/Core/Color/Palettes.d.ts +84 -0
  86. package/es-modules/Core/Color/Palettes.js +23 -0
  87. package/es-modules/Core/Defaults.d.ts +42 -0
  88. package/es-modules/Core/Defaults.js +2977 -0
  89. package/es-modules/Core/Foundation.d.ts +19 -0
  90. package/es-modules/Core/Foundation.js +63 -0
  91. package/es-modules/Core/Geometry/CircleUtilities.d.ts +189 -0
  92. package/es-modules/Core/Geometry/CircleUtilities.js +388 -0
  93. package/es-modules/Core/Geometry/GeometryUtilities.d.ts +48 -0
  94. package/es-modules/Core/Geometry/GeometryUtilities.js +105 -0
  95. package/es-modules/Core/Geometry/PolygonClip.d.ts +19 -0
  96. package/es-modules/Core/Geometry/PolygonClip.js +96 -0
  97. package/es-modules/Core/Globals.d.ts +110 -0
  98. package/es-modules/Core/Globals.js +127 -0
  99. package/es-modules/Core/HttpUtilities.d.ts +61 -0
  100. package/es-modules/Core/HttpUtilities.js +214 -0
  101. package/es-modules/Core/MSPointer.d.ts +74 -0
  102. package/es-modules/Core/MSPointer.js +218 -0
  103. package/es-modules/Core/Math3D.d.ts +117 -0
  104. package/es-modules/Core/Math3D.js +250 -0
  105. package/es-modules/Core/Pointer.d.ts +590 -0
  106. package/es-modules/Core/Pointer.js +1631 -0
  107. package/es-modules/Core/Renderer/HTML/AST.d.ts +163 -0
  108. package/es-modules/Core/Renderer/HTML/AST.js +562 -0
  109. package/es-modules/Core/Renderer/HTML/HTMLElement.d.ts +76 -0
  110. package/es-modules/Core/Renderer/HTML/HTMLElement.js +471 -0
  111. package/es-modules/Core/Renderer/RendererRegistry.d.ts +29 -0
  112. package/es-modules/Core/Renderer/RendererRegistry.js +76 -0
  113. package/es-modules/Core/Renderer/RendererUtilities.d.ts +26 -0
  114. package/es-modules/Core/Renderer/RendererUtilities.js +172 -0
  115. package/es-modules/Core/Responsive.d.ts +55 -0
  116. package/es-modules/Core/Responsive.js +260 -0
  117. package/es-modules/Core/Templating.d.ts +125 -0
  118. package/es-modules/Core/Templating.js +428 -0
  119. package/es-modules/Core/Time.d.ts +69 -0
  120. package/es-modules/Core/Time.js +172 -0
  121. package/es-modules/Core/Tooltip.d.ts +297 -0
  122. package/es-modules/Core/Tooltip.js +1377 -0
  123. package/es-modules/Core/Utilities.d.ts +770 -0
  124. package/es-modules/Core/Utilities.js +1989 -0
  125. package/es-modules/Data/ColumnUtils.d.ts +87 -0
  126. package/es-modules/Data/ColumnUtils.js +140 -0
  127. package/es-modules/Data/Connectors/CSVConnector.d.ts +63 -0
  128. package/es-modules/Data/Connectors/CSVConnector.js +149 -0
  129. package/es-modules/Data/Connectors/CSVConnectorOptions.d.ts +149 -0
  130. package/es-modules/Data/Connectors/DataConnector.d.ts +204 -0
  131. package/es-modules/Data/Connectors/DataConnector.js +345 -0
  132. package/es-modules/Data/Connectors/DataConnectorOptions.d.ts +87 -0
  133. package/es-modules/Data/Connectors/DataConnectorType.d.ts +45 -0
  134. package/es-modules/Data/Connectors/GoogleSheetsConnector.d.ts +65 -0
  135. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +226 -0
  136. package/es-modules/Data/Connectors/GoogleSheetsConnectorOptions.d.ts +167 -0
  137. package/es-modules/Data/Connectors/HTMLTableConnector.d.ts +77 -0
  138. package/es-modules/Data/Connectors/HTMLTableConnector.js +119 -0
  139. package/es-modules/Data/Connectors/HTMLTableConnectorOptions.d.ts +49 -0
  140. package/es-modules/Data/Connectors/JSONConnector.d.ts +64 -0
  141. package/es-modules/Data/Connectors/JSONConnector.js +156 -0
  142. package/es-modules/Data/Connectors/JSONConnectorOptions.d.ts +185 -0
  143. package/es-modules/Data/Converters/CSVConverter.d.ts +64 -0
  144. package/es-modules/Data/Converters/CSVConverter.js +374 -0
  145. package/es-modules/Data/Converters/CSVConverterOptions.d.ts +53 -0
  146. package/es-modules/Data/Converters/DataConverter.d.ts +168 -0
  147. package/es-modules/Data/Converters/DataConverter.js +387 -0
  148. package/es-modules/Data/Converters/DataConverterType.d.ts +40 -0
  149. package/es-modules/Data/Converters/DataConverterUtils.d.ts +82 -0
  150. package/es-modules/Data/Converters/DataConverterUtils.js +216 -0
  151. package/es-modules/Data/Converters/GoogleSheetsConverter.d.ts +46 -0
  152. package/es-modules/Data/Converters/GoogleSheetsConverter.js +135 -0
  153. package/es-modules/Data/Converters/GoogleSheetsConverterOptions.d.ts +52 -0
  154. package/es-modules/Data/Converters/HTMLTableConverter.d.ts +72 -0
  155. package/es-modules/Data/Converters/HTMLTableConverter.js +362 -0
  156. package/es-modules/Data/Converters/HTMLTableConverterOptions.d.ts +51 -0
  157. package/es-modules/Data/Converters/JSONConverter.d.ts +99 -0
  158. package/es-modules/Data/Converters/JSONConverter.js +239 -0
  159. package/es-modules/Data/Converters/JSONConverterOptions.d.ts +52 -0
  160. package/es-modules/Data/DataCursor.d.ts +176 -0
  161. package/es-modules/Data/DataCursor.js +379 -0
  162. package/es-modules/Data/DataEvent.d.ts +81 -0
  163. package/es-modules/Data/DataEvent.js +14 -0
  164. package/es-modules/Data/DataPool.d.ts +130 -0
  165. package/es-modules/Data/DataPool.js +257 -0
  166. package/es-modules/Data/DataPoolOptions.d.ts +66 -0
  167. package/es-modules/Data/DataTable.d.ts +563 -0
  168. package/es-modules/Data/DataTable.js +930 -0
  169. package/es-modules/Data/DataTableCore.d.ts +165 -0
  170. package/es-modules/Data/DataTableCore.js +316 -0
  171. package/es-modules/Data/DataTableOptions.d.ts +25 -0
  172. package/es-modules/Data/DataTableOptions.js +15 -0
  173. package/es-modules/Data/Formula/Formula.d.ts +21 -0
  174. package/es-modules/Data/Formula/Formula.js +54 -0
  175. package/es-modules/Data/Formula/FormulaParser.d.ts +31 -0
  176. package/es-modules/Data/Formula/FormulaParser.js +488 -0
  177. package/es-modules/Data/Formula/FormulaProcessor.d.ts +155 -0
  178. package/es-modules/Data/Formula/FormulaProcessor.js +529 -0
  179. package/es-modules/Data/Formula/FormulaTypes.d.ts +138 -0
  180. package/es-modules/Data/Formula/FormulaTypes.js +135 -0
  181. package/es-modules/Data/Formula/Functions/ABS.d.ts +19 -0
  182. package/es-modules/Data/Formula/Functions/ABS.js +67 -0
  183. package/es-modules/Data/Formula/Functions/AND.d.ts +20 -0
  184. package/es-modules/Data/Formula/Functions/AND.js +59 -0
  185. package/es-modules/Data/Formula/Functions/AVERAGE.d.ts +20 -0
  186. package/es-modules/Data/Formula/Functions/AVERAGE.js +74 -0
  187. package/es-modules/Data/Formula/Functions/AVERAGEA.d.ts +20 -0
  188. package/es-modules/Data/Formula/Functions/AVERAGEA.js +90 -0
  189. package/es-modules/Data/Formula/Functions/COUNT.d.ts +20 -0
  190. package/es-modules/Data/Formula/Functions/COUNT.js +65 -0
  191. package/es-modules/Data/Formula/Functions/COUNTA.d.ts +20 -0
  192. package/es-modules/Data/Formula/Functions/COUNTA.js +71 -0
  193. package/es-modules/Data/Formula/Functions/IF.d.ts +21 -0
  194. package/es-modules/Data/Formula/Functions/IF.js +54 -0
  195. package/es-modules/Data/Formula/Functions/ISNA.d.ts +20 -0
  196. package/es-modules/Data/Formula/Functions/ISNA.js +52 -0
  197. package/es-modules/Data/Formula/Functions/MAX.d.ts +20 -0
  198. package/es-modules/Data/Formula/Functions/MAX.js +69 -0
  199. package/es-modules/Data/Formula/Functions/MEDIAN.d.ts +20 -0
  200. package/es-modules/Data/Formula/Functions/MEDIAN.js +78 -0
  201. package/es-modules/Data/Formula/Functions/MIN.d.ts +20 -0
  202. package/es-modules/Data/Formula/Functions/MIN.js +69 -0
  203. package/es-modules/Data/Formula/Functions/MOD.d.ts +20 -0
  204. package/es-modules/Data/Formula/Functions/MOD.js +63 -0
  205. package/es-modules/Data/Formula/Functions/MODE.d.ts +41 -0
  206. package/es-modules/Data/Formula/Functions/MODE.js +149 -0
  207. package/es-modules/Data/Formula/Functions/NOT.d.ts +20 -0
  208. package/es-modules/Data/Formula/Functions/NOT.js +60 -0
  209. package/es-modules/Data/Formula/Functions/OR.d.ts +20 -0
  210. package/es-modules/Data/Formula/Functions/OR.js +62 -0
  211. package/es-modules/Data/Formula/Functions/PRODUCT.d.ts +20 -0
  212. package/es-modules/Data/Formula/Functions/PRODUCT.js +68 -0
  213. package/es-modules/Data/Formula/Functions/SUM.d.ts +20 -0
  214. package/es-modules/Data/Formula/Functions/SUM.js +65 -0
  215. package/es-modules/Data/Formula/Functions/XOR.d.ts +20 -0
  216. package/es-modules/Data/Formula/Functions/XOR.js +81 -0
  217. package/es-modules/Data/Modifiers/ChainModifier.d.ts +128 -0
  218. package/es-modules/Data/Modifiers/ChainModifier.js +231 -0
  219. package/es-modules/Data/Modifiers/ChainModifierOptions.d.ts +20 -0
  220. package/es-modules/Data/Modifiers/ChainModifierOptions.js +14 -0
  221. package/es-modules/Data/Modifiers/DataModifier.d.ts +117 -0
  222. package/es-modules/Data/Modifiers/DataModifier.js +202 -0
  223. package/es-modules/Data/Modifiers/DataModifierEvent.d.ts +28 -0
  224. package/es-modules/Data/Modifiers/DataModifierEvent.js +15 -0
  225. package/es-modules/Data/Modifiers/DataModifierOptions.d.ts +11 -0
  226. package/es-modules/Data/Modifiers/DataModifierOptions.js +15 -0
  227. package/es-modules/Data/Modifiers/DataModifierType.d.ts +44 -0
  228. package/es-modules/Data/Modifiers/FilterModifier.d.ts +53 -0
  229. package/es-modules/Data/Modifiers/FilterModifier.js +172 -0
  230. package/es-modules/Data/Modifiers/FilterModifierOptions.d.ts +110 -0
  231. package/es-modules/Data/Modifiers/FilterModifierOptions.js +14 -0
  232. package/es-modules/Data/Modifiers/InvertModifier.d.ts +48 -0
  233. package/es-modules/Data/Modifiers/InvertModifier.js +116 -0
  234. package/es-modules/Data/Modifiers/InvertModifierOptions.d.ts +11 -0
  235. package/es-modules/Data/Modifiers/InvertModifierOptions.js +15 -0
  236. package/es-modules/Data/Modifiers/MathModifier.d.ts +68 -0
  237. package/es-modules/Data/Modifiers/MathModifier.js +165 -0
  238. package/es-modules/Data/Modifiers/MathModifierOptions.d.ts +50 -0
  239. package/es-modules/Data/Modifiers/MathModifierOptions.js +14 -0
  240. package/es-modules/Data/Modifiers/RangeModifier.d.ts +46 -0
  241. package/es-modules/Data/Modifiers/RangeModifier.js +96 -0
  242. package/es-modules/Data/Modifiers/RangeModifierOptions.d.ts +22 -0
  243. package/es-modules/Data/Modifiers/RangeModifierOptions.js +15 -0
  244. package/es-modules/Data/Modifiers/SortModifier.d.ts +54 -0
  245. package/es-modules/Data/Modifiers/SortModifier.js +144 -0
  246. package/es-modules/Data/Modifiers/SortModifierOptions.d.ts +44 -0
  247. package/es-modules/Data/Modifiers/SortModifierOptions.js +14 -0
  248. package/es-modules/Grid/Core/Accessibility/A11yOptions.d.ts +148 -0
  249. package/es-modules/Grid/Core/Accessibility/A11yOptions.js +17 -0
  250. package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +115 -0
  251. package/es-modules/Grid/Core/Accessibility/Accessibility.js +231 -0
  252. package/es-modules/Grid/Core/Credits.d.ts +57 -0
  253. package/es-modules/Grid/Core/Credits.js +125 -0
  254. package/es-modules/Grid/Core/Defaults.d.ts +20 -0
  255. package/es-modules/Grid/Core/Defaults.js +148 -0
  256. package/es-modules/Grid/Core/Globals.d.ts +103 -0
  257. package/es-modules/Grid/Core/Globals.js +134 -0
  258. package/es-modules/Grid/Core/Grid.d.ts +295 -0
  259. package/es-modules/Grid/Core/Grid.js +730 -0
  260. package/es-modules/Grid/Core/GridUtils.d.ts +110 -0
  261. package/es-modules/Grid/Core/GridUtils.js +191 -0
  262. package/es-modules/Grid/Core/Options.d.ts +599 -0
  263. package/es-modules/Grid/Core/Options.js +16 -0
  264. package/es-modules/Grid/Core/Pagination/Icons.d.ts +7 -0
  265. package/es-modules/Grid/Core/Pagination/Icons.js +7 -0
  266. package/es-modules/Grid/Core/Pagination/Pagination.d.ts +278 -0
  267. package/es-modules/Grid/Core/Pagination/Pagination.js +842 -0
  268. package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +228 -0
  269. package/es-modules/Grid/Core/Querying/FilteringController.d.ts +66 -0
  270. package/es-modules/Grid/Core/Querying/FilteringController.js +256 -0
  271. package/es-modules/Grid/Core/Querying/PaginationController.d.ts +50 -0
  272. package/es-modules/Grid/Core/Querying/PaginationController.js +101 -0
  273. package/es-modules/Grid/Core/Querying/QueryingController.d.ts +58 -0
  274. package/es-modules/Grid/Core/Querying/QueryingController.js +127 -0
  275. package/es-modules/Grid/Core/Querying/SortingController.d.ts +67 -0
  276. package/es-modules/Grid/Core/Querying/SortingController.js +136 -0
  277. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.d.ts +114 -0
  278. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +351 -0
  279. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.d.ts +14 -0
  280. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.js +86 -0
  281. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.d.ts +19 -0
  282. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.js +80 -0
  283. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.d.ts +52 -0
  284. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.js +81 -0
  285. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +56 -0
  286. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +170 -0
  287. package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.d.ts +55 -0
  288. package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.js +182 -0
  289. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.d.ts +87 -0
  290. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.js +346 -0
  291. package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +88 -0
  292. package/es-modules/Grid/Core/Table/Body/TableCell.js +231 -0
  293. package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +79 -0
  294. package/es-modules/Grid/Core/Table/Body/TableRow.js +177 -0
  295. package/es-modules/Grid/Core/Table/Cell.d.ts +92 -0
  296. package/es-modules/Grid/Core/Table/Cell.js +223 -0
  297. package/es-modules/Grid/Core/Table/CellContent/CellContent.d.ts +30 -0
  298. package/es-modules/Grid/Core/Table/CellContent/CellContent.js +40 -0
  299. package/es-modules/Grid/Core/Table/CellContent/TextContent.d.ts +19 -0
  300. package/es-modules/Grid/Core/Table/CellContent/TextContent.js +98 -0
  301. package/es-modules/Grid/Core/Table/Column.d.ts +136 -0
  302. package/es-modules/Grid/Core/Table/Column.js +230 -0
  303. package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.d.ts +7 -0
  304. package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.js +62 -0
  305. package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.d.ts +32 -0
  306. package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.js +68 -0
  307. package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.d.ts +7 -0
  308. package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.js +53 -0
  309. package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.d.ts +7 -0
  310. package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +63 -0
  311. package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.d.ts +92 -0
  312. package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.js +194 -0
  313. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.d.ts +68 -0
  314. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +187 -0
  315. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.d.ts +29 -0
  316. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.js +77 -0
  317. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.d.ts +13 -0
  318. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.js +79 -0
  319. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.d.ts +12 -0
  320. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.js +71 -0
  321. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.d.ts +12 -0
  322. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.js +66 -0
  323. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.d.ts +25 -0
  324. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.js +65 -0
  325. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.d.ts +12 -0
  326. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.js +81 -0
  327. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.d.ts +12 -0
  328. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.js +80 -0
  329. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +11 -0
  330. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.js +81 -0
  331. package/es-modules/Grid/Core/Table/Header/HeaderCell.d.ts +70 -0
  332. package/es-modules/Grid/Core/Table/Header/HeaderCell.js +225 -0
  333. package/es-modules/Grid/Core/Table/Header/HeaderRow.d.ts +53 -0
  334. package/es-modules/Grid/Core/Table/Header/HeaderRow.js +182 -0
  335. package/es-modules/Grid/Core/Table/Header/TableHeader.d.ts +65 -0
  336. package/es-modules/Grid/Core/Table/Header/TableHeader.js +159 -0
  337. package/es-modules/Grid/Core/Table/Row.d.ts +76 -0
  338. package/es-modules/Grid/Core/Table/Row.js +131 -0
  339. package/es-modules/Grid/Core/Table/Table.d.ts +181 -0
  340. package/es-modules/Grid/Core/Table/Table.js +399 -0
  341. package/es-modules/Grid/Core/UI/Button.d.ts +31 -0
  342. package/es-modules/Grid/Core/UI/Button.js +16 -0
  343. package/es-modules/Grid/Core/UI/ContextMenu.d.ts +38 -0
  344. package/es-modules/Grid/Core/UI/ContextMenu.js +132 -0
  345. package/es-modules/Grid/Core/UI/ContextMenuButton.d.ts +126 -0
  346. package/es-modules/Grid/Core/UI/ContextMenuButton.js +183 -0
  347. package/es-modules/Grid/Core/UI/Popup.d.ts +149 -0
  348. package/es-modules/Grid/Core/UI/Popup.js +271 -0
  349. package/es-modules/Grid/Core/UI/SvgIcons.d.ts +53 -0
  350. package/es-modules/Grid/Core/UI/SvgIcons.js +158 -0
  351. package/es-modules/Grid/Core/UI/Toolbar.d.ts +16 -0
  352. package/es-modules/Grid/Core/UI/Toolbar.js +16 -0
  353. package/es-modules/Grid/Core/UI/ToolbarButton.d.ts +135 -0
  354. package/es-modules/Grid/Core/UI/ToolbarButton.js +191 -0
  355. package/es-modules/Grid/Pro/CellEditing/CellEditMode.d.ts +112 -0
  356. package/es-modules/Grid/Pro/CellEditing/CellEditing.d.ts +80 -0
  357. package/es-modules/Grid/Pro/CellEditing/CellEditing.js +211 -0
  358. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.d.ts +123 -0
  359. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +198 -0
  360. package/es-modules/Grid/Pro/CellRendering/CellContentPro.d.ts +23 -0
  361. package/es-modules/Grid/Pro/CellRendering/CellContentPro.js +45 -0
  362. package/es-modules/Grid/Pro/CellRendering/CellRenderer.d.ts +50 -0
  363. package/es-modules/Grid/Pro/CellRendering/CellRenderer.js +41 -0
  364. package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.d.ts +18 -0
  365. package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.js +58 -0
  366. package/es-modules/Grid/Pro/CellRendering/CellRendererType.d.ts +48 -0
  367. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.d.ts +18 -0
  368. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +79 -0
  369. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.d.ts +30 -0
  370. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js +122 -0
  371. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.d.ts +12 -0
  372. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.js +39 -0
  373. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.d.ts +66 -0
  374. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.js +145 -0
  375. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.d.ts +12 -0
  376. package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.js +38 -0
  377. package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.d.ts +58 -0
  378. package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +158 -0
  379. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.d.ts +58 -0
  380. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.js +173 -0
  381. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.d.ts +28 -0
  382. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +157 -0
  383. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.d.ts +58 -0
  384. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +168 -0
  385. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.d.ts +13 -0
  386. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.js +41 -0
  387. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.d.ts +50 -0
  388. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +65 -0
  389. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.d.ts +37 -0
  390. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +65 -0
  391. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.d.ts +26 -0
  392. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.js +16 -0
  393. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.d.ts +37 -0
  394. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +64 -0
  395. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.d.ts +52 -0
  396. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +64 -0
  397. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.d.ts +74 -0
  398. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +66 -0
  399. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +45 -0
  400. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +89 -0
  401. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.d.ts +54 -0
  402. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +65 -0
  403. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.d.ts +43 -0
  404. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +74 -0
  405. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.d.ts +37 -0
  406. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +64 -0
  407. package/es-modules/Grid/Pro/ColumnTypes/ColumnDataType.d.ts +29 -0
  408. package/es-modules/Grid/Pro/ColumnTypes/Validator.d.ts +118 -0
  409. package/es-modules/Grid/Pro/ColumnTypes/Validator.js +270 -0
  410. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.d.ts +32 -0
  411. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +63 -0
  412. package/es-modules/Grid/Pro/Credits/CreditsPro.d.ts +35 -0
  413. package/es-modules/Grid/Pro/Credits/CreditsPro.js +112 -0
  414. package/es-modules/Grid/Pro/Credits/CreditsProComposition.d.ts +28 -0
  415. package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +61 -0
  416. package/es-modules/Grid/Pro/Export/Exporting.d.ts +68 -0
  417. package/es-modules/Grid/Pro/Export/Exporting.js +202 -0
  418. package/es-modules/Grid/Pro/Export/ExportingComposition.d.ts +68 -0
  419. package/es-modules/Grid/Pro/Export/ExportingComposition.js +55 -0
  420. package/es-modules/Grid/Pro/GridEvents.d.ts +119 -0
  421. package/es-modules/Grid/Pro/GridEvents.js +107 -0
  422. package/es-modules/Grid/Pro/Pagination/PaginationComposition.d.ts +75 -0
  423. package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +76 -0
  424. package/es-modules/Grid/Pro/highcharts.d.ts +7 -0
  425. package/es-modules/Grid/index.d.ts +5 -0
  426. package/es-modules/Grid/index.js +19 -0
  427. package/es-modules/Shared/BaseForm.d.ts +49 -0
  428. package/es-modules/Shared/BaseForm.js +126 -0
  429. package/es-modules/Shared/DownloadURL.d.ts +85 -0
  430. package/es-modules/Shared/DownloadURL.js +198 -0
  431. package/es-modules/Shared/LangOptionsCore.d.ts +27 -0
  432. package/es-modules/Shared/TimeBase.d.ts +353 -0
  433. package/es-modules/Shared/TimeBase.js +830 -0
  434. package/es-modules/Shared/Types.d.ts +48 -0
  435. package/es-modules/masters/grid-pro.src.d.ts +99 -0
  436. package/es-modules/masters/grid-pro.src.js +129 -0
  437. package/grid-pro.d.ts +50 -0
  438. package/grid-pro.js +12 -0
  439. package/grid-pro.js.map +1 -0
  440. package/grid-pro.src.d.ts +50 -0
  441. package/grid-pro.src.js +26623 -0
  442. package/package.json +21 -0
@@ -0,0 +1,346 @@
1
+ /* *
2
+ *
3
+ * Grid Rows Renderer class.
4
+ *
5
+ * (c) 2020-2025 Highsoft AS
6
+ *
7
+ * License: www.highcharts.com/license
8
+ *
9
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
+ *
11
+ * Authors:
12
+ * - Dawid Dragula
13
+ *
14
+ * */
15
+ 'use strict';
16
+ import TableRow from '../Body/TableRow.js';
17
+ import Globals from '../../Globals.js';
18
+ /* *
19
+ *
20
+ * Class
21
+ *
22
+ * */
23
+ /**
24
+ * Represents a virtualized rows renderer for the data grid.
25
+ */
26
+ class RowsVirtualizer {
27
+ /* *
28
+ *
29
+ * Constructor
30
+ *
31
+ * */
32
+ /**
33
+ * Constructs an instance of the rows virtualizer.
34
+ *
35
+ * @param viewport
36
+ * The viewport of the data grid to render rows in.
37
+ */
38
+ constructor(viewport) {
39
+ /**
40
+ * The index of the first visible row.
41
+ */
42
+ this.rowCursor = 0;
43
+ /**
44
+ * Flag indicating if the scrolling handler should be prevented to avoid
45
+ * flickering loops when scrolling to the last row.
46
+ */
47
+ this.preventScroll = false;
48
+ this.rowSettings =
49
+ viewport.grid.options?.rendering?.rows;
50
+ this.viewport = viewport;
51
+ this.strictRowHeights = this.rowSettings.strictHeights;
52
+ this.buffer = Math.max(this.rowSettings.bufferSize, 0);
53
+ this.defaultRowHeight = this.getDefaultRowHeight();
54
+ if (this.strictRowHeights) {
55
+ viewport.tbodyElement.classList.add(Globals.getClassName('rowsContentNowrap'));
56
+ }
57
+ }
58
+ /* *
59
+ *
60
+ * Functions
61
+ *
62
+ * */
63
+ /**
64
+ * Renders the rows in the viewport for the first time.
65
+ */
66
+ initialRender() {
67
+ // Initial reflow to set the viewport height
68
+ if (this.viewport.virtualRows) {
69
+ this.viewport.reflow();
70
+ }
71
+ // Load & render rows
72
+ this.renderRows(this.rowCursor);
73
+ this.adjustRowHeights();
74
+ }
75
+ /**
76
+ * Renders the rows in the viewport. It is called when the rows need to be
77
+ * re-rendered, e.g., after a sort or filter operation.
78
+ */
79
+ rerender() {
80
+ const tbody = this.viewport.tbodyElement;
81
+ let rows = this.viewport.rows;
82
+ const oldScrollLeft = tbody.scrollLeft;
83
+ let oldScrollTop;
84
+ if (rows.length) {
85
+ oldScrollTop = tbody.scrollTop;
86
+ for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
87
+ rows[i].destroy();
88
+ }
89
+ rows.length = 0;
90
+ }
91
+ this.renderRows(this.rowCursor);
92
+ if (this.viewport.virtualRows) {
93
+ if (oldScrollTop !== void 0) {
94
+ tbody.scrollTop = oldScrollTop;
95
+ }
96
+ this.scroll();
97
+ }
98
+ rows = this.viewport.rows;
99
+ // Reflow the rendered row cells widths (check redundancy)
100
+ for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
101
+ rows[i].reflow();
102
+ }
103
+ tbody.scrollLeft = oldScrollLeft;
104
+ }
105
+ /**
106
+ * Method called on the viewport scroll event, only when the virtualization
107
+ * is enabled.
108
+ */
109
+ scroll() {
110
+ const target = this.viewport.tbodyElement;
111
+ const { defaultRowHeight: rowHeight } = this;
112
+ const lastScrollTop = target.scrollTop;
113
+ if (this.preventScroll) {
114
+ if (lastScrollTop <= target.scrollTop) {
115
+ this.preventScroll = false;
116
+ }
117
+ this.adjustBottomRowHeights();
118
+ return;
119
+ }
120
+ // Do vertical virtual scrolling
121
+ const rowCursor = Math.floor(target.scrollTop / rowHeight);
122
+ if (this.rowCursor !== rowCursor) {
123
+ this.renderRows(rowCursor);
124
+ }
125
+ this.rowCursor = rowCursor;
126
+ this.adjustRowHeights();
127
+ if (!this.strictRowHeights &&
128
+ lastScrollTop > target.scrollTop &&
129
+ !this.preventScroll) {
130
+ target.scrollTop = lastScrollTop;
131
+ this.preventScroll = true;
132
+ }
133
+ }
134
+ /**
135
+ * Adjusts the visible row heights from the bottom of the viewport.
136
+ */
137
+ adjustBottomRowHeights() {
138
+ const rows = this.viewport.rows;
139
+ const rowsLn = rows.length;
140
+ const lastRow = rows[rowsLn - 1];
141
+ let rowTop = lastRow.translateY;
142
+ const rowBottom = rowTop + lastRow.htmlElement.offsetHeight;
143
+ let newHeight = lastRow.cells[0].htmlElement.offsetHeight;
144
+ rowTop = rowBottom - newHeight;
145
+ lastRow.htmlElement.style.height = newHeight + 'px';
146
+ lastRow.setTranslateY(rowTop);
147
+ for (let j = 0, jEnd = lastRow.cells.length; j < jEnd; ++j) {
148
+ lastRow.cells[j].htmlElement.style.transform = '';
149
+ }
150
+ for (let i = rowsLn - 2; i >= 0; i--) {
151
+ const row = rows[i];
152
+ newHeight = row.cells[0].htmlElement.offsetHeight;
153
+ rowTop -= newHeight;
154
+ row.htmlElement.style.height = newHeight + 'px';
155
+ row.setTranslateY(rowTop);
156
+ for (let j = 0, jEnd = row.cells.length; j < jEnd; ++j) {
157
+ row.cells[j].htmlElement.style.transform = '';
158
+ }
159
+ }
160
+ }
161
+ /**
162
+ * Renders rows in the specified range. Removes rows that are out of the
163
+ * range except the last row.
164
+ *
165
+ * @param rowCursor
166
+ * The index of the first visible row.
167
+ */
168
+ renderRows(rowCursor) {
169
+ const { viewport: vp, buffer } = this;
170
+ const rowCount = vp.dataTable.getRowCount();
171
+ // Stop rendering if there are no rows to render.
172
+ if (rowCount < 1) {
173
+ return;
174
+ }
175
+ const isVirtualization = this.viewport.virtualRows;
176
+ const rowsPerPage = isVirtualization ? Math.ceil((vp.grid.tableElement?.clientHeight || 0) /
177
+ this.defaultRowHeight) : Infinity; // Need to be refactored when add pagination
178
+ let rows = vp.rows;
179
+ if (!isVirtualization && rows.length > 50) {
180
+ // eslint-disable-next-line no-console
181
+ console.warn('Grid: a large dataset can cause performance issues when ' +
182
+ 'virtualization is disabled. Consider enabling ' +
183
+ 'virtualization in the rows settings.');
184
+ }
185
+ if (!rows.length) {
186
+ const last = new TableRow(vp, rowCount - 1);
187
+ vp.tbodyElement.appendChild(last.htmlElement);
188
+ last.render();
189
+ rows.push(last);
190
+ if (isVirtualization) {
191
+ last.setTranslateY(last.getDefaultTopOffset());
192
+ }
193
+ }
194
+ const from = Math.max(0, Math.min(rowCursor - buffer, rowCount - rowsPerPage));
195
+ const to = Math.min(rowCursor + rowsPerPage + buffer, rows[rows.length - 1].index - 1);
196
+ const alwaysLastRow = rows.pop();
197
+ const tempRows = [];
198
+ // Remove rows that are out of the range except the last row.
199
+ for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
200
+ const row = rows[i];
201
+ const rowIndex = row.index;
202
+ if (rowIndex < from || rowIndex > to) {
203
+ row.destroy();
204
+ }
205
+ else {
206
+ tempRows.push(row);
207
+ }
208
+ }
209
+ rows = tempRows;
210
+ vp.rows = rows;
211
+ for (let i = from; i <= to; ++i) {
212
+ const row = rows[i - (rows[0]?.index || 0)];
213
+ // Recreate row when it is destroyed and it is in the range.
214
+ if (!row) {
215
+ const newRow = new TableRow(vp, i);
216
+ rows.push(newRow);
217
+ newRow.rendered = false;
218
+ if (isVirtualization) {
219
+ newRow.setTranslateY(newRow.getDefaultTopOffset());
220
+ }
221
+ }
222
+ }
223
+ rows.sort((a, b) => a.index - b.index);
224
+ for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
225
+ if (!rows[i].rendered) {
226
+ vp.tbodyElement.insertBefore(rows[i].htmlElement, vp.tbodyElement.lastChild);
227
+ rows[i].render();
228
+ }
229
+ }
230
+ if (alwaysLastRow) {
231
+ rows.push(alwaysLastRow);
232
+ }
233
+ // Focus the cell if the focus cursor is set
234
+ if (vp.focusCursor) {
235
+ const [rowIndex, columnIndex] = vp.focusCursor;
236
+ const row = rows.find((row) => row.index === rowIndex);
237
+ if (row) {
238
+ row.cells[columnIndex]?.htmlElement.focus({
239
+ preventScroll: true
240
+ });
241
+ }
242
+ }
243
+ // Set the focus anchor cell
244
+ if ((!vp.focusCursor || !vp.focusAnchorCell?.row.rendered) &&
245
+ rows.length > 0) {
246
+ const rowIndex = rowCursor - rows[0].index;
247
+ if (rows[rowIndex]) {
248
+ vp.setFocusAnchorCell(rows[rowIndex].cells[0]);
249
+ }
250
+ }
251
+ }
252
+ /**
253
+ * Adjusts the heights of the rows based on the current scroll position.
254
+ * It handles the possibility of the rows having different heights than
255
+ * the default height.
256
+ */
257
+ adjustRowHeights() {
258
+ if (this.strictRowHeights ||
259
+ !this.viewport.virtualRows) {
260
+ return;
261
+ }
262
+ const { rowCursor: cursor, defaultRowHeight: defaultH } = this;
263
+ const { rows, tbodyElement } = this.viewport;
264
+ const rowsLn = rows.length;
265
+ if (rowsLn < 1) {
266
+ return;
267
+ }
268
+ let translateBuffer = rows[0].getDefaultTopOffset();
269
+ for (let i = 0; i < rowsLn; ++i) {
270
+ const row = rows[i];
271
+ // Reset row height and cell transforms
272
+ row.htmlElement.style.height = '';
273
+ if (row.cells[0].htmlElement.style.transform) {
274
+ for (let j = 0, jEnd = row.cells.length; j < jEnd; ++j) {
275
+ const cell = row.cells[j];
276
+ cell.htmlElement.style.transform = '';
277
+ }
278
+ }
279
+ // Rows above the first visible row
280
+ if (row.index < cursor) {
281
+ row.htmlElement.style.height = defaultH + 'px';
282
+ continue;
283
+ }
284
+ const cellHeight = row.cells[0].htmlElement.offsetHeight;
285
+ row.htmlElement.style.height = cellHeight + 'px';
286
+ // Rows below the first visible row
287
+ if (row.index > cursor) {
288
+ continue;
289
+ }
290
+ // First visible row
291
+ if (row.htmlElement.offsetHeight > defaultH) {
292
+ const newHeight = Math.floor(cellHeight - (cellHeight - defaultH) * (tbodyElement.scrollTop / defaultH - cursor));
293
+ row.htmlElement.style.height = newHeight + 'px';
294
+ for (let j = 0, jEnd = row.cells.length; j < jEnd; ++j) {
295
+ const cell = row.cells[j];
296
+ cell.htmlElement.style.transform = `translateY(${newHeight - cellHeight}px)`;
297
+ }
298
+ }
299
+ }
300
+ rows[0].setTranslateY(translateBuffer);
301
+ for (let i = 1, iEnd = rowsLn - 1; i < iEnd; ++i) {
302
+ translateBuffer += rows[i - 1].htmlElement.offsetHeight;
303
+ rows[i].setTranslateY(translateBuffer);
304
+ }
305
+ // Set the proper offset for the last row
306
+ const lastRow = rows[rowsLn - 1];
307
+ const preLastRow = rows[rowsLn - 2];
308
+ if (preLastRow && preLastRow.index === lastRow.index - 1) {
309
+ lastRow.setTranslateY(preLastRow.htmlElement.offsetHeight + translateBuffer);
310
+ }
311
+ }
312
+ /**
313
+ * Reflow the rendered rows content dimensions.
314
+ */
315
+ reflowRows() {
316
+ const rows = this.viewport.rows;
317
+ if (rows.length < 1) {
318
+ return;
319
+ }
320
+ for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
321
+ rows[i].reflow();
322
+ }
323
+ this.adjustRowHeights();
324
+ }
325
+ /**
326
+ * Returns the default height of a row. This method should be called only
327
+ * once on initialization.
328
+ */
329
+ getDefaultRowHeight() {
330
+ const vp = this.viewport;
331
+ const mockRow = new TableRow(vp, 0);
332
+ mockRow.htmlElement.style.position = 'absolute';
333
+ mockRow.htmlElement.classList.add(Globals.getClassName('mockedRow'));
334
+ this.viewport.tbodyElement.appendChild(mockRow.htmlElement);
335
+ mockRow.render();
336
+ const defaultRowHeight = mockRow.htmlElement.offsetHeight;
337
+ mockRow.destroy();
338
+ return defaultRowHeight;
339
+ }
340
+ }
341
+ /* *
342
+ *
343
+ * Default Export
344
+ *
345
+ * */
346
+ export default RowsVirtualizer;
@@ -0,0 +1,88 @@
1
+ import type DataTable from '../../../../Data/DataTable';
2
+ import type Column from '../Column';
3
+ import type TableRow from './TableRow';
4
+ import Cell from '../Cell.js';
5
+ import CellContent from '../CellContent/CellContent.js';
6
+ /**
7
+ * Represents a cell in the data grid.
8
+ */
9
+ declare class TableCell extends Cell {
10
+ /**
11
+ * The row of the cell.
12
+ */
13
+ readonly row: TableRow;
14
+ /**
15
+ * The column of the cell.
16
+ */
17
+ column: Column;
18
+ /**
19
+ * The cell's content.
20
+ */
21
+ content?: CellContent;
22
+ /**
23
+ * Constructs a cell in the data grid.
24
+ *
25
+ * @param row
26
+ * The row of the cell.
27
+ *
28
+ * @param column
29
+ * The column of the cell.
30
+ */
31
+ constructor(row: TableRow, column: Column);
32
+ /**
33
+ * Renders the cell by appending it to the row and setting its value.
34
+ */
35
+ render(): void;
36
+ /**
37
+ * Sets the cell value and updates its content with it.
38
+ *
39
+ * @param value
40
+ * The raw value to set. If not provided, it will use the value from the
41
+ * data table for the current row and column.
42
+ *
43
+ * @param updateTable
44
+ * Whether to update the table after setting the content. Defaults to
45
+ * `false`, meaning the table will not be updated.
46
+ */
47
+ setValue(value?: DataTable.CellType, updateTable?: boolean): Promise<void>;
48
+ /**
49
+ * Updates the the data table so that it reflects the current state of
50
+ * the grid.
51
+ *
52
+ * @returns
53
+ * A promise that resolves to `true` if the cell triggered all the whole
54
+ * viewport rows to be updated, or `false` if the only change should be
55
+ * the cell's content.
56
+ */
57
+ private updateDataTable;
58
+ initEvents(): void;
59
+ /**
60
+ * Handles the focus event on the cell.
61
+ */
62
+ protected onFocus(): void;
63
+ /**
64
+ * Handles the mouse out event on the cell.
65
+ */
66
+ protected onMouseOut(): void;
67
+ /**
68
+ * Handles the double click event on the cell.
69
+ *
70
+ * @param e
71
+ * The mouse event object.
72
+ */
73
+ protected onDblClick(e: MouseEvent): void;
74
+ onClick(): void;
75
+ /**
76
+ * Destroys the cell.
77
+ */
78
+ destroy(): void;
79
+ }
80
+ declare namespace TableCell {
81
+ /**
82
+ * Event interface for table cell events.
83
+ */
84
+ interface TableCellEvent {
85
+ target: TableCell;
86
+ }
87
+ }
88
+ export default TableCell;
@@ -0,0 +1,231 @@
1
+ /* *
2
+ *
3
+ * Grid class
4
+ *
5
+ * (c) 2020-2025 Highsoft AS
6
+ *
7
+ * License: www.highcharts.com/license
8
+ *
9
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
10
+ *
11
+ * Authors:
12
+ * - Dawid Dragula
13
+ * - Sebastian Bochan
14
+ *
15
+ * */
16
+ 'use strict';
17
+ import Globals from '../../Globals.js';
18
+ import Cell from '../Cell.js';
19
+ import Utils from '../../../../Core/Utilities.js';
20
+ const { fireEvent } = Utils;
21
+ /* *
22
+ *
23
+ * Class
24
+ *
25
+ * */
26
+ /**
27
+ * Represents a cell in the data grid.
28
+ */
29
+ class TableCell extends Cell {
30
+ /* *
31
+ *
32
+ * Constructor
33
+ *
34
+ * */
35
+ /**
36
+ * Constructs a cell in the data grid.
37
+ *
38
+ * @param row
39
+ * The row of the cell.
40
+ *
41
+ * @param column
42
+ * The column of the cell.
43
+ */
44
+ constructor(row, column) {
45
+ super(row, column);
46
+ this.column = column;
47
+ this.row = row;
48
+ this.column.registerCell(this);
49
+ }
50
+ /* *
51
+ *
52
+ * Methods
53
+ *
54
+ * */
55
+ /**
56
+ * Renders the cell by appending it to the row and setting its value.
57
+ */
58
+ render() {
59
+ super.render();
60
+ void this.setValue();
61
+ }
62
+ /**
63
+ * Sets the cell value and updates its content with it.
64
+ *
65
+ * @param value
66
+ * The raw value to set. If not provided, it will use the value from the
67
+ * data table for the current row and column.
68
+ *
69
+ * @param updateTable
70
+ * Whether to update the table after setting the content. Defaults to
71
+ * `false`, meaning the table will not be updated.
72
+ */
73
+ async setValue(value = this.column.data?.[this.row.index], updateTable = false) {
74
+ this.value = value;
75
+ if (updateTable && await this.updateDataTable()) {
76
+ return;
77
+ }
78
+ if (this.content) {
79
+ this.content.update();
80
+ }
81
+ else {
82
+ this.content = this.column.createCellContent(this);
83
+ }
84
+ this.htmlElement.setAttribute('data-value', this.value + '');
85
+ this.setCustomClassName(this.column.options.cells?.className);
86
+ // Add alignment to number column
87
+ if (this.column.dataType === 'number') {
88
+ this.setCustomClassName(Globals.getClassName('rightAlign'));
89
+ }
90
+ fireEvent(this, 'afterRender', { target: this });
91
+ }
92
+ /**
93
+ * Updates the the data table so that it reflects the current state of
94
+ * the grid.
95
+ *
96
+ * @returns
97
+ * A promise that resolves to `true` if the cell triggered all the whole
98
+ * viewport rows to be updated, or `false` if the only change should be
99
+ * the cell's content.
100
+ */
101
+ async updateDataTable() {
102
+ if (this.column.data?.[this.row.index] === this.value) {
103
+ // Abort if the value is the same as in the data table.
104
+ return false;
105
+ }
106
+ const vp = this.column.viewport;
107
+ const { dataTable: originalDataTable } = vp.grid;
108
+ const rowTableIndex = this.row.id &&
109
+ originalDataTable?.getLocalRowIndex(this.row.id);
110
+ if (!originalDataTable || rowTableIndex === void 0) {
111
+ return false;
112
+ }
113
+ this.row.data[this.column.id] = this.value;
114
+ originalDataTable.setCell(this.column.id, rowTableIndex, this.value);
115
+ // If no modifiers, don't update all rows
116
+ if (vp.grid.dataTable === vp.grid.presentationTable) {
117
+ return false;
118
+ }
119
+ await vp.updateRows();
120
+ return true;
121
+ }
122
+ initEvents() {
123
+ this.cellEvents.push(['dblclick', (e) => (this.onDblClick(e))]);
124
+ this.cellEvents.push(['mouseout', () => this.onMouseOut()]);
125
+ this.cellEvents.push(['mouseover', () => this.onMouseOver()]);
126
+ this.cellEvents.push(['mousedown', (e) => {
127
+ this.onMouseDown(e);
128
+ }]);
129
+ super.initEvents();
130
+ }
131
+ /**
132
+ * Handles the focus event on the cell.
133
+ */
134
+ onFocus() {
135
+ super.onFocus();
136
+ const vp = this.row.viewport;
137
+ vp.focusCursor = [
138
+ this.row.index,
139
+ this.column.index
140
+ ];
141
+ }
142
+ /**
143
+ * Handles the mouse down event on the cell.
144
+ *
145
+ * @param e
146
+ * The mouse event object.
147
+ *
148
+ * @internal
149
+ */
150
+ onMouseDown(e) {
151
+ if (e.target === this.htmlElement) {
152
+ this.htmlElement.focus();
153
+ }
154
+ fireEvent(this, 'mouseDown', {
155
+ target: this,
156
+ originalEvent: e
157
+ });
158
+ }
159
+ /**
160
+ * Handles the mouse over event on the cell.
161
+ * @internal
162
+ */
163
+ onMouseOver() {
164
+ const { grid } = this.row.viewport;
165
+ grid.hoverRow(this.row.index);
166
+ grid.hoverColumn(this.column.id);
167
+ fireEvent(this, 'mouseOver', {
168
+ target: this
169
+ });
170
+ }
171
+ /**
172
+ * Handles the mouse out event on the cell.
173
+ */
174
+ onMouseOut() {
175
+ const { grid } = this.row.viewport;
176
+ grid.hoverRow();
177
+ grid.hoverColumn();
178
+ fireEvent(this, 'mouseOut', {
179
+ target: this
180
+ });
181
+ }
182
+ /**
183
+ * Handles the double click event on the cell.
184
+ *
185
+ * @param e
186
+ * The mouse event object.
187
+ */
188
+ onDblClick(e) {
189
+ fireEvent(this, 'dblClick', {
190
+ target: this,
191
+ originalEvent: e
192
+ });
193
+ }
194
+ onClick() {
195
+ fireEvent(this, 'click', {
196
+ target: this
197
+ });
198
+ }
199
+ /**
200
+ * Handles the key down event on the cell.
201
+ *
202
+ * @param e
203
+ * Keyboard event object.
204
+ *
205
+ * @internal
206
+ */
207
+ onKeyDown(e) {
208
+ if (e.target !== this.htmlElement) {
209
+ return;
210
+ }
211
+ fireEvent(this, 'keyDown', {
212
+ target: this,
213
+ originalEvent: e
214
+ });
215
+ super.onKeyDown(e);
216
+ }
217
+ /**
218
+ * Destroys the cell.
219
+ */
220
+ destroy() {
221
+ this.content?.destroy();
222
+ delete this.content;
223
+ super.destroy();
224
+ }
225
+ }
226
+ /* *
227
+ *
228
+ * Default Export
229
+ *
230
+ * */
231
+ export default TableCell;