@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,374 @@
1
+ /* *
2
+ *
3
+ * (c) 2009-2025 Highsoft AS
4
+ *
5
+ * License: www.highcharts.com/license
6
+ *
7
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
+ *
9
+ * Authors:
10
+ * - Torstein Hønsi
11
+ * - Christer Vasseng
12
+ * - Gøran Slettemark
13
+ * - Sophie Bremer
14
+ * - Kamil Kubik
15
+ *
16
+ * */
17
+ 'use strict';
18
+ import DataConverter from './DataConverter.js';
19
+ import DataConverterUtils from './DataConverterUtils.js';
20
+ import U from '../../Core/Utilities.js';
21
+ const { merge } = U;
22
+ /* *
23
+ *
24
+ * Class
25
+ *
26
+ * */
27
+ /**
28
+ * Handles parsing and transforming CSV to a table.
29
+ *
30
+ * @private
31
+ */
32
+ class CSVConverter extends DataConverter {
33
+ /* *
34
+ *
35
+ * Constructor
36
+ *
37
+ * */
38
+ /**
39
+ * Constructs an instance of the CSV parser.
40
+ *
41
+ * @param {Partial<CSVConverterOptions>} [options]
42
+ * Options for the CSV parser.
43
+ */
44
+ constructor(options) {
45
+ const mergedOptions = merge(CSVConverter.defaultOptions, options);
46
+ super(mergedOptions);
47
+ /* *
48
+ *
49
+ * Properties
50
+ *
51
+ * */
52
+ this.headers = [];
53
+ this.dataTypes = [];
54
+ this.options = mergedOptions;
55
+ }
56
+ /* *
57
+ *
58
+ * Functions
59
+ *
60
+ * */
61
+ /**
62
+ * Parses the CSV string into a DataTable column collection.
63
+ * Handles line and item delimiters, optional header row, and
64
+ * applies pre-processing if a beforeParse callback is provided.
65
+ *
66
+ * @param {Partial<CSVConverterOptions>} [options]
67
+ * Options for the parser.
68
+ * @param {DataEvent.Detail} [eventDetail]
69
+ * Custom information for pending events.
70
+ * @return {DataTable.ColumnCollection}
71
+ * The parsed column collection.
72
+ *
73
+ * @emits CSVDataParser#parse
74
+ * @emits CSVDataParser#afterParse
75
+ */
76
+ parse(options, eventDetail) {
77
+ const converter = this, dataTypes = converter.dataTypes, parserOptions = merge(this.options, options), { beforeParse, lineDelimiter, firstRowAsNames, itemDelimiter } = parserOptions;
78
+ let lines, rowIt = 0, { csv, startRow, endRow } = parserOptions, column;
79
+ const columnsArray = [];
80
+ converter.emit({
81
+ type: 'parse',
82
+ columns: columnsArray,
83
+ detail: eventDetail,
84
+ headers: converter.headers
85
+ });
86
+ if (csv && beforeParse) {
87
+ csv = beforeParse(csv);
88
+ }
89
+ if (csv) {
90
+ lines = csv
91
+ .replace(/\r\n|\r/g, '\n') // Windows | Mac
92
+ .split(lineDelimiter || '\n');
93
+ if (!startRow || startRow < 0) {
94
+ startRow = 0;
95
+ }
96
+ if (!endRow || endRow >= lines.length) {
97
+ endRow = lines.length - 1;
98
+ }
99
+ if (!itemDelimiter) {
100
+ converter.guessedItemDelimiter =
101
+ converter.guessDelimiter(lines);
102
+ }
103
+ // If the first row contain names, add them to the
104
+ // headers array and skip the row.
105
+ if (firstRowAsNames) {
106
+ const headers = lines[0].split(itemDelimiter || converter.guessedItemDelimiter || ',');
107
+ // Remove ""s from the headers
108
+ for (let i = 0; i < headers.length; i++) {
109
+ headers[i] = headers[i].trim().replace(/^["']|["']$/g, '');
110
+ }
111
+ converter.headers = headers;
112
+ startRow++;
113
+ }
114
+ let offset = 0;
115
+ for (rowIt = startRow; rowIt <= endRow; rowIt++) {
116
+ if (lines[rowIt][0] === '#') {
117
+ offset++;
118
+ }
119
+ else {
120
+ converter.parseCSVRow(columnsArray, lines[rowIt], rowIt - startRow - offset);
121
+ }
122
+ }
123
+ if (dataTypes.length &&
124
+ dataTypes[0].length &&
125
+ dataTypes[0][1] === 'date' && // Format is a string date
126
+ !converter.options.dateFormat) {
127
+ converter.deduceDateFormat(columnsArray[0], null, true);
128
+ }
129
+ // Guess types.
130
+ for (let i = 0, iEnd = columnsArray.length; i < iEnd; ++i) {
131
+ column = columnsArray[i];
132
+ for (let j = 0, jEnd = column.length; j < jEnd; ++j) {
133
+ if (column[j] && typeof column[j] === 'string') {
134
+ let cellValue = converter.convertByType(column[j]);
135
+ if (cellValue instanceof Date) {
136
+ cellValue = cellValue.getTime();
137
+ }
138
+ columnsArray[i][j] = cellValue;
139
+ }
140
+ }
141
+ }
142
+ }
143
+ // Normalize columns to same length to avoid truncation.
144
+ columnsArray.forEach((col) => {
145
+ col.length = Math.max(...columnsArray.map((c) => c.length));
146
+ });
147
+ converter.emit({
148
+ type: 'afterParse',
149
+ columns: columnsArray,
150
+ detail: eventDetail,
151
+ headers: converter.headers
152
+ });
153
+ return DataConverterUtils.getColumnsCollection(columnsArray, converter.headers);
154
+ }
155
+ /**
156
+ * Parses a single CSV row string into columns, handling delimiters,
157
+ * quoted values, data type inference, and column range selection.
158
+ */
159
+ parseCSVRow(columns, columnStr, rowNumber) {
160
+ const converter = this, dataTypes = converter.dataTypes, { startColumn, endColumn } = converter.options, itemDelimiter = (converter.options.itemDelimiter ||
161
+ converter.guessedItemDelimiter);
162
+ let { decimalPoint } = converter.options;
163
+ if (!decimalPoint || decimalPoint === itemDelimiter) {
164
+ decimalPoint = converter.guessedDecimalPoint || '.';
165
+ }
166
+ let i = 0, c = '', token = '', actualColumn = 0, column = 0;
167
+ const read = (j) => {
168
+ c = columnStr[j];
169
+ };
170
+ const pushType = (type) => {
171
+ if (dataTypes.length < column + 1) {
172
+ dataTypes.push([type]);
173
+ }
174
+ if (dataTypes[column][dataTypes[column].length - 1] !== type) {
175
+ dataTypes[column].push(type);
176
+ }
177
+ };
178
+ const push = () => {
179
+ if (startColumn > actualColumn || actualColumn > endColumn) {
180
+ // Skip this column, but increment the column count (#7272)
181
+ ++actualColumn;
182
+ token = '';
183
+ return;
184
+ }
185
+ // Save the type of the token.
186
+ if (typeof token === 'string') {
187
+ const parsedNumber = parseFloat(token);
188
+ if (!isNaN(parsedNumber) && isFinite(Number(token))) {
189
+ token = parsedNumber;
190
+ pushType('number');
191
+ }
192
+ else if (!isNaN(Date.parse(token))) {
193
+ token = token.replace(/\//g, '-');
194
+ pushType('date');
195
+ }
196
+ else {
197
+ pushType('string');
198
+ }
199
+ }
200
+ else {
201
+ pushType('number');
202
+ }
203
+ if (columns.length < column + 1) {
204
+ columns.push([]);
205
+ }
206
+ // Try to apply the decimal point, and check if the token then is a
207
+ // number. If not, reapply the initial value
208
+ if (typeof token !== 'number' &&
209
+ DataConverterUtils.guessType(token, converter) !== 'number' &&
210
+ decimalPoint) {
211
+ const initialValue = token;
212
+ token = token.replace(decimalPoint, '.');
213
+ if (DataConverterUtils.guessType(token, converter) !== 'number') {
214
+ token = initialValue;
215
+ }
216
+ }
217
+ columns[column][rowNumber] = token;
218
+ token = '';
219
+ ++column;
220
+ ++actualColumn;
221
+ };
222
+ if (!columnStr.trim().length) {
223
+ return;
224
+ }
225
+ if (columnStr.trim()[0] === '#') {
226
+ return;
227
+ }
228
+ for (; i < columnStr.length; i++) {
229
+ read(i);
230
+ if (c === '#') {
231
+ // If there are hexvalues remaining (#13283)
232
+ if (!/^#[A-F\d]{3,3}|[A-F\d]{6,6}/i.test(columnStr.substring(i))) {
233
+ // The rest of the row is a comment
234
+ push();
235
+ return;
236
+ }
237
+ }
238
+ // Quoted string
239
+ if (c === '"') {
240
+ read(++i);
241
+ while (i < columnStr.length) {
242
+ if (c === '"') {
243
+ break;
244
+ }
245
+ token += c;
246
+ read(++i);
247
+ }
248
+ }
249
+ else if (c === itemDelimiter) {
250
+ push();
251
+ // Actual column data
252
+ }
253
+ else {
254
+ token += c;
255
+ }
256
+ }
257
+ push();
258
+ }
259
+ /**
260
+ * Internal method that guesses the delimiter from the first
261
+ * 13 lines of the CSV
262
+ * @param {string[]} lines
263
+ * The CSV, split into lines
264
+ */
265
+ guessDelimiter(lines) {
266
+ let points = 0, commas = 0, guessed;
267
+ const potDelimiters = {
268
+ ',': 0,
269
+ ';': 0,
270
+ '\t': 0
271
+ }, linesCount = lines.length;
272
+ for (let i = 0; i < linesCount; i++) {
273
+ let inStr = false, c, cn, cl, token = '';
274
+ // We should be able to detect dateformats within 13 rows
275
+ if (i > 13) {
276
+ break;
277
+ }
278
+ const columnStr = lines[i];
279
+ for (let j = 0; j < columnStr.length; j++) {
280
+ c = columnStr[j];
281
+ cn = columnStr[j + 1];
282
+ cl = columnStr[j - 1];
283
+ if (c === '#') {
284
+ // Skip the rest of the line - it's a comment
285
+ break;
286
+ }
287
+ if (c === '"') {
288
+ if (inStr) {
289
+ if (cl !== '"' && cn !== '"') {
290
+ while (cn === ' ' && j < columnStr.length) {
291
+ cn = columnStr[++j];
292
+ }
293
+ // After parsing a string, the next non-blank
294
+ // should be a delimiter if the CSV is properly
295
+ // formed.
296
+ if (typeof potDelimiters[cn] !== 'undefined') {
297
+ potDelimiters[cn]++;
298
+ }
299
+ inStr = false;
300
+ }
301
+ }
302
+ else {
303
+ inStr = true;
304
+ }
305
+ }
306
+ else if (typeof potDelimiters[c] !== 'undefined') {
307
+ token = token.trim();
308
+ if (!isNaN(Date.parse(token))) {
309
+ potDelimiters[c]++;
310
+ }
311
+ else if (isNaN(Number(token)) ||
312
+ !isFinite(Number(token))) {
313
+ potDelimiters[c]++;
314
+ }
315
+ token = '';
316
+ }
317
+ else {
318
+ token += c;
319
+ }
320
+ if (c === ',') {
321
+ commas++;
322
+ }
323
+ if (c === '.') {
324
+ points++;
325
+ }
326
+ }
327
+ }
328
+ // Count the potential delimiters.
329
+ // This could be improved by checking if the number of delimiters
330
+ // equals the number of columns - 1
331
+ if (potDelimiters[';'] > potDelimiters[',']) {
332
+ guessed = ';';
333
+ }
334
+ else if (potDelimiters[','] > potDelimiters[';']) {
335
+ guessed = ',';
336
+ }
337
+ else {
338
+ // No good guess could be made..
339
+ guessed = ',';
340
+ }
341
+ // Try to deduce the decimal point if it's not explicitly set.
342
+ // If both commas or points is > 0 there is likely an issue
343
+ if (points > commas) {
344
+ this.guessedDecimalPoint = '.';
345
+ }
346
+ else {
347
+ this.guessedDecimalPoint = ',';
348
+ }
349
+ return guessed;
350
+ }
351
+ }
352
+ /* *
353
+ *
354
+ * Static Properties
355
+ *
356
+ * */
357
+ /**
358
+ * Default options
359
+ */
360
+ CSVConverter.defaultOptions = {
361
+ ...DataConverter.defaultOptions,
362
+ lineDelimiter: '\n',
363
+ startColumn: 0,
364
+ endColumn: Number.MAX_VALUE,
365
+ startRow: 0,
366
+ endRow: Number.MAX_VALUE
367
+ };
368
+ DataConverter.registerType('CSV', CSVConverter);
369
+ /* *
370
+ *
371
+ * Default Export
372
+ *
373
+ * */
374
+ export default CSVConverter;
@@ -0,0 +1,53 @@
1
+ /* *
2
+ *
3
+ * (c) 2009-2025 Highsoft AS
4
+ *
5
+ * License: www.highcharts.com/license
6
+ *
7
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
+ *
9
+ * Authors:
10
+ * - Kamil Kubik
11
+ *
12
+ * */
13
+
14
+ /* *
15
+ *
16
+ * Imports
17
+ *
18
+ * */
19
+
20
+ import type { CSVBeforeParseCallbackFunction } from '../Connectors/CSVConnectorOptions';
21
+
22
+ import DataConverter from './DataConverter';
23
+
24
+ /* *
25
+ *
26
+ * Declarations
27
+ *
28
+ * */
29
+
30
+ /**
31
+ * Options of the CSVConverter.
32
+ */
33
+ export interface CSVConverterOptions extends DataConverter.Options {
34
+ startRow: number;
35
+ endRow: number;
36
+ startColumn: number;
37
+ endColumn: number;
38
+ csv?: string;
39
+ decimalPoint?: string;
40
+ itemDelimiter?: string;
41
+ lineDelimiter: string;
42
+ useLocalDecimalPoint?: boolean;
43
+ decimalRegex?: RegExp;
44
+ beforeParse?: CSVBeforeParseCallbackFunction;
45
+ }
46
+
47
+ /* *
48
+ *
49
+ * Default Export
50
+ *
51
+ * */
52
+
53
+ export default CSVConverterOptions;
@@ -0,0 +1,168 @@
1
+ import type { DataConverterTypes } from './DataConverterType';
2
+ import type DataEvent from '../DataEvent';
3
+ import type { ColumnIdsOptions } from '../Connectors/JSONConnectorOptions';
4
+ import DataTable from '../DataTable.js';
5
+ /**
6
+ * Base class providing an interface and basic methods for a DataConverter
7
+ *
8
+ * @private
9
+ */
10
+ declare class DataConverter implements DataEvent.Emitter<DataConverter.Event> {
11
+ /**
12
+ * Default options
13
+ */
14
+ protected static readonly defaultOptions: DataConverter.Options;
15
+ /**
16
+ * Constructs an instance of the DataConverter.
17
+ *
18
+ * @param {DataConverter.UserOptions} [options]
19
+ * Options for the DataConverter.
20
+ */
21
+ constructor(options?: DataConverter.UserOptions);
22
+ /**
23
+ * A collection of available date formats.
24
+ */
25
+ dateFormats: Record<string, DataConverter.DateFormatObject>;
26
+ /**
27
+ * Regular expression used in the trim method to change a decimal point.
28
+ */
29
+ decimalRegExp?: RegExp;
30
+ /**
31
+ * Options for the DataConverter.
32
+ */
33
+ readonly options: DataConverter.Options;
34
+ /**
35
+ * Converts a string value based on its guessed type.
36
+ *
37
+ * @param {*} value
38
+ * The value to examine.
39
+ *
40
+ * @return {number | string | Date}
41
+ * The converted value.
42
+ */
43
+ convertByType(value: DataConverter.Type): number | string | Date;
44
+ /**
45
+ * Tries to guess the date format
46
+ * - Check if either month candidate exceeds 12
47
+ * - Check if year is missing (use current year)
48
+ * - Check if a shortened year format is used (e.g. 1/1/99)
49
+ * - If no guess can be made, the user must be prompted
50
+ * data is the data to deduce a format based on
51
+ * @private
52
+ *
53
+ * @param {string[]} data
54
+ * Data to check the format.
55
+ *
56
+ * @param {number} limit
57
+ * Max data to check the format.
58
+ *
59
+ * @param {boolean} save
60
+ * Whether to save the date format in the converter options.
61
+ */
62
+ deduceDateFormat(data: string[], limit?: number | null, save?: boolean): string;
63
+ /**
64
+ * Emits an event on the DataConverter instance.
65
+ *
66
+ * @param {DataConverter.Event} [e]
67
+ * Event object containing additional event data
68
+ */
69
+ emit(e: DataConverter.Event): void;
70
+ /**
71
+ * Registers a callback for a specific event.
72
+ *
73
+ * @param {string} type
74
+ * Event type as a string.
75
+ *
76
+ * @param {DataEventEmitter.Callback} callback
77
+ * Function to register for an modifier callback.
78
+ *
79
+ * @return {Function}
80
+ * Function to unregister callback from the modifier event.
81
+ */
82
+ on<T extends DataConverter.Event['type']>(type: T, callback: DataEvent.Callback<this, Extract<DataConverter.Event, {
83
+ type: T;
84
+ }>>): Function;
85
+ /**
86
+ * Parse a date and return it as a number.
87
+ *
88
+ * @param {string} value
89
+ * Value to parse.
90
+ *
91
+ * @param {string} dateFormatProp
92
+ * Which of the predefined date formats
93
+ * to use to parse date values.
94
+ */
95
+ parseDate(value: string, dateFormatProp?: string): number;
96
+ }
97
+ /**
98
+ * Additionally provided types for events and conversion.
99
+ */
100
+ declare namespace DataConverter {
101
+ /**
102
+ * The basic event object for a DataConverter instance.
103
+ * Valid types are `parse`, `afterParse`, and `parseError`
104
+ */
105
+ interface Event extends DataEvent {
106
+ readonly type: ('export' | 'afterExport' | 'exportError' | 'parse' | 'afterParse' | 'parseError');
107
+ readonly columns: DataTable.Column[];
108
+ readonly error?: string | Error;
109
+ readonly headers: string[] | ColumnIdsOptions;
110
+ }
111
+ interface DateFormatCallbackFunction {
112
+ (match: ReturnType<string['match']>): number;
113
+ }
114
+ interface DateFormatObject {
115
+ alternative?: string;
116
+ parser: DateFormatCallbackFunction;
117
+ regex: RegExp;
118
+ }
119
+ /**
120
+ * The shared options for all DataConverter instances
121
+ */
122
+ interface Options {
123
+ dateFormat?: string;
124
+ decimalPoint?: string;
125
+ firstRowAsNames: boolean;
126
+ /**
127
+ * A function to parse string representations of dates into JavaScript
128
+ * timestamps. If not set, the default implementation will be used.
129
+ */
130
+ parseDate?: DataConverter.ParseDateFunction;
131
+ }
132
+ /**
133
+ * A function to parse string representations of dates
134
+ * into JavaScript timestamps.
135
+ */
136
+ interface ParseDateFunction {
137
+ (dateValue: string): number;
138
+ }
139
+ /**
140
+ * Contains supported types to convert values from and to.
141
+ */
142
+ type Type = (boolean | null | number | string | DataTable | Date | undefined);
143
+ /**
144
+ * Options of the DataConverter.
145
+ */
146
+ type UserOptions = Partial<Options>;
147
+ /**
148
+ * Registry as a record object with connector names and their class.
149
+ */
150
+ const types: DataConverterTypes;
151
+ /**
152
+ * Adds a converter class to the registry.
153
+ *
154
+ * @private
155
+ *
156
+ * @param {string} key
157
+ * Registry key of the converter class.
158
+ *
159
+ * @param {DataConverterTypes} DataConverterClass
160
+ * Connector class (aka class constructor) to register.
161
+ *
162
+ * @return {boolean}
163
+ * Returns true, if the registration was successful. False is returned, if
164
+ * their is already a converter registered with this key.
165
+ */
166
+ function registerType<T extends keyof DataConverterTypes>(key: T, DataConverterClass: DataConverterTypes[T]): boolean;
167
+ }
168
+ export default DataConverter;