@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,19 @@
1
+ import type { XAxisOptions } from './Axis/AxisOptions';
2
+ import type { ChartOptions } from './Chart/ChartOptions';
3
+ import type { SeriesOptions } from './Series/SeriesOptions';
4
+ import type { LegendOptions } from './Legend/LegendOptions';
5
+ import Axis from './Axis/Axis.js';
6
+ import Chart from './Chart/Chart.js';
7
+ import Legend from './Legend/Legend.js';
8
+ import Series from './Series/Series.js';
9
+ declare namespace Foundation {
10
+ /**
11
+ * Register event options. If an event handler is set on the options, it
12
+ * should be subject to Chart.update, Axis.update and Series.update. This is
13
+ * contrary to general handlers that are set directly using addEvent either
14
+ * on the class or on the instance. #6538, #6943, #10861.
15
+ * @private
16
+ */
17
+ function registerEventOptions(component: Axis | Chart | Legend | Series, options: XAxisOptions | ChartOptions | LegendOptions | SeriesOptions): void;
18
+ }
19
+ export default Foundation;
@@ -0,0 +1,63 @@
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 U from './Utilities.js';
12
+ const { addEvent, isFunction, objectEach, removeEvent } = U;
13
+ /* *
14
+ *
15
+ * Class Namespace
16
+ *
17
+ * */
18
+ var Foundation;
19
+ (function (Foundation) {
20
+ /* *
21
+ *
22
+ * Functions
23
+ *
24
+ * */
25
+ /* eslint-disable valid-jsdoc */
26
+ /**
27
+ * Register event options. If an event handler is set on the options, it
28
+ * should be subject to Chart.update, Axis.update and Series.update. This is
29
+ * contrary to general handlers that are set directly using addEvent either
30
+ * on the class or on the instance. #6538, #6943, #10861.
31
+ * @private
32
+ */
33
+ function registerEventOptions(component, options) {
34
+ // A lookup over those events that are added by _options_ (not
35
+ // programmatically). These are updated through .update()
36
+ component.eventOptions = component.eventOptions || {};
37
+ // Register event listeners
38
+ objectEach(options.events, function (event, eventType) {
39
+ // If event does not exist, or is changed by the .update()
40
+ // function
41
+ if (component.eventOptions[eventType] !== event) {
42
+ // Remove existing if set by option
43
+ if (component.eventOptions[eventType]) {
44
+ removeEvent(component, eventType, component.eventOptions[eventType]);
45
+ delete component.eventOptions[eventType];
46
+ }
47
+ if (isFunction(event)) {
48
+ component.eventOptions[eventType] = event;
49
+ addEvent(component, eventType, event, {
50
+ order: 0 // #14080 fire those events as firsts
51
+ });
52
+ }
53
+ }
54
+ });
55
+ }
56
+ Foundation.registerEventOptions = registerEventOptions;
57
+ })(Foundation || (Foundation = {}));
58
+ /* *
59
+ *
60
+ * Default Export
61
+ *
62
+ * */
63
+ export default Foundation;
@@ -0,0 +1,189 @@
1
+ import type CircleObject from './CircleObject';
2
+ import type GeometryObject from './GeometryObject';
3
+ import type IntersectionObject from './IntersectionObject';
4
+ import type PositionObject from '../Renderer/PositionObject';
5
+ declare namespace CircleUtilities {
6
+ /**
7
+ * @private
8
+ *
9
+ * @param {number} x
10
+ * Number to round
11
+ *
12
+ * @param {number} decimals
13
+ * Number of decimals to round to
14
+ *
15
+ * @return {number}
16
+ * Rounded number
17
+ */
18
+ function round(x: number, decimals: number): number;
19
+ /**
20
+ * Calculates the area of a circle based on its radius.
21
+ *
22
+ * @private
23
+ *
24
+ * @param {number} r
25
+ * The radius of the circle.
26
+ *
27
+ * @return {number}
28
+ * Returns the area of the circle.
29
+ */
30
+ function getAreaOfCircle(r: number): number;
31
+ /**
32
+ * Calculates the area of a circular segment based on the radius of the
33
+ * circle and the height of the segment.
34
+ *
35
+ * @see http://mathworld.wolfram.com/CircularSegment.html
36
+ *
37
+ * @private
38
+ *
39
+ * @param {number} r
40
+ * The radius of the circle.
41
+ *
42
+ * @param {number} h
43
+ * The height of the circular segment.
44
+ *
45
+ * @return {number}
46
+ * Returns the area of the circular segment.
47
+ */
48
+ function getCircularSegmentArea(r: number, h: number): number;
49
+ /**
50
+ * Calculates the area of overlap between two circles based on their
51
+ * radiuses and the distance between them.
52
+ *
53
+ * @see http://mathworld.wolfram.com/Circle-CircleIntersection.html
54
+ *
55
+ * @private
56
+ *
57
+ * @param {number} r1
58
+ * Radius of the first circle.
59
+ *
60
+ * @param {number} r2
61
+ * Radius of the second circle.
62
+ *
63
+ * @param {number} d
64
+ * The distance between the two circles.
65
+ *
66
+ * @return {number}
67
+ * Returns the area of overlap between the two circles.
68
+ */
69
+ function getOverlapBetweenCircles(r1: number, r2: number, d: number): number;
70
+ /**
71
+ * Calculates the intersection points of two circles.
72
+ *
73
+ * NOTE: does not handle floating errors well.
74
+ *
75
+ * @private
76
+ *
77
+ * @param {Highcharts.CircleObject} c1
78
+ * The first circle.
79
+ *
80
+ * @param {Highcharts.CircleObject} c2
81
+ * The second circle.
82
+ *
83
+ * @return {Array<Highcharts.PositionObject>}
84
+ * Returns the resulting intersection points.
85
+ */
86
+ function getCircleCircleIntersection(c1: CircleObject, c2: CircleObject): Array<PositionObject>;
87
+ /**
88
+ * Calculates all the intersection points for between a list of circles.
89
+ *
90
+ * @private
91
+ *
92
+ * @param {Array<Highcharts.CircleObject>} circles
93
+ * The circles to calculate the points from.
94
+ *
95
+ * @return {Array<Highcharts.GeometryObject>}
96
+ * Returns a list of intersection points.
97
+ */
98
+ function getCirclesIntersectionPoints(circles: Array<CircleObject>): Array<GeometryObject>;
99
+ /**
100
+ * Tests whether the first circle is completely overlapping the second
101
+ * circle.
102
+ *
103
+ * @private
104
+ *
105
+ * @param {Highcharts.CircleObject} circle1
106
+ * The first circle.
107
+ *
108
+ * @param {Highcharts.CircleObject} circle2
109
+ * The second circle.
110
+ *
111
+ * @return {boolean}
112
+ * Returns true if circle1 is completely overlapping circle2, false if not.
113
+ */
114
+ function isCircle1CompletelyOverlappingCircle2(circle1: CircleObject, circle2: CircleObject): boolean;
115
+ /**
116
+ * Tests whether a point lies within a given circle.
117
+ * @private
118
+ * @param {Highcharts.PositionObject} point
119
+ * The point to test for.
120
+ *
121
+ * @param {Highcharts.CircleObject} circle
122
+ * The circle to test if the point is within.
123
+ *
124
+ * @return {boolean}
125
+ * Returns true if the point is inside, false if outside.
126
+ */
127
+ function isPointInsideCircle(point: PositionObject, circle: CircleObject): boolean;
128
+ /**
129
+ * Tests whether a point lies within a set of circles.
130
+ *
131
+ * @private
132
+ *
133
+ * @param {Highcharts.PositionObject} point
134
+ * The point to test.
135
+ *
136
+ * @param {Array<Highcharts.CircleObject>} circles
137
+ * The list of circles to test against.
138
+ *
139
+ * @return {boolean}
140
+ * Returns true if the point is inside all the circles, false if not.
141
+ */
142
+ function isPointInsideAllCircles(point: PositionObject, circles: Array<CircleObject>): boolean;
143
+ /**
144
+ * Tests whether a point lies outside a set of circles.
145
+ *
146
+ * TODO: add unit tests.
147
+ *
148
+ * @private
149
+ *
150
+ * @param {Highcharts.PositionObject} point
151
+ * The point to test.
152
+ *
153
+ * @param {Array<Highcharts.CircleObject>} circles
154
+ * The list of circles to test against.
155
+ *
156
+ * @return {boolean}
157
+ * Returns true if the point is outside all the circles, false if not.
158
+ */
159
+ function isPointOutsideAllCircles(point: PositionObject, circles: Array<CircleObject>): boolean;
160
+ /**
161
+ * Calculates the points for the polygon of the intersection area between
162
+ * a set of circles.
163
+ *
164
+ * @private
165
+ *
166
+ * @param {Array<Highcharts.CircleObject>} circles
167
+ * List of circles to calculate polygon of.
168
+ *
169
+ * @return {Array<Highcharts.GeometryObject>}
170
+ * Return list of points in the intersection polygon.
171
+ */
172
+ function getCirclesIntersectionPolygon(circles: Array<CircleObject>): Array<GeometryObject>;
173
+ /**
174
+ * Calculate the path for the area of overlap between a set of circles.
175
+ *
176
+ * @todo handle cases with only 1 or 0 arcs.
177
+ *
178
+ * @private
179
+ *
180
+ * @param {Array<Highcharts.CircleObject>} circles
181
+ * List of circles to calculate area of.
182
+ *
183
+ * @return {Highcharts.GeometryIntersectionObject|undefined}
184
+ * Returns the path for the area of overlap. Returns an empty string if
185
+ * there are no intersection between all the circles.
186
+ */
187
+ function getAreaOfIntersectionBetweenCircles(circles: Array<CircleObject>): (IntersectionObject | undefined);
188
+ }
189
+ export default CircleUtilities;
@@ -0,0 +1,388 @@
1
+ /* *
2
+ *
3
+ * (c) 2010-2025 Highsoft AS
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 Geometry from './GeometryUtilities.js';
12
+ import Utilities from '../Utilities';
13
+ const { getAngleBetweenPoints, getCenterOfPoints, getDistanceBetweenPoints } = Geometry;
14
+ const { correctFloat } = Utilities;
15
+ /* *
16
+ *
17
+ * Namespace
18
+ *
19
+ * */
20
+ var CircleUtilities;
21
+ (function (CircleUtilities) {
22
+ /* *
23
+ *
24
+ * Functions
25
+ *
26
+ * */
27
+ /**
28
+ * @private
29
+ *
30
+ * @param {number} x
31
+ * Number to round
32
+ *
33
+ * @param {number} decimals
34
+ * Number of decimals to round to
35
+ *
36
+ * @return {number}
37
+ * Rounded number
38
+ */
39
+ function round(x, decimals) {
40
+ const a = Math.pow(10, decimals);
41
+ return Math.round(x * a) / a;
42
+ }
43
+ CircleUtilities.round = round;
44
+ /**
45
+ * Calculates the area of a circle based on its radius.
46
+ *
47
+ * @private
48
+ *
49
+ * @param {number} r
50
+ * The radius of the circle.
51
+ *
52
+ * @return {number}
53
+ * Returns the area of the circle.
54
+ */
55
+ function getAreaOfCircle(r) {
56
+ if (r <= 0) {
57
+ throw new Error('radius of circle must be a positive number.');
58
+ }
59
+ return correctFloat(Math.PI * r * r);
60
+ }
61
+ CircleUtilities.getAreaOfCircle = getAreaOfCircle;
62
+ /**
63
+ * Calculates the area of a circular segment based on the radius of the
64
+ * circle and the height of the segment.
65
+ *
66
+ * @see http://mathworld.wolfram.com/CircularSegment.html
67
+ *
68
+ * @private
69
+ *
70
+ * @param {number} r
71
+ * The radius of the circle.
72
+ *
73
+ * @param {number} h
74
+ * The height of the circular segment.
75
+ *
76
+ * @return {number}
77
+ * Returns the area of the circular segment.
78
+ */
79
+ function getCircularSegmentArea(r, h) {
80
+ return (r * r * Math.acos(1 - h / r) -
81
+ (r - h) * Math.sqrt(h * (2 * r - h)));
82
+ }
83
+ CircleUtilities.getCircularSegmentArea = getCircularSegmentArea;
84
+ /**
85
+ * Calculates the area of overlap between two circles based on their
86
+ * radiuses and the distance between them.
87
+ *
88
+ * @see http://mathworld.wolfram.com/Circle-CircleIntersection.html
89
+ *
90
+ * @private
91
+ *
92
+ * @param {number} r1
93
+ * Radius of the first circle.
94
+ *
95
+ * @param {number} r2
96
+ * Radius of the second circle.
97
+ *
98
+ * @param {number} d
99
+ * The distance between the two circles.
100
+ *
101
+ * @return {number}
102
+ * Returns the area of overlap between the two circles.
103
+ */
104
+ function getOverlapBetweenCircles(r1, r2, d) {
105
+ let overlap = 0;
106
+ // If the distance is larger than the sum of the radiuses then the
107
+ // circles does not overlap.
108
+ if (d < r1 + r2) {
109
+ if (d <= Math.abs(r2 - r1)) {
110
+ // If the circles are completely overlapping, then the overlap
111
+ // equals the area of the smallest circle.
112
+ overlap = getAreaOfCircle(r1 < r2 ? r1 : r2);
113
+ }
114
+ else {
115
+ // Height of first triangle segment.
116
+ const d1 = (r1 * r1 - r2 * r2 + d * d) / (2 * d),
117
+ // Height of second triangle segment.
118
+ d2 = d - d1;
119
+ overlap = (getCircularSegmentArea(r1, r1 - d1) +
120
+ getCircularSegmentArea(r2, r2 - d2));
121
+ }
122
+ // Round the result to two decimals.
123
+ overlap = round(overlap, 14);
124
+ }
125
+ return overlap;
126
+ }
127
+ CircleUtilities.getOverlapBetweenCircles = getOverlapBetweenCircles;
128
+ /**
129
+ * Calculates the intersection points of two circles.
130
+ *
131
+ * NOTE: does not handle floating errors well.
132
+ *
133
+ * @private
134
+ *
135
+ * @param {Highcharts.CircleObject} c1
136
+ * The first circle.
137
+ *
138
+ * @param {Highcharts.CircleObject} c2
139
+ * The second circle.
140
+ *
141
+ * @return {Array<Highcharts.PositionObject>}
142
+ * Returns the resulting intersection points.
143
+ */
144
+ function getCircleCircleIntersection(c1, c2) {
145
+ const d = getDistanceBetweenPoints(c1, c2), r1 = c1.r, r2 = c2.r;
146
+ let points = [];
147
+ if (d < r1 + r2 && d > Math.abs(r1 - r2)) {
148
+ // If the circles are overlapping, but not completely overlapping,
149
+ // then it exists intersecting points.
150
+ const r1Square = r1 * r1, r2Square = r2 * r2,
151
+ // `d^2 - r^2 + R^2 / 2d`
152
+ x = (r1Square - r2Square + d * d) / (2 * d),
153
+ // `y^2 = R^2 - x^2`
154
+ y = Math.sqrt(r1Square - x * x), x1 = c1.x, x2 = c2.x, y1 = c1.y, y2 = c2.y, x0 = x1 + x * (x2 - x1) / d, y0 = y1 + x * (y2 - y1) / d, rx = -(y2 - y1) * (y / d), ry = -(x2 - x1) * (y / d);
155
+ points = [
156
+ { x: round(x0 + rx, 14), y: round(y0 - ry, 14) },
157
+ { x: round(x0 - rx, 14), y: round(y0 + ry, 14) }
158
+ ];
159
+ }
160
+ return points;
161
+ }
162
+ CircleUtilities.getCircleCircleIntersection = getCircleCircleIntersection;
163
+ /**
164
+ * Calculates all the intersection points for between a list of circles.
165
+ *
166
+ * @private
167
+ *
168
+ * @param {Array<Highcharts.CircleObject>} circles
169
+ * The circles to calculate the points from.
170
+ *
171
+ * @return {Array<Highcharts.GeometryObject>}
172
+ * Returns a list of intersection points.
173
+ */
174
+ function getCirclesIntersectionPoints(circles) {
175
+ return circles.reduce((points, c1, i, arr) => {
176
+ const additional = arr
177
+ .slice(i + 1)
178
+ .reduce((points, c2, j) => {
179
+ const indexes = [i, j + i + 1];
180
+ return points.concat(getCircleCircleIntersection(c1, c2).map((p) => {
181
+ p.indexes = indexes;
182
+ return p;
183
+ }));
184
+ }, []);
185
+ return points.concat(additional);
186
+ }, []);
187
+ }
188
+ CircleUtilities.getCirclesIntersectionPoints = getCirclesIntersectionPoints;
189
+ /**
190
+ * Tests whether the first circle is completely overlapping the second
191
+ * circle.
192
+ *
193
+ * @private
194
+ *
195
+ * @param {Highcharts.CircleObject} circle1
196
+ * The first circle.
197
+ *
198
+ * @param {Highcharts.CircleObject} circle2
199
+ * The second circle.
200
+ *
201
+ * @return {boolean}
202
+ * Returns true if circle1 is completely overlapping circle2, false if not.
203
+ */
204
+ function isCircle1CompletelyOverlappingCircle2(circle1, circle2) {
205
+ return getDistanceBetweenPoints(circle1, circle2) + circle2.r < circle1.r + 1e-10;
206
+ }
207
+ CircleUtilities.isCircle1CompletelyOverlappingCircle2 = isCircle1CompletelyOverlappingCircle2;
208
+ /**
209
+ * Tests whether a point lies within a given circle.
210
+ * @private
211
+ * @param {Highcharts.PositionObject} point
212
+ * The point to test for.
213
+ *
214
+ * @param {Highcharts.CircleObject} circle
215
+ * The circle to test if the point is within.
216
+ *
217
+ * @return {boolean}
218
+ * Returns true if the point is inside, false if outside.
219
+ */
220
+ function isPointInsideCircle(point, circle) {
221
+ return getDistanceBetweenPoints(point, circle) <= circle.r + 1e-10;
222
+ }
223
+ CircleUtilities.isPointInsideCircle = isPointInsideCircle;
224
+ /**
225
+ * Tests whether a point lies within a set of circles.
226
+ *
227
+ * @private
228
+ *
229
+ * @param {Highcharts.PositionObject} point
230
+ * The point to test.
231
+ *
232
+ * @param {Array<Highcharts.CircleObject>} circles
233
+ * The list of circles to test against.
234
+ *
235
+ * @return {boolean}
236
+ * Returns true if the point is inside all the circles, false if not.
237
+ */
238
+ function isPointInsideAllCircles(point, circles) {
239
+ return !circles.some(function (circle) {
240
+ return !isPointInsideCircle(point, circle);
241
+ });
242
+ }
243
+ CircleUtilities.isPointInsideAllCircles = isPointInsideAllCircles;
244
+ /**
245
+ * Tests whether a point lies outside a set of circles.
246
+ *
247
+ * TODO: add unit tests.
248
+ *
249
+ * @private
250
+ *
251
+ * @param {Highcharts.PositionObject} point
252
+ * The point to test.
253
+ *
254
+ * @param {Array<Highcharts.CircleObject>} circles
255
+ * The list of circles to test against.
256
+ *
257
+ * @return {boolean}
258
+ * Returns true if the point is outside all the circles, false if not.
259
+ */
260
+ function isPointOutsideAllCircles(point, circles) {
261
+ return !circles.some(function (circle) {
262
+ return isPointInsideCircle(point, circle);
263
+ });
264
+ }
265
+ CircleUtilities.isPointOutsideAllCircles = isPointOutsideAllCircles;
266
+ /**
267
+ * Calculates the points for the polygon of the intersection area between
268
+ * a set of circles.
269
+ *
270
+ * @private
271
+ *
272
+ * @param {Array<Highcharts.CircleObject>} circles
273
+ * List of circles to calculate polygon of.
274
+ *
275
+ * @return {Array<Highcharts.GeometryObject>}
276
+ * Return list of points in the intersection polygon.
277
+ */
278
+ function getCirclesIntersectionPolygon(circles) {
279
+ return getCirclesIntersectionPoints(circles)
280
+ .filter(function (p) {
281
+ return isPointInsideAllCircles(p, circles);
282
+ });
283
+ }
284
+ CircleUtilities.getCirclesIntersectionPolygon = getCirclesIntersectionPolygon;
285
+ /**
286
+ * Calculate the path for the area of overlap between a set of circles.
287
+ *
288
+ * @todo handle cases with only 1 or 0 arcs.
289
+ *
290
+ * @private
291
+ *
292
+ * @param {Array<Highcharts.CircleObject>} circles
293
+ * List of circles to calculate area of.
294
+ *
295
+ * @return {Highcharts.GeometryIntersectionObject|undefined}
296
+ * Returns the path for the area of overlap. Returns an empty string if
297
+ * there are no intersection between all the circles.
298
+ */
299
+ function getAreaOfIntersectionBetweenCircles(circles) {
300
+ let intersectionPoints = getCirclesIntersectionPolygon(circles), result;
301
+ if (intersectionPoints.length > 1) {
302
+ // Calculate the center of the intersection points.
303
+ const center = getCenterOfPoints(intersectionPoints);
304
+ intersectionPoints = intersectionPoints
305
+ // Calculate the angle between the center and the points.
306
+ .map(function (p) {
307
+ p.angle = getAngleBetweenPoints(center, p);
308
+ return p;
309
+ })
310
+ // Sort the points by the angle to the center.
311
+ .sort(function (a, b) {
312
+ return b.angle - a.angle;
313
+ });
314
+ const startPoint = intersectionPoints[intersectionPoints.length - 1];
315
+ const arcs = intersectionPoints
316
+ .reduce(function (data, p1) {
317
+ const { startPoint } = data, midPoint = getCenterOfPoints([startPoint, p1]);
318
+ // Calculate the arc from the intersection points and their
319
+ // circles.
320
+ const arc = p1.indexes
321
+ // Filter out circles that are not included in both
322
+ // intersection points.
323
+ .filter(function (index) {
324
+ return startPoint.indexes.indexOf(index) > -1;
325
+ })
326
+ // Iterate the circles of the intersection points and
327
+ // calculate arcs.
328
+ .reduce(function (arc, index) {
329
+ const circle = circles[index], angle1 = getAngleBetweenPoints(circle, p1), angle2 = getAngleBetweenPoints(circle, startPoint), angleDiff = angle2 - angle1 +
330
+ (angle2 < angle1 ? 2 * Math.PI : 0), angle = angle2 - angleDiff / 2;
331
+ let width = getDistanceBetweenPoints(midPoint, {
332
+ x: circle.x + circle.r * Math.sin(angle),
333
+ y: circle.y + circle.r * Math.cos(angle)
334
+ });
335
+ const { r } = circle;
336
+ // Width can sometimes become to large due to
337
+ // floating point errors
338
+ if (width > r * 2) {
339
+ width = r * 2;
340
+ }
341
+ // Get the arc with the smallest width.
342
+ if (!arc || arc.width > width) {
343
+ arc = {
344
+ r,
345
+ largeArc: width > r ? 1 : 0,
346
+ width,
347
+ x: p1.x,
348
+ y: p1.y
349
+ };
350
+ }
351
+ // Return the chosen arc.
352
+ return arc;
353
+ }, null);
354
+ // If we find an arc then add it to the list and update p2.
355
+ if (arc) {
356
+ const { r } = arc;
357
+ data.arcs.push(['A', r, r, 0, arc.largeArc, 1, arc.x, arc.y]);
358
+ data.startPoint = p1;
359
+ }
360
+ return data;
361
+ }, {
362
+ startPoint: startPoint,
363
+ arcs: []
364
+ }).arcs;
365
+ if (arcs.length === 0) {
366
+ // Empty
367
+ }
368
+ else if (arcs.length === 1) {
369
+ // Empty
370
+ }
371
+ else {
372
+ arcs.unshift(['M', startPoint.x, startPoint.y]);
373
+ result = {
374
+ center,
375
+ d: arcs
376
+ };
377
+ }
378
+ }
379
+ return result;
380
+ }
381
+ CircleUtilities.getAreaOfIntersectionBetweenCircles = getAreaOfIntersectionBetweenCircles;
382
+ })(CircleUtilities || (CircleUtilities = {}));
383
+ /* *
384
+ *
385
+ * Default Export
386
+ *
387
+ * */
388
+ export default CircleUtilities;