@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,428 @@
1
+ /* *
2
+ *
3
+ * (c) 2010-2025 Torstein Honsi
4
+ *
5
+ * License: www.highcharts.com/license
6
+ *
7
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
+ *
9
+ * */
10
+ 'use strict';
11
+ import D from './Defaults.js';
12
+ const { defaultOptions, defaultTime } = D;
13
+ import G from './Globals.js';
14
+ const { pageLang } = G;
15
+ import U from './Utilities.js';
16
+ const { extend, getNestedProperty, isArray, isNumber, isObject, isString, pick, ucfirst } = U;
17
+ const helpers = {
18
+ // Built-in helpers
19
+ add: (a, b) => a + b,
20
+ divide: (a, b) => (b !== 0 ? a / b : ''),
21
+ // eslint-disable-next-line eqeqeq
22
+ eq: (a, b) => a == b,
23
+ each: function (arr) {
24
+ const match = arguments[arguments.length - 1];
25
+ return isArray(arr) ?
26
+ arr.map((item, i) => format(match.body, extend(isObject(item) ? item : { '@this': item }, {
27
+ '@index': i,
28
+ '@first': i === 0,
29
+ '@last': i === arr.length - 1
30
+ }))).join('') :
31
+ false;
32
+ },
33
+ ge: (a, b) => a >= b,
34
+ gt: (a, b) => a > b,
35
+ 'if': (condition) => !!condition,
36
+ le: (a, b) => a <= b,
37
+ lt: (a, b) => a < b,
38
+ multiply: (a, b) => a * b,
39
+ // eslint-disable-next-line eqeqeq
40
+ ne: (a, b) => a != b,
41
+ subtract: (a, b) => a - b,
42
+ ucfirst,
43
+ unless: (condition) => !condition
44
+ };
45
+ const numberFormatCache = {};
46
+ /* *
47
+ *
48
+ * Functions
49
+ *
50
+ * */
51
+ // Internal convenience function
52
+ const isQuotedString = (str) => /^["'].+["']$/.test(str);
53
+ /**
54
+ * Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a
55
+ * human readable date string. The format is a subset of the formats for PHP's
56
+ * [strftime](https://www.php.net/manual/en/function.strftime.php) function.
57
+ * Additional formats can be given in the {@link Highcharts.dateFormats} hook.
58
+ *
59
+ * Since v6.0.5, all internal dates are formatted through the
60
+ * {@link Highcharts.Chart#time} instance to respect chart-level time settings.
61
+ * The `Highcharts.dateFormat` function only reflects global time settings set
62
+ * with `setOptions`.
63
+ *
64
+ * Supported format keys:
65
+ * - `%a`: Short weekday, like 'Mon'
66
+ * - `%A`: Long weekday, like 'Monday'
67
+ * - `%d`: Two digit day of the month, 01 to 31
68
+ * - `%e`: Day of the month, 1 through 31
69
+ * - `%w`: Day of the week, 0 through 6
70
+ * - `%b`: Short month, like 'Jan'
71
+ * - `%B`: Long month, like 'January'
72
+ * - `%m`: Two digit month number, 01 through 12
73
+ * - `%y`: Two digits year, like 09 for 2009
74
+ * - `%Y`: Four digits year, like 2009
75
+ * - `%H`: Two digits hours in 24h format, 00 through 23
76
+ * - `%k`: Hours in 24h format, 0 through 23
77
+ * - `%I`: Two digits hours in 12h format, 00 through 11
78
+ * - `%l`: Hours in 12h format, 1 through 12
79
+ * - `%M`: Two digits minutes, 00 through 59
80
+ * - `%p`: Upper case AM or PM
81
+ * - `%P`: Lower case AM or PM
82
+ * - `%S`: Two digits seconds, 00 through 59
83
+ * - `%L`: Milliseconds (naming from Ruby)
84
+ *
85
+ * @function Highcharts.dateFormat
86
+ *
87
+ * @param {string} format
88
+ * The desired format where various time representations are prefixed
89
+ * with `%`.
90
+ *
91
+ * @param {number} timestamp
92
+ * The JavaScript timestamp.
93
+ *
94
+ * @param {boolean} [upperCaseFirst=false]
95
+ * Upper case first letter in the return.
96
+ *
97
+ * @return {string}
98
+ * The formatted date.
99
+ */
100
+ function dateFormat(format, timestamp, upperCaseFirst) {
101
+ return defaultTime.dateFormat(format, timestamp, upperCaseFirst);
102
+ }
103
+ /**
104
+ * Format a string according to a subset of the rules of Python's String.format
105
+ * method.
106
+ *
107
+ * @example
108
+ * let s = Highcharts.format(
109
+ * 'The {color} fox was {len:.2f} feet long',
110
+ * { color: 'red', len: Math.PI }
111
+ * );
112
+ * // => The red fox was 3.14 feet long
113
+ *
114
+ * @function Highcharts.format
115
+ *
116
+ * @param {string} str
117
+ * The string to format.
118
+ *
119
+ * @param {Record<string, *>} ctx
120
+ * The context, a collection of key-value pairs where each key is
121
+ * replaced by its value.
122
+ *
123
+ * @param {Highcharts.Chart} [owner]
124
+ * A `Chart` or `Grid` instance used to get numberFormatter and time.
125
+ *
126
+ * @return {string}
127
+ * The formatted string.
128
+ */
129
+ function format(str = '', ctx, owner) {
130
+ // Notice: using u flag will require a refactor for ES5 (#22450).
131
+ const regex = /\{([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/g, // eslint-disable-line max-len
132
+ // The sub expression regex is the same as the top expression regex,
133
+ // but except parens and block helpers (#), and surrounded by parens
134
+ // instead of curly brackets.
135
+ subRegex = /\(([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/g, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = owner?.options?.lang || defaultOptions.lang, time = owner?.time || defaultTime, numberFormatter = owner?.numberFormatter || numberFormat.bind(owner);
136
+ /*
137
+ * Get a literal or variable value inside a template expression. May be
138
+ * extended with other types like string or null if needed, but keep it
139
+ * small for now.
140
+ */
141
+ const resolveProperty = (key = '') => {
142
+ let n;
143
+ // Literals
144
+ if (key === 'true') {
145
+ return true;
146
+ }
147
+ if (key === 'false') {
148
+ return false;
149
+ }
150
+ if ((n = Number(key)).toString() === key) {
151
+ return n;
152
+ }
153
+ if (isQuotedString(key)) {
154
+ return key.slice(1, -1);
155
+ }
156
+ // Variables and constants
157
+ return getNestedProperty(key, ctx);
158
+ };
159
+ let match, currentMatch, depth = 0, hasSub;
160
+ // Parse and create tree
161
+ while ((match = regex.exec(str)) !== null) {
162
+ // When a sub expression is found, it is evaluated first, and the
163
+ // results recursively evaluated until no subexpression exists.
164
+ const mainMatch = match, subMatch = subRegex.exec(match[1]);
165
+ if (subMatch) {
166
+ match = subMatch;
167
+ hasSub = true;
168
+ }
169
+ if (!currentMatch?.isBlock) {
170
+ currentMatch = {
171
+ ctx,
172
+ expression: match[1],
173
+ find: match[0],
174
+ isBlock: match[1].charAt(0) === '#',
175
+ start: match.index,
176
+ startInner: match.index + match[0].length,
177
+ length: match[0].length
178
+ };
179
+ }
180
+ // Identify helpers
181
+ const fn = (currentMatch.isBlock ? mainMatch : match)[1].split(' ')[0].replace('#', '');
182
+ if (helpers[fn]) {
183
+ // Block helper, only 0 level is handled
184
+ if (currentMatch.isBlock && fn === currentMatch.fn) {
185
+ depth++;
186
+ }
187
+ if (!currentMatch.fn) {
188
+ currentMatch.fn = fn;
189
+ }
190
+ }
191
+ // Closing a block helper
192
+ const startingElseSection = match[1] === 'else';
193
+ if (currentMatch.isBlock &&
194
+ currentMatch.fn && (match[1] === `/${currentMatch.fn}` ||
195
+ startingElseSection)) {
196
+ if (!depth) { // === 0
197
+ const start = currentMatch.startInner, body = str.substr(start, match.index - start);
198
+ // Either closing without an else section, or when encountering
199
+ // an else section
200
+ if (currentMatch.body === void 0) {
201
+ currentMatch.body = body;
202
+ currentMatch.startInner = match.index + match[0].length;
203
+ // The body exists already, so this is the else section
204
+ }
205
+ else {
206
+ currentMatch.elseBody = body;
207
+ }
208
+ currentMatch.find += body + match[0];
209
+ if (!startingElseSection) {
210
+ matches.push(currentMatch);
211
+ currentMatch = void 0;
212
+ }
213
+ }
214
+ else if (!startingElseSection) {
215
+ depth--;
216
+ }
217
+ // Common expression
218
+ }
219
+ else if (!currentMatch.isBlock) {
220
+ matches.push(currentMatch);
221
+ }
222
+ // Evaluate sub-matches one by one to prevent orphaned block closers
223
+ if (subMatch && !currentMatch?.isBlock) {
224
+ break;
225
+ }
226
+ }
227
+ // Execute
228
+ matches.forEach((match) => {
229
+ const { body, elseBody, expression, fn } = match;
230
+ let replacement, i;
231
+ // Helper function
232
+ if (fn) {
233
+ // Pass the helpers the amount of arguments defined by the function,
234
+ // then the match as the last argument.
235
+ const args = [match], parts = [], len = expression.length;
236
+ let start = 0, startChar;
237
+ for (i = 0; i <= len; i++) {
238
+ const char = expression.charAt(i);
239
+ // Start of string
240
+ if (!startChar && (char === '"' || char === '\'')) {
241
+ startChar = char;
242
+ // End of string
243
+ }
244
+ else if (startChar === char) {
245
+ startChar = '';
246
+ }
247
+ if (!startChar &&
248
+ (char === ' ' || i === len)) {
249
+ parts.push(expression.substr(start, i - start));
250
+ start = i + 1;
251
+ }
252
+ }
253
+ i = helpers[fn].length;
254
+ while (i--) {
255
+ args.unshift(resolveProperty(parts[i + 1]));
256
+ }
257
+ replacement = helpers[fn].apply(ctx, args);
258
+ // Block helpers may return true or false. They may also return a
259
+ // string, like the `each` helper.
260
+ if (match.isBlock && typeof replacement === 'boolean') {
261
+ replacement = format(replacement ? body : elseBody, ctx, owner);
262
+ }
263
+ // Simple variable replacement
264
+ }
265
+ else {
266
+ const valueAndFormat = isQuotedString(expression) ?
267
+ [expression] : expression.split(':');
268
+ replacement = resolveProperty(valueAndFormat.shift() || '');
269
+ // Format the replacement
270
+ const isFloat = replacement % 1 !== 0;
271
+ if (typeof replacement === 'number' &&
272
+ (valueAndFormat.length || isFloat)) {
273
+ const segment = valueAndFormat.join(':');
274
+ if (floatRegex.test(segment) || isFloat) { // Float
275
+ const decimals = parseInt((segment.match(decRegex) || ['', '-1'])[1], 10);
276
+ if (replacement !== null) {
277
+ replacement = numberFormatter(replacement, decimals, lang.decimalPoint, segment.indexOf(',') > -1 ? lang.thousandsSep : '');
278
+ }
279
+ }
280
+ else {
281
+ replacement = time.dateFormat(segment, replacement);
282
+ }
283
+ }
284
+ // Use string literal in order to be preserved in the outer
285
+ // expression
286
+ subRegex.lastIndex = 0;
287
+ if (subRegex.test(match.find) && isString(replacement)) {
288
+ replacement = `"${replacement}"`;
289
+ }
290
+ }
291
+ str = str.replace(match.find, pick(replacement, ''));
292
+ });
293
+ return hasSub ? format(str, ctx, owner) : str;
294
+ }
295
+ /**
296
+ * Format a number and return a string based on input settings.
297
+ *
298
+ * @sample highcharts/members/highcharts-numberformat/
299
+ * Custom number format
300
+ *
301
+ * @function Highcharts.numberFormat
302
+ *
303
+ * @param {number} number
304
+ * The input number to format.
305
+ *
306
+ * @param {number} decimals
307
+ * The amount of decimals. A value of -1 preserves the amount in the
308
+ * input number.
309
+ *
310
+ * @param {string} [decimalPoint]
311
+ * The decimal point, defaults to the one given in the lang options, or
312
+ * a dot.
313
+ *
314
+ * @param {string} [thousandsSep]
315
+ * The thousands separator, defaults to the one given in the lang
316
+ * options, or a space character.
317
+ *
318
+ * @return {string}
319
+ * The formatted number.
320
+ */
321
+ function numberFormat(number, decimals, decimalPoint, thousandsSep) {
322
+ number = +number || 0;
323
+ decimals = +decimals;
324
+ let ret, fractionDigits, [mantissa, exp] = number.toString().split('e').map(Number);
325
+ const lang = this?.options?.lang || defaultOptions.lang, origDec = (number.toString().split('.')[1] || '').split('e')[0].length, firstDecimals = decimals, options = {};
326
+ decimalPoint ?? (decimalPoint = lang.decimalPoint);
327
+ thousandsSep ?? (thousandsSep = lang.thousandsSep);
328
+ if (decimals === -1) {
329
+ // Preserve decimals. Not huge numbers (#3793).
330
+ decimals = Math.min(origDec, 20);
331
+ }
332
+ else if (!isNumber(decimals)) {
333
+ decimals = 2;
334
+ }
335
+ else if (decimals && exp < 0) {
336
+ // Expose decimals from exponential notation (#7042)
337
+ fractionDigits = decimals + exp;
338
+ if (fractionDigits >= 0) {
339
+ // Remove too small part of the number while keeping the notation
340
+ mantissa = +mantissa.toExponential(fractionDigits).split('e')[0];
341
+ decimals = fractionDigits;
342
+ }
343
+ else {
344
+ // `fractionDigits < 0`
345
+ mantissa = Math.floor(mantissa);
346
+ if (decimals < 20) {
347
+ // Use number instead of exponential notation (#7405)
348
+ number = +(mantissa * Math.pow(10, exp)).toFixed(decimals);
349
+ }
350
+ else {
351
+ // Or zero
352
+ number = 0;
353
+ }
354
+ exp = 0;
355
+ }
356
+ }
357
+ if (exp) {
358
+ decimals ?? (decimals = 2);
359
+ number = mantissa;
360
+ }
361
+ if (isNumber(decimals) && decimals >= 0) {
362
+ options.minimumFractionDigits = decimals;
363
+ options.maximumFractionDigits = decimals;
364
+ }
365
+ if (thousandsSep === '') {
366
+ options.useGrouping = false;
367
+ }
368
+ const hasSeparators = thousandsSep || decimalPoint, locale = hasSeparators ?
369
+ 'en' : (this?.locale || lang.locale || pageLang), cacheKey = JSON.stringify(options) + locale, nf = numberFormatCache[cacheKey] ?? (numberFormatCache[cacheKey] = new Intl.NumberFormat(locale, options));
370
+ ret = nf.format(number);
371
+ // If thousandsSep or decimalPoint are set, fall back to using English
372
+ // format with string replacement for the separators.
373
+ if (hasSeparators) {
374
+ ret = ret
375
+ // Preliminary step to avoid re-swapping (#22402)
376
+ .replace(/([,\.])/g, '_$1')
377
+ .replace(/_\,/g, thousandsSep ?? ',')
378
+ .replace('_.', decimalPoint ?? '.');
379
+ }
380
+ if (
381
+ // Remove signed zero (#20564)
382
+ (!decimals && +ret === 0) ||
383
+ // Small numbers, no decimals (#14023)
384
+ (exp < 0 && !firstDecimals)) {
385
+ ret = '0';
386
+ }
387
+ if (exp && +ret !== 0) {
388
+ ret += 'e' + (exp < 0 ? '' : '+') + exp;
389
+ }
390
+ return ret;
391
+ }
392
+ /* *
393
+ *
394
+ * Default Export
395
+ *
396
+ * */
397
+ const Templating = {
398
+ dateFormat,
399
+ format,
400
+ helpers,
401
+ numberFormat
402
+ };
403
+ export default Templating;
404
+ /* *
405
+ * API Declarations
406
+ * */
407
+ /**
408
+ * @interface Highcharts.Templating
409
+ *
410
+ * The Highcharts.Templating interface provides a structure for defining
411
+ * helpers. Helpers can be used as conditional blocks or functions within
412
+ * expressions. Highcharts includes several built-in helpers and supports
413
+ * the addition of custom helpers.
414
+ *
415
+ * @see [More information](
416
+ * https://www.highcharts.com/docs/chart-concepts/templating#helpers)
417
+ *
418
+ * @example
419
+ * // Define a custom helper to return the absolute value of a number
420
+ * Highcharts.Templating.helpers.abs = value => Math.abs(value);
421
+ *
422
+ * // Usage in a format string
423
+ * format: 'Absolute value: {abs point.y}'
424
+ *
425
+ * @name Highcharts.Templating#helpers
426
+ * @type {Record<string, Function>}
427
+ */
428
+ (''); // Keeps doclets above in file
@@ -0,0 +1,69 @@
1
+ import type TickPositionsArray from './Axis/TickPositionsArray';
2
+ import type TimeTicksInfoObject from './Axis/TimeTicksInfoObject';
3
+ import TimeBase from '../Shared/TimeBase.js';
4
+ declare module './Axis/TickPositionsArray' {
5
+ interface TickPositionsArray {
6
+ info?: TimeTicksInfoObject;
7
+ }
8
+ }
9
+ declare class Time extends TimeBase {
10
+ /**
11
+ * Return an array with time positions distributed on round time values
12
+ * right and right after min and max. Used in datetime axes as well as for
13
+ * grouping data on a datetime axis.
14
+ *
15
+ * @function Highcharts.Time#getTimeTicks
16
+ *
17
+ * @param {Highcharts.TimeNormalizedObject} normalizedInterval
18
+ * The interval in axis values (ms) and the count
19
+ *
20
+ * @param {number} [min]
21
+ * The minimum in axis values
22
+ *
23
+ * @param {number} [max]
24
+ * The maximum in axis values
25
+ *
26
+ * @param {number} [startOfWeek=1]
27
+ *
28
+ * @return {Highcharts.AxisTickPositionsArray}
29
+ * Time positions
30
+ */
31
+ getTimeTicks(normalizedInterval: Time.TimeNormalizedObject, min?: number, max?: number, startOfWeek?: number): TickPositionsArray;
32
+ }
33
+ declare namespace Time {
34
+ interface DateTimeFormatOptions extends Intl.DateTimeFormatOptions {
35
+ dateStyle?: 'full' | 'long' | 'medium' | 'short';
36
+ fractionalSecondDigits?: number;
37
+ prefix?: string;
38
+ suffix?: string;
39
+ timeStyle?: 'full' | 'long' | 'medium' | 'short';
40
+ }
41
+ type DateTimeFormat = string | DateTimeFormatOptions;
42
+ interface DateTimeLabelFormatObject {
43
+ from?: DateTimeFormat;
44
+ list?: DateTimeFormat[];
45
+ main: DateTimeFormat;
46
+ range?: boolean;
47
+ to?: DateTimeFormat;
48
+ }
49
+ type DateTimeLabelFormatOption = (DateTimeFormat | Array<string> | Time.DateTimeLabelFormatObject);
50
+ type DateTimeLabelFormatsOption = (Record<TimeUnit, DateTimeLabelFormatOption>);
51
+ interface TimeOptions {
52
+ Date?: any;
53
+ locale?: string | Array<string>;
54
+ timezone?: string;
55
+ timezoneOffset?: number;
56
+ useUTC?: boolean;
57
+ }
58
+ interface TimeFormatCallbackFunction {
59
+ (this: Time, timestamp: number): string;
60
+ }
61
+ interface TimeNormalizedObject {
62
+ count: number;
63
+ unitName: TimeUnit;
64
+ unitRange: number;
65
+ }
66
+ type TimeUnit = ('millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year');
67
+ type TimeUnitValue = ('Date' | 'Day' | 'FullYear' | 'Hours' | 'Milliseconds' | 'Minutes' | 'Month' | 'Seconds');
68
+ }
69
+ export default Time;
@@ -0,0 +1,172 @@
1
+ /* *
2
+ *
3
+ * (c) 2010-2025 Torstein Honsi
4
+ *
5
+ * License: www.highcharts.com/license
6
+ *
7
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
8
+ *
9
+ * */
10
+ 'use strict';
11
+ import TimeBase from '../Shared/TimeBase.js';
12
+ import U from '../Core/Utilities.js';
13
+ const { defined, extend, timeUnits } = U;
14
+ /* *
15
+ *
16
+ * Constants
17
+ *
18
+ * */
19
+ class Time extends TimeBase {
20
+ /**
21
+ * Return an array with time positions distributed on round time values
22
+ * right and right after min and max. Used in datetime axes as well as for
23
+ * grouping data on a datetime axis.
24
+ *
25
+ * @function Highcharts.Time#getTimeTicks
26
+ *
27
+ * @param {Highcharts.TimeNormalizedObject} normalizedInterval
28
+ * The interval in axis values (ms) and the count
29
+ *
30
+ * @param {number} [min]
31
+ * The minimum in axis values
32
+ *
33
+ * @param {number} [max]
34
+ * The maximum in axis values
35
+ *
36
+ * @param {number} [startOfWeek=1]
37
+ *
38
+ * @return {Highcharts.AxisTickPositionsArray}
39
+ * Time positions
40
+ */
41
+ getTimeTicks(normalizedInterval, min, max, startOfWeek) {
42
+ const time = this, tickPositions = [], higherRanks = {}, { count = 1, unitRange } = normalizedInterval;
43
+ let [year, month, dayOfMonth, hours, minutes, seconds] = time.toParts(min), milliseconds = (min || 0) % 1000, variableDayLength;
44
+ startOfWeek ?? (startOfWeek = 1);
45
+ if (defined(min)) { // #1300
46
+ milliseconds = unitRange >= timeUnits.second ?
47
+ 0 : // #3935
48
+ count * Math.floor(milliseconds / count);
49
+ if (unitRange >= timeUnits.second) { // Second
50
+ seconds = unitRange >= timeUnits.minute ?
51
+ 0 : // #3935
52
+ count * Math.floor(seconds / count);
53
+ }
54
+ if (unitRange >= timeUnits.minute) { // Minute
55
+ minutes = unitRange >= timeUnits.hour ?
56
+ 0 :
57
+ count * Math.floor(minutes / count);
58
+ }
59
+ if (unitRange >= timeUnits.hour) { // Hour
60
+ hours = unitRange >= timeUnits.day ?
61
+ 0 :
62
+ count * Math.floor(hours / count);
63
+ }
64
+ if (unitRange >= timeUnits.day) { // Day
65
+ dayOfMonth = unitRange >= timeUnits.month ?
66
+ 1 :
67
+ Math.max(1, count * Math.floor(dayOfMonth / count));
68
+ }
69
+ if (unitRange >= timeUnits.month) { // Month
70
+ month = unitRange >= timeUnits.year ? 0 :
71
+ count * Math.floor(month / count);
72
+ }
73
+ if (unitRange >= timeUnits.year) { // Year
74
+ year -= year % count;
75
+ }
76
+ // Week is a special case that runs outside the hierarchy
77
+ if (unitRange === timeUnits.week) {
78
+ if (count) {
79
+ min = time.makeTime(year, month, dayOfMonth, hours, minutes, seconds, milliseconds);
80
+ }
81
+ // Get start of current week, independent of count
82
+ const weekday = this.dateTimeFormat({
83
+ timeZone: this.timezone,
84
+ weekday: 'narrow'
85
+ }, min, 'es'),
86
+ // Spanish weekday index
87
+ weekdayNo = 'DLMXJVS'.indexOf(weekday);
88
+ dayOfMonth += -weekdayNo + startOfWeek +
89
+ // We don't want to skip days that are before
90
+ // startOfWeek (#7051)
91
+ (weekdayNo < startOfWeek ? -7 : 0);
92
+ }
93
+ min = time.makeTime(year, month, dayOfMonth, hours, minutes, seconds, milliseconds);
94
+ // Handle local timezone offset
95
+ if (time.variableTimezone && defined(max)) {
96
+ // Detect whether we need to take the DST crossover into
97
+ // consideration. If we're crossing over DST, the day length may
98
+ // be 23h or 25h and we need to compute the exact clock time for
99
+ // each tick instead of just adding hours. This comes at a cost,
100
+ // so first we find out if it is needed (#4951).
101
+ variableDayLength = (
102
+ // Long range, assume we're crossing over.
103
+ max - min > 4 * timeUnits.month ||
104
+ // Short range, check if min and max are in different time
105
+ // zones.
106
+ time.getTimezoneOffset(min) !==
107
+ time.getTimezoneOffset(max));
108
+ }
109
+ // Iterate and add tick positions at appropriate values
110
+ let t = min, i = 1;
111
+ while (t < max) {
112
+ tickPositions.push(t);
113
+ // Increase the years
114
+ if (unitRange === timeUnits.year) {
115
+ t = time.makeTime(year + i * count, 0);
116
+ // Increase the months
117
+ }
118
+ else if (unitRange === timeUnits.month) {
119
+ t = time.makeTime(year, month + i * count);
120
+ // If we're using local time, the interval is not fixed as it
121
+ // jumps one hour at the DST crossover
122
+ }
123
+ else if (variableDayLength && (unitRange === timeUnits.day ||
124
+ unitRange === timeUnits.week)) {
125
+ t = time.makeTime(year, month, dayOfMonth +
126
+ i * count * (unitRange === timeUnits.day ? 1 : 7));
127
+ }
128
+ else if (variableDayLength &&
129
+ unitRange === timeUnits.hour &&
130
+ count > 1) {
131
+ // Make sure higher ranks are preserved across DST (#6797,
132
+ // #7621)
133
+ t = time.makeTime(year, month, dayOfMonth, hours + i * count);
134
+ // Else, the interval is fixed and we use simple addition
135
+ }
136
+ else {
137
+ t += unitRange * count;
138
+ }
139
+ i++;
140
+ }
141
+ // Push the last time
142
+ tickPositions.push(t);
143
+ // Handle higher ranks. Mark new days if the time is on midnight
144
+ // (#950, #1649, #1760, #3349). Use a reasonable dropout threshold
145
+ // to prevent looping over dense data grouping (#6156).
146
+ if (unitRange <= timeUnits.hour && tickPositions.length < 10000) {
147
+ tickPositions.forEach((t) => {
148
+ if (
149
+ // Speed optimization, no need to run dateFormat unless
150
+ // we're on a full or half hour
151
+ t % 1800000 === 0 &&
152
+ // Check for local or global midnight
153
+ time.dateFormat('%H%M%S%L', t) === '000000000') {
154
+ higherRanks[t] = 'day';
155
+ }
156
+ });
157
+ }
158
+ }
159
+ // Record information on the chosen unit - for dynamic label formatter
160
+ tickPositions.info = extend(normalizedInterval, {
161
+ higherRanks,
162
+ totalRange: unitRange * count
163
+ });
164
+ return tickPositions;
165
+ }
166
+ }
167
+ /* *
168
+ *
169
+ * Default export
170
+ *
171
+ * */
172
+ export default Time;