@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,191 @@
1
+ /* *
2
+ *
3
+ * Grid Toolbar Button 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 SvgIcons from './SvgIcons.js';
17
+ import Globals from '../Globals.js';
18
+ import GridUtils from '../GridUtils.js';
19
+ const { makeHTMLElement } = GridUtils;
20
+ /* *
21
+ *
22
+ * Class
23
+ *
24
+ * */
25
+ class ToolbarButton {
26
+ /* *
27
+ *
28
+ * Constructor
29
+ *
30
+ * */
31
+ constructor(options) {
32
+ /**
33
+ * Used to remove the event listeners when the button is destroyed.
34
+ */
35
+ this.eventListenerDestroyers = [];
36
+ /**
37
+ * Whether the button is active.
38
+ */
39
+ this.isActive = false;
40
+ this.options = options;
41
+ }
42
+ /* *
43
+ *
44
+ * Methods
45
+ *
46
+ * */
47
+ /**
48
+ * Adds the button to the toolbar.
49
+ *
50
+ * @param toolbar
51
+ * The toolbar to add the button to.
52
+ */
53
+ add(toolbar) {
54
+ const cfg = this.options;
55
+ this.toolbar = toolbar;
56
+ toolbar.buttons.push(this);
57
+ const wrapper = makeHTMLElement('span', cfg.classNameKey && {
58
+ className: Globals.getClassName(cfg.classNameKey)
59
+ }, toolbar.container);
60
+ this.wrapper = wrapper;
61
+ const button = this.buttonEl = makeHTMLElement('button', {
62
+ className: (Globals.getClassName('button') +
63
+ (this.isActive ? ' active' : ''))
64
+ }, wrapper);
65
+ button.setAttribute('type', 'button');
66
+ button.setAttribute('tabindex', '-1');
67
+ this.setA11yAttributes(button);
68
+ this.setIcon(cfg.icon);
69
+ this.refreshState();
70
+ this.addEventListeners();
71
+ return this;
72
+ }
73
+ setA11yAttributes(button) {
74
+ const { accessibility, tooltip } = this.options;
75
+ const { ariaLabel, ariaExpanded, ariaControls } = accessibility || {};
76
+ if (tooltip) {
77
+ button.title = tooltip;
78
+ }
79
+ if (ariaLabel) {
80
+ button.setAttribute('aria-label', ariaLabel);
81
+ }
82
+ if (typeof ariaExpanded === 'boolean') {
83
+ button.setAttribute('aria-expanded', ariaExpanded);
84
+ }
85
+ if (ariaControls) {
86
+ button.setAttribute('aria-controls', ariaControls);
87
+ }
88
+ }
89
+ focus() {
90
+ this.buttonEl?.focus();
91
+ const tb = this.toolbar;
92
+ if (tb) {
93
+ tb.focusCursor = tb.buttons.indexOf(this);
94
+ }
95
+ }
96
+ /**
97
+ * Sets the icon for the button.
98
+ *
99
+ * @param icon
100
+ * The icon to set.
101
+ */
102
+ setIcon(icon) {
103
+ this.icon?.remove();
104
+ this.icon = SvgIcons.createGridIcon(icon);
105
+ this.buttonEl?.appendChild(this.icon);
106
+ }
107
+ setActive(active) {
108
+ this.isActive = active;
109
+ this.buttonEl?.classList.toggle('active', active);
110
+ this.renderActiveIndicator(active);
111
+ }
112
+ setHighlighted(highlighted) {
113
+ this.buttonEl?.classList.toggle('highlighted', highlighted);
114
+ const ariaExpanded = this.options.accessibility?.ariaExpanded;
115
+ if (typeof ariaExpanded === 'boolean') {
116
+ this.buttonEl?.setAttribute('aria-expanded', highlighted);
117
+ }
118
+ }
119
+ /**
120
+ * Destroys the button.
121
+ */
122
+ destroy() {
123
+ this.removeEventListeners();
124
+ this.wrapper?.remove();
125
+ // Unregister from toolbar
126
+ this.toolbar?.buttons.splice(this.toolbar.buttons.indexOf(this), 1);
127
+ delete this.toolbar;
128
+ }
129
+ /**
130
+ * Initializes the state of the button.
131
+ */
132
+ refreshState() {
133
+ // Do nothing, to be overridden by subclasses
134
+ }
135
+ /**
136
+ * Handles the click event for the button.
137
+ *
138
+ * @param event
139
+ * The mouse event.
140
+ */
141
+ clickHandler(event) {
142
+ this.options.onClick?.(event, this);
143
+ }
144
+ /**
145
+ * Renders the active indicator for the button.
146
+ *
147
+ * @param render
148
+ * Whether the active indicator should be rendered.
149
+ */
150
+ renderActiveIndicator(render) {
151
+ const button = this.buttonEl;
152
+ if (!button) {
153
+ return;
154
+ }
155
+ this.activeIndicator?.remove();
156
+ if (!render) {
157
+ delete this.activeIndicator;
158
+ return;
159
+ }
160
+ this.activeIndicator = makeHTMLElement('div', {
161
+ className: Globals.getClassName('toolbarButtonActiveIndicator')
162
+ }, button);
163
+ }
164
+ /**
165
+ * Adds event listeners to the button.
166
+ */
167
+ addEventListeners() {
168
+ const clickListener = (event) => {
169
+ this.clickHandler(event);
170
+ };
171
+ this.buttonEl?.addEventListener('click', clickListener);
172
+ this.eventListenerDestroyers.push(() => {
173
+ this.buttonEl?.removeEventListener('click', clickListener);
174
+ });
175
+ }
176
+ /**
177
+ * Removes event listeners from the button.
178
+ */
179
+ removeEventListeners() {
180
+ for (const destroyer of this.eventListenerDestroyers) {
181
+ destroyer();
182
+ }
183
+ this.eventListenerDestroyers.length = 0;
184
+ }
185
+ }
186
+ /* *
187
+ *
188
+ * Default Export
189
+ *
190
+ * */
191
+ export default ToolbarButton;
@@ -0,0 +1,112 @@
1
+ /* *
2
+ *
3
+ * Grid Cell Editing 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
+
17
+
18
+ /* *
19
+ *
20
+ * Imports
21
+ *
22
+ * */
23
+
24
+ import DataTable from '../../../Data/DataTable';
25
+ import TableCell from '../../Core/Table/Body/TableCell';
26
+
27
+
28
+ /* *
29
+ *
30
+ * Interfaces
31
+ *
32
+ * */
33
+
34
+ /**
35
+ * Interface for the edit mode content in a cell. It can be implemented by
36
+ * different types of edit mode contents.
37
+ */
38
+ export interface EditModeContent<
39
+ E extends HTMLElement = HTMLElement
40
+ > {
41
+ /**
42
+ * Returns the main element of the edit mode content. In most cases it is an
43
+ * input element used to edit the cell value.
44
+ */
45
+ getMainElement(): E;
46
+
47
+ /**
48
+ * Value of the edit mode cell content, parsed according to the column type.
49
+ */
50
+ readonly value: DataTable.CellType;
51
+
52
+ /**
53
+ * Raw value of the edit mode cell content, in a string format.
54
+ */
55
+ readonly rawValue: string;
56
+
57
+ /**
58
+ * Destroys the edit mode content, removing all event listeners
59
+ * and references to the DOM elements.
60
+ */
61
+ destroy(): void;
62
+
63
+ /**
64
+ * Blur event handler for the edit mode content that can be overwritten in
65
+ * the Edit Mode Class.
66
+ *
67
+ * @param e
68
+ * The focus event that triggered the blur.
69
+ */
70
+ blurHandler?: (e: FocusEvent) => void;
71
+
72
+ /**
73
+ * Key down event handler for the edit mode content that can be overwritten
74
+ * in the Edit Mode Class.
75
+ *
76
+ * @param e
77
+ * The keyboard event that triggered the key down.
78
+ */
79
+ keyDownHandler?: (e: KeyboardEvent) => void;
80
+
81
+ /**
82
+ * Change event handler for the edit mode content that can be
83
+ * overwritten in the Edit Mode Class.
84
+ *
85
+ * @param e
86
+ * The event that triggered the change.
87
+ */
88
+ changeHandler?: (e: Event) => void;
89
+
90
+ /**
91
+ * Indicates whether the edit mode should finish after a change event.
92
+ */
93
+ readonly finishAfterChange: boolean;
94
+ }
95
+
96
+ /**
97
+ * Interface for rendering edit mode content in a cell. It allows the view
98
+ * renderers to be used in the edit mode of a cell.
99
+ */
100
+ export interface EditModeRenderer {
101
+ /**
102
+ * Renders the edit mode content for a given cell.
103
+ *
104
+ * @param cell
105
+ * The cell to render the edit mode content for.
106
+ *
107
+ * @param parent
108
+ * Optional parent element to append the rendered content to. If not
109
+ * provided, the content will be rendered in the cell's main element.
110
+ */
111
+ render(cell: TableCell, parent?: HTMLElement): EditModeContent;
112
+ }
@@ -0,0 +1,80 @@
1
+ import { EditModeContent } from './CellEditMode.js';
2
+ import TableCell from '../../Core/Table/Body/TableCell.js';
3
+ import Table from '../../Core/Table/Table.js';
4
+ /**
5
+ * The class that handles the manual editing of cells in the data grid.
6
+ */
7
+ declare class CellEditing {
8
+ /**
9
+ * The viewport the edited cells are part of.
10
+ */
11
+ readonly viewport: Table;
12
+ /**
13
+ * The cell being currently edited.
14
+ */
15
+ editedCell?: TableCell;
16
+ /**
17
+ * The content of the cell edit mode, which represents a context containing
18
+ * the input field or similar element for applying changes to the cell
19
+ * value.
20
+ */
21
+ editModeContent?: EditModeContent;
22
+ /**
23
+ * The container element for the cell edit mode, which is used to
24
+ * position the edit mode content correctly within the cell.
25
+ */
26
+ private containerElement?;
27
+ constructor(viewport: Table);
28
+ /**
29
+ * Turns the cell into an editable input field.
30
+ *
31
+ * @param cell
32
+ * The cell that is to be edited.
33
+ */
34
+ startEditing(cell: TableCell): void;
35
+ /**
36
+ * Stops the editing of the cell.
37
+ *
38
+ * @param submit
39
+ * Whether to save the value of the input to the cell. Defaults to true.
40
+ *
41
+ * @return
42
+ * Returns `true` if the cell was successfully stopped editing.
43
+ */
44
+ stopEditing(submit?: boolean): boolean;
45
+ setA11yAttributes(valid: boolean): void;
46
+ /**
47
+ * Handles the blur event on the input field.
48
+ */
49
+ private readonly onInputBlur;
50
+ /**
51
+ * Handles the change event on the input field.
52
+ */
53
+ private readonly onInputChange;
54
+ /**
55
+ * Handles the keydown event on the input field. Cancels editing on escape
56
+ * and saves the value on enter.
57
+ *
58
+ * @param e
59
+ * The keyboard event.
60
+ */
61
+ private readonly onInputKeyDown;
62
+ /**
63
+ * Renders the input field for the cell, focuses it and sets up event
64
+ * listeners.
65
+ */
66
+ private render;
67
+ /**
68
+ * Removes event listeners and the input element.
69
+ */
70
+ private destroy;
71
+ }
72
+ declare namespace CellEditing {
73
+ /**
74
+ * The class names used by the CellEditing functionality.
75
+ */
76
+ const classNames: {
77
+ readonly cellEditingContainer: string;
78
+ };
79
+ }
80
+ export default CellEditing;
@@ -0,0 +1,211 @@
1
+ /* *
2
+ *
3
+ * Grid Cell Editing 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 '../../Core/Globals.js';
18
+ import U from '../../../Core/Utilities.js';
19
+ const { fireEvent } = U;
20
+ /* *
21
+ *
22
+ * Class
23
+ *
24
+ * */
25
+ /**
26
+ * The class that handles the manual editing of cells in the data grid.
27
+ */
28
+ class CellEditing {
29
+ /* *
30
+ *
31
+ * Constructor
32
+ *
33
+ * */
34
+ constructor(viewport) {
35
+ /**
36
+ * Handles the blur event on the input field.
37
+ */
38
+ this.onInputBlur = () => {
39
+ if (!this.stopEditing()) {
40
+ this.editModeContent?.getMainElement().focus();
41
+ }
42
+ };
43
+ /**
44
+ * Handles the change event on the input field.
45
+ */
46
+ this.onInputChange = () => {
47
+ if (this.editModeContent?.finishAfterChange &&
48
+ !this.stopEditing()) {
49
+ this.editModeContent?.getMainElement().focus();
50
+ }
51
+ };
52
+ /**
53
+ * Handles the keydown event on the input field. Cancels editing on escape
54
+ * and saves the value on enter.
55
+ *
56
+ * @param e
57
+ * The keyboard event.
58
+ */
59
+ this.onInputKeyDown = (e) => {
60
+ const { key } = e;
61
+ e.stopPropagation();
62
+ if (key === 'Escape') {
63
+ this.stopEditing(false);
64
+ return;
65
+ }
66
+ if (key === 'Enter') {
67
+ if (this.editModeContent?.finishAfterChange) {
68
+ this.onInputChange();
69
+ return;
70
+ }
71
+ this.stopEditing();
72
+ }
73
+ };
74
+ this.viewport = viewport;
75
+ }
76
+ /* *
77
+ *
78
+ * Methods
79
+ *
80
+ * */
81
+ /**
82
+ * Turns the cell into an editable input field.
83
+ *
84
+ * @param cell
85
+ * The cell that is to be edited.
86
+ */
87
+ startEditing(cell) {
88
+ if (this.editedCell === cell || (
89
+ // If value is invalid, do not start new editing
90
+ this.editedCell && !this.stopEditing())) {
91
+ return;
92
+ }
93
+ this.editedCell = cell;
94
+ cell.htmlElement.classList.add(Globals.getClassName('editedCell'));
95
+ this.render();
96
+ fireEvent(cell, 'startedEditing');
97
+ }
98
+ /**
99
+ * Stops the editing of the cell.
100
+ *
101
+ * @param submit
102
+ * Whether to save the value of the input to the cell. Defaults to true.
103
+ *
104
+ * @return
105
+ * Returns `true` if the cell was successfully stopped editing.
106
+ */
107
+ stopEditing(submit = true) {
108
+ const cell = this.editedCell;
109
+ const emContent = this.editModeContent;
110
+ if (!cell || !emContent) {
111
+ return false;
112
+ }
113
+ const { column } = cell;
114
+ const vp = column.viewport;
115
+ const newValue = emContent.value;
116
+ if (submit) {
117
+ const validationErrors = [];
118
+ if (!vp.validator.validate(cell, validationErrors)) {
119
+ vp.validator.initErrorBox(cell, validationErrors);
120
+ this.setA11yAttributes(false);
121
+ return false;
122
+ }
123
+ this.setA11yAttributes(true);
124
+ vp.validator.hide();
125
+ vp.validator.errorCell = void 0;
126
+ }
127
+ // Hide notification
128
+ this.viewport.validator.hide();
129
+ // Hide input
130
+ this.destroy();
131
+ cell.htmlElement.classList.remove(Globals.getClassName('editedCell'));
132
+ cell.htmlElement.focus();
133
+ const isValueChanged = cell.value !== newValue;
134
+ void cell.setValue(submit ? newValue : cell.value, submit && isValueChanged);
135
+ if (isValueChanged) {
136
+ fireEvent(cell, 'stoppedEditing', { submit });
137
+ }
138
+ delete this.editedCell;
139
+ return true;
140
+ }
141
+ setA11yAttributes(valid) {
142
+ const mainElement = this.editModeContent?.getMainElement();
143
+ if (!mainElement) {
144
+ return;
145
+ }
146
+ if (!valid) {
147
+ mainElement.setAttribute('aria-invalid', 'true');
148
+ mainElement.setAttribute('aria-errormessage', 'notification-error');
149
+ }
150
+ else {
151
+ mainElement.setAttribute('aria-invalid', 'false');
152
+ mainElement.setAttribute('aria-errormessage', '');
153
+ }
154
+ }
155
+ /**
156
+ * Renders the input field for the cell, focuses it and sets up event
157
+ * listeners.
158
+ */
159
+ render() {
160
+ const cell = this.editedCell;
161
+ if (!cell || !cell.column.editModeRenderer) {
162
+ return;
163
+ }
164
+ this.containerElement = this.containerElement ||
165
+ document.createElement('div');
166
+ this.containerElement.className =
167
+ CellEditing.classNames.cellEditingContainer;
168
+ this.editedCell?.htmlElement.appendChild(this.containerElement);
169
+ this.editModeContent = cell.column.editModeRenderer?.render(cell, this.containerElement);
170
+ this.editModeContent.getMainElement().focus();
171
+ this.editModeContent.blurHandler = this.onInputBlur;
172
+ this.editModeContent.changeHandler = this.onInputChange;
173
+ this.editModeContent.keyDownHandler = this.onInputKeyDown;
174
+ const rules = cell.column.options?.cells?.editMode?.validationRules ||
175
+ [];
176
+ if (rules.includes('notEmpty')) {
177
+ this.editModeContent.getMainElement().setAttribute('aria-required', 'true');
178
+ }
179
+ }
180
+ /**
181
+ * Removes event listeners and the input element.
182
+ */
183
+ destroy() {
184
+ if (!this.editModeContent) {
185
+ return;
186
+ }
187
+ this.editModeContent.destroy();
188
+ this.containerElement?.remove();
189
+ delete this.editModeContent;
190
+ delete this.containerElement;
191
+ }
192
+ }
193
+ /* *
194
+ *
195
+ * Namespace
196
+ *
197
+ * */
198
+ (function (CellEditing) {
199
+ /**
200
+ * The class names used by the CellEditing functionality.
201
+ */
202
+ CellEditing.classNames = {
203
+ cellEditingContainer: Globals.classNamePrefix + 'cell-editing-container'
204
+ };
205
+ })(CellEditing || (CellEditing = {}));
206
+ /* *
207
+ *
208
+ * Default Export
209
+ *
210
+ * */
211
+ export default CellEditing;
@@ -0,0 +1,123 @@
1
+ import type CellRendererType from '../CellRendering/CellRendererType';
2
+ import type { EditModeRenderer } from './CellEditMode';
3
+ import CellEditing from './CellEditing.js';
4
+ export type EditModeRendererType = Extract<CellRendererType, EditModeRenderer>;
5
+ export type EditModeRendererTypeName = EditModeRendererType['options']['type'];
6
+ /**
7
+ * The options for the cell edit mode functionality.
8
+ */
9
+ export interface ColumnEditModeOptions {
10
+ /**
11
+ * Whether to enable the cell edit mode functionality.
12
+ */
13
+ enabled?: boolean;
14
+ /**
15
+ * The edit mode renderer for the column.
16
+ */
17
+ renderer?: EditModeRendererType['options'];
18
+ }
19
+ /**
20
+ * Accessibility options for the Grid cell editing functionality.
21
+ */
22
+ export interface CellEditingLangA11yOptions {
23
+ /**
24
+ * An additional hint (a visually hidden span) read by the voice over
25
+ * after the cell value.
26
+ *
27
+ * @default 'Editable.'
28
+ */
29
+ editable?: string;
30
+ /**
31
+ * Accessibility lang options for the cell editing announcements.
32
+ */
33
+ announcements?: {
34
+ /**
35
+ * The message when the cell editing started.
36
+ *
37
+ * @default 'Entered cell editing mode.'
38
+ */
39
+ started?: string;
40
+ /**
41
+ * The message when the cell editing ended.
42
+ *
43
+ * @default 'Edited cell value.'
44
+ */
45
+ edited?: string;
46
+ /**
47
+ * The message when the cell editing was cancelled.
48
+ *
49
+ * @default 'Editing cancelled.'
50
+ */
51
+ cancelled?: string;
52
+ /**
53
+ * The message when the cell value is not valid. It precedes the
54
+ * error messages.
55
+ *
56
+ * @default 'Provided value is not valid.'
57
+ */
58
+ notValid?: string;
59
+ };
60
+ }
61
+ declare module '../../Core/Table/Table' {
62
+ export default interface Table {
63
+ /**
64
+ * The cell editing instance for the table.
65
+ */
66
+ cellEditing?: CellEditing;
67
+ }
68
+ }
69
+ declare module '../../Core/Table/Column' {
70
+ export default interface Column {
71
+ /**
72
+ * The edit mode renderer for the column.
73
+ */
74
+ editModeRenderer?: EditModeRendererType;
75
+ }
76
+ }
77
+ declare module '../../Core/Table/Body/TableCell' {
78
+ export default interface TableCell {
79
+ /**
80
+ * The HTML span element that contains the 'editable' hint for the cell.
81
+ */
82
+ a11yEditableHint?: HTMLSpanElement;
83
+ }
84
+ }
85
+ declare module '../GridEvents' {
86
+ interface CellEvents {
87
+ /**
88
+ * Callback function to be called after editing of cell value.
89
+ */
90
+ afterEdit?: CellEventCallback;
91
+ }
92
+ }
93
+ declare module '../../Core/Accessibility/A11yOptions' {
94
+ interface A11yAnnouncementsOptions {
95
+ /**
96
+ * Enable accessibility announcements for the cell editing.
97
+ *
98
+ * @default true
99
+ */
100
+ cellEditing?: boolean;
101
+ }
102
+ interface LangAccessibilityOptions {
103
+ /**
104
+ * Language options for the accessibility descriptions in cell editing.
105
+ */
106
+ cellEditing?: CellEditingLangA11yOptions;
107
+ }
108
+ }
109
+ declare module '../../Core/Options' {
110
+ interface ColumnCellOptions {
111
+ /**
112
+ * Whether to enabled the cell edit mode functionality. It allows to
113
+ * edit the cell value in a separate input field that is displayed
114
+ * after double-clicking the cell or pressing the Enter key.
115
+ */
116
+ editMode?: ColumnEditModeOptions;
117
+ }
118
+ }
119
+ /**
120
+ * The possible types of the edit message.
121
+ */
122
+ export type EditMsgType = 'started' | 'edited' | 'cancelled';
123
+ export default CellEditingComposition;