@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,471 @@
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 AST from './AST.js';
12
+ import H from '../../Globals.js';
13
+ const { composed, isFirefox } = H;
14
+ import SVGElement from '../SVG/SVGElement.js';
15
+ import U from '../../Utilities.js';
16
+ const { attr, css, createElement, defined, extend, getAlignFactor, isNumber, pInt, pushUnique } = U;
17
+ /**
18
+ * The opacity and visibility properties are set as attributes on the main
19
+ * element and SVG groups, and as identical CSS properties on the HTML element
20
+ * and the ancestry divs. (#3542)
21
+ *
22
+ * @private
23
+ */
24
+ function commonSetter(value, key, elem) {
25
+ const style = this.div?.style;
26
+ SVGElement.prototype[`${key}Setter`].call(this, value, key, elem);
27
+ if (style) {
28
+ elem.style[key] = style[key] = value;
29
+ }
30
+ }
31
+ /**
32
+ * Decorate each SVG group in the ancestry line. Each SVG `g` element that
33
+ * contains children with useHTML, will receive a `div` element counterpart to
34
+ * contain the HTML span. These div elements are translated and styled like
35
+ * original `g` counterparts.
36
+ *
37
+ * @private
38
+ */
39
+ const decorateSVGGroup = (g, container) => {
40
+ if (!g.div) {
41
+ const className = attr(g.element, 'class'), cssProto = g.css;
42
+ // Create the parallel HTML group
43
+ const div = createElement('div', className ? { className } : void 0, {
44
+ // Add HTML specific styles
45
+ position: 'absolute',
46
+ left: `${g.translateX || 0}px`,
47
+ top: `${g.translateY || 0}px`,
48
+ // Add pre-existing styles
49
+ ...g.styles,
50
+ // Add g attributes that correspond to CSS
51
+ display: g.display,
52
+ opacity: g.opacity, // #5075
53
+ visibility: g.visibility
54
+ },
55
+ // The top group is appended to container
56
+ g.parentGroup?.div || container);
57
+ g.classSetter = (value, key, element) => {
58
+ element.setAttribute('class', value);
59
+ div.className = value;
60
+ };
61
+ /**
62
+ * Common translate setter for X and Y on the HTML group.
63
+ *
64
+ * Reverted the fix for #6957 due to positioning problems and offline
65
+ * export (#7254, #7280, #7529)
66
+ * @private
67
+ */
68
+ g.translateXSetter = g.translateYSetter = (value, key) => {
69
+ g[key] = value;
70
+ div.style[key === 'translateX' ? 'left' : 'top'] = `${value}px`;
71
+ g.doTransform = true;
72
+ };
73
+ g.scaleXSetter = g.scaleYSetter = (value, key) => {
74
+ g[key] = value;
75
+ g.doTransform = true;
76
+ };
77
+ g.opacitySetter = g.visibilitySetter = commonSetter;
78
+ // Extend the parent group's css function by updating the parallel div
79
+ // counterpart with the same style.
80
+ g.css = (styles) => {
81
+ // Call the base css method. The `parentGroup` can be either an
82
+ // SVGElement or an SVGLabel, in which the css method is extended
83
+ // (#19200).
84
+ cssProto.call(g, styles);
85
+ // #6794
86
+ if (styles.cursor) {
87
+ div.style.cursor = styles.cursor;
88
+ }
89
+ // #18821
90
+ if (styles.pointerEvents) {
91
+ div.style.pointerEvents = styles.pointerEvents;
92
+ }
93
+ return g;
94
+ };
95
+ // Event handling
96
+ g.on = function () {
97
+ SVGElement.prototype.on.apply({
98
+ element: div,
99
+ onEvents: g.onEvents
100
+ }, arguments);
101
+ return g;
102
+ };
103
+ g.div = div;
104
+ }
105
+ return g.div;
106
+ };
107
+ /* *
108
+ *
109
+ * Class
110
+ *
111
+ * */
112
+ class HTMLElement extends SVGElement {
113
+ /**
114
+ * Compose
115
+ * @private
116
+ */
117
+ static compose(SVGRendererClass) {
118
+ if (pushUnique(composed, this.compose)) {
119
+ /**
120
+ * Create a HTML text node. This is used by the SVG renderer `text`
121
+ * and `label` functions through the `useHTML` parameter.
122
+ *
123
+ * @private
124
+ */
125
+ SVGRendererClass.prototype.html = function (str, x, y) {
126
+ return new HTMLElement(this, 'span')
127
+ // Set the default attributes
128
+ .attr({
129
+ text: str,
130
+ x: Math.round(x),
131
+ y: Math.round(y)
132
+ });
133
+ };
134
+ }
135
+ }
136
+ /* *
137
+ *
138
+ * Functions
139
+ *
140
+ * */
141
+ constructor(renderer, nodeName) {
142
+ super(renderer, nodeName);
143
+ if (HTMLElement.useForeignObject) {
144
+ this.foreignObject = renderer.createElement('foreignObject')
145
+ .attr({
146
+ zIndex: 2
147
+ });
148
+ }
149
+ else {
150
+ this.css({
151
+ position: 'absolute',
152
+ ...(renderer.styledMode ? {} : {
153
+ fontFamily: renderer.style.fontFamily,
154
+ fontSize: renderer.style.fontSize
155
+ })
156
+ });
157
+ }
158
+ this.element.style.whiteSpace = 'nowrap';
159
+ }
160
+ /**
161
+ * Get the correction in X and Y positioning as the element is rotated.
162
+ * @private
163
+ */
164
+ getSpanCorrection(width, baseline, alignCorrection) {
165
+ this.xCorr = -width * alignCorrection;
166
+ this.yCorr = -baseline;
167
+ }
168
+ /**
169
+ * Apply CSS to HTML elements. This is used in text within SVG rendering.
170
+ * @private
171
+ */
172
+ css(styles) {
173
+ const { element } = this,
174
+ // When setting or unsetting the width style, we need to update
175
+ // transform (#8809)
176
+ isSettingWidth = (element.tagName === 'SPAN' &&
177
+ styles &&
178
+ 'width' in styles), textWidth = isSettingWidth && styles.width;
179
+ let doTransform;
180
+ if (isSettingWidth) {
181
+ delete styles.width;
182
+ this.textWidth = pInt(textWidth) || void 0;
183
+ doTransform = true;
184
+ }
185
+ // Some properties require other properties to be set
186
+ if (styles?.textOverflow === 'ellipsis') {
187
+ styles.overflow = 'hidden';
188
+ styles.whiteSpace = 'nowrap';
189
+ }
190
+ if (styles?.lineClamp) {
191
+ styles.display = '-webkit-box';
192
+ styles.WebkitLineClamp = styles.lineClamp;
193
+ styles.WebkitBoxOrient = 'vertical';
194
+ styles.overflow = 'hidden';
195
+ }
196
+ // SVG natively supports setting font size as numbers. With HTML, the
197
+ // font size should behave in the same way (#21624).
198
+ if (isNumber(Number(styles?.fontSize))) {
199
+ styles.fontSize += 'px';
200
+ }
201
+ extend(this.styles, styles);
202
+ css(element, styles);
203
+ // Now that all styles are applied, to the transform
204
+ if (doTransform) {
205
+ this.updateTransform();
206
+ }
207
+ return this;
208
+ }
209
+ /**
210
+ * The useHTML method for calculating the bounding box based on offsets.
211
+ * Called internally from the `SVGElement.getBBox` function and subsequently
212
+ * rotated.
213
+ *
214
+ * @private
215
+ */
216
+ htmlGetBBox() {
217
+ const { element } = this;
218
+ return {
219
+ x: element.offsetLeft,
220
+ y: element.offsetTop,
221
+ width: element.offsetWidth,
222
+ height: element.offsetHeight
223
+ };
224
+ }
225
+ /**
226
+ * Batch update styles and attributes related to transform
227
+ *
228
+ * @private
229
+ */
230
+ updateTransform() {
231
+ // Aligning non added elements is expensive
232
+ if (!this.added) {
233
+ this.alignOnAdd = true;
234
+ return;
235
+ }
236
+ const { element, foreignObject, oldTextWidth, renderer, rotation, rotationOriginX, rotationOriginY, scaleX, scaleY, styles: { display = 'inline-block', whiteSpace }, textAlign = 'left', textWidth, translateX = 0, translateY = 0, x = 0, y = 0 } = this;
237
+ // Get the pixel length of the text
238
+ const getTextPxLength = () => {
239
+ if (this.textPxLength) {
240
+ return this.textPxLength;
241
+ }
242
+ // Reset multiline/ellipsis in order to read width (#4928,
243
+ // #5417)
244
+ css(element, {
245
+ width: '',
246
+ whiteSpace: whiteSpace || 'nowrap'
247
+ });
248
+ return element.offsetWidth;
249
+ };
250
+ // Apply translate
251
+ if (!foreignObject) {
252
+ css(element, {
253
+ marginLeft: `${translateX}px`,
254
+ marginTop: `${translateY}px`
255
+ });
256
+ }
257
+ if (element.tagName === 'SPAN') {
258
+ const currentTextTransform = [
259
+ rotation,
260
+ textAlign,
261
+ element.innerHTML,
262
+ textWidth,
263
+ this.textAlign
264
+ ].join(','), parentPadding = (this.parentGroup?.padding * -1) || 0;
265
+ let baseline;
266
+ // Update textWidth. Use the memoized textPxLength if possible, to
267
+ // avoid the getTextPxLength function using elem.offsetWidth.
268
+ // Calling offsetWidth affects rendering time as it forces layout
269
+ // (#7656).
270
+ if (textWidth !== oldTextWidth) { // #983, #1254
271
+ const textPxLength = getTextPxLength(), textWidthNum = textWidth || 0, willOverWrap = !renderer.styledMode &&
272
+ element.style.textOverflow === '' &&
273
+ element.style.webkitLineClamp;
274
+ if ((textWidthNum > oldTextWidth ||
275
+ textPxLength > textWidthNum ||
276
+ willOverWrap) && (
277
+ // Only set the width if the text is able to word-wrap,
278
+ // or text-overflow is ellipsis (#9537)
279
+ /[\-\s\u00AD]/.test(element.textContent || element.innerText) ||
280
+ element.style.textOverflow === 'ellipsis')) {
281
+ const usePxWidth = rotation || scaleX ||
282
+ textPxLength > textWidthNum ||
283
+ // Set width to prevent over-wrapping (#22609)
284
+ willOverWrap;
285
+ css(element, {
286
+ width: usePxWidth && isNumber(textWidth) ?
287
+ textWidth + 'px' : 'auto', // #16261
288
+ display,
289
+ whiteSpace: whiteSpace || 'normal' // #3331
290
+ });
291
+ this.oldTextWidth = textWidth;
292
+ }
293
+ }
294
+ if (foreignObject) {
295
+ css(element, {
296
+ // Inline block must be set before we can read the offset
297
+ // width
298
+ display: 'inline-block',
299
+ verticalAlign: 'top'
300
+ });
301
+ // In many cases (Firefox always, others on title layout) we
302
+ // need the foreign object to have a larger width and height
303
+ // than its content, in order to read its content's size
304
+ foreignObject.attr({
305
+ width: renderer.width,
306
+ height: renderer.height
307
+ });
308
+ }
309
+ // Do the calculations and DOM access only if properties changed
310
+ if (currentTextTransform !== this.cTT) {
311
+ baseline = renderer.fontMetrics(element).b;
312
+ // Renderer specific handling of span rotation, but only if we
313
+ // have something to update.
314
+ if (defined(rotation) &&
315
+ !foreignObject &&
316
+ ((rotation !== (this.oldRotation || 0)) ||
317
+ (textAlign !== this.oldAlign))) {
318
+ // CSS transform and transform-origin both supported without
319
+ // prefix since Firefox 16 (2012), IE 10 (2012), Chrome 36
320
+ // (2014), Safari 9 (2015).;
321
+ css(element, {
322
+ transform: `rotate(${rotation}deg)`,
323
+ transformOrigin: `${parentPadding}% ${parentPadding}px`
324
+ });
325
+ }
326
+ this.getSpanCorrection(
327
+ // Avoid elem.offsetWidth if we can, it affects rendering
328
+ // time heavily (#7656)
329
+ ((!defined(rotation) &&
330
+ !this.textWidth &&
331
+ this.textPxLength) || // #7920
332
+ element.offsetWidth), baseline, getAlignFactor(textAlign));
333
+ }
334
+ // Apply position with correction and rotation origin
335
+ const { xCorr = 0, yCorr = 0 } = this, rotOriginX = (rotationOriginX ?? x) - xCorr - x - parentPadding, rotOriginY = (rotationOriginY ?? y) - yCorr - y - parentPadding, styles = {
336
+ left: `${x + xCorr}px`,
337
+ top: `${y + yCorr}px`,
338
+ textAlign,
339
+ transformOrigin: `${rotOriginX}px ${rotOriginY}px`
340
+ };
341
+ if (scaleX || scaleY) {
342
+ styles.transform = `scale(${scaleX ?? 1},${scaleY ?? 1})`;
343
+ }
344
+ // Move the foreign object
345
+ if (foreignObject) {
346
+ super.updateTransform();
347
+ if (isNumber(x) && isNumber(y)) {
348
+ foreignObject.attr({
349
+ x: x + xCorr,
350
+ y: y + yCorr,
351
+ width: element.offsetWidth + 3,
352
+ height: element.offsetHeight,
353
+ 'transform-origin': element
354
+ .getAttribute('transform-origin') || '0 0'
355
+ });
356
+ // Reset, otherwise lineClamp will not work
357
+ css(element, { display, textAlign });
358
+ }
359
+ else if (isFirefox) {
360
+ foreignObject.attr({
361
+ width: 0,
362
+ height: 0
363
+ });
364
+ }
365
+ }
366
+ else {
367
+ css(element, styles);
368
+ }
369
+ // Record current text transform
370
+ this.cTT = currentTextTransform;
371
+ this.oldRotation = rotation;
372
+ this.oldAlign = textAlign;
373
+ }
374
+ }
375
+ /**
376
+ * Add the element to a group wrapper. For HTML elements, a parallel div
377
+ * will be created for each ancenstor SVG `g` element.
378
+ *
379
+ * @private
380
+ */
381
+ add(parentGroup) {
382
+ const { foreignObject, renderer } = this, container = renderer.box.parentNode, parents = [];
383
+ // Foreign object
384
+ if (foreignObject) {
385
+ foreignObject.add(parentGroup);
386
+ super.add(
387
+ // Create a body inside the foreignObject
388
+ renderer.createElement('body')
389
+ .attr({ xmlns: 'http://www.w3.org/1999/xhtml' })
390
+ .css({
391
+ background: 'transparent',
392
+ // 3px is to avoid clipping on the right
393
+ margin: '0 3px 0 0' // For export
394
+ })
395
+ .add(foreignObject));
396
+ // Add span next to the SVG
397
+ }
398
+ else {
399
+ let div;
400
+ this.parentGroup = parentGroup;
401
+ // Create a parallel divs to hold the HTML elements
402
+ if (parentGroup) {
403
+ div = parentGroup.div;
404
+ if (!div) {
405
+ // Read the parent chain into an array and read from top
406
+ // down
407
+ let svgGroup = parentGroup;
408
+ while (svgGroup) {
409
+ parents.push(svgGroup);
410
+ // Move up to the next parent group
411
+ svgGroup = svgGroup.parentGroup;
412
+ }
413
+ // Decorate each of the ancestor group elements with a
414
+ // parallel div that reflects translation and styling
415
+ for (const parentGroup of parents.reverse()) {
416
+ div = decorateSVGGroup(parentGroup, container);
417
+ }
418
+ }
419
+ }
420
+ (div || container).appendChild(this.element);
421
+ }
422
+ this.added = true;
423
+ if (this.alignOnAdd) {
424
+ this.updateTransform();
425
+ }
426
+ return this;
427
+ }
428
+ /**
429
+ * Text setter
430
+ * @private
431
+ */
432
+ textSetter(value) {
433
+ if (value !== this.textStr) {
434
+ delete this.bBox;
435
+ delete this.oldTextWidth;
436
+ AST.setElementHTML(this.element, value ?? '');
437
+ this.textStr = value;
438
+ this.doTransform = true;
439
+ }
440
+ }
441
+ /**
442
+ * Align setter
443
+ *
444
+ * @private
445
+ */
446
+ alignSetter(value) {
447
+ this.alignValue = this.textAlign = value;
448
+ this.doTransform = true;
449
+ }
450
+ /**
451
+ * Various setters which rely on update transform
452
+ * @private
453
+ */
454
+ xSetter(value, key) {
455
+ this[key] = value;
456
+ this.doTransform = true;
457
+ }
458
+ }
459
+ // Some shared setters
460
+ const proto = HTMLElement.prototype;
461
+ proto.visibilitySetter = proto.opacitySetter = commonSetter;
462
+ proto.ySetter =
463
+ proto.rotationSetter =
464
+ proto.rotationOriginXSetter =
465
+ proto.rotationOriginYSetter = proto.xSetter;
466
+ /* *
467
+ *
468
+ * Default Export
469
+ *
470
+ * */
471
+ export default HTMLElement;
@@ -0,0 +1,29 @@
1
+ import type SVGRenderer from './SVG/SVGRenderer';
2
+ declare namespace RendererRegistry {
3
+ const rendererTypes: Record<string, typeof SVGRenderer>;
4
+ /**
5
+ * Gets a registered renderer class. If no renderer type is provided or the
6
+ * requested renderer was not founded, the default renderer is returned.
7
+ *
8
+ * @param {string} [rendererType]
9
+ * Renderer type or the default renderer.
10
+ *
11
+ * @return {Highcharts.Class<Highcharts.SVGRenderer>}
12
+ * Returns the requested renderer class or the default renderer class.
13
+ */
14
+ function getRendererType(rendererType?: string): typeof SVGRenderer;
15
+ /**
16
+ * Register a renderer class.
17
+ *
18
+ * @param {string} rendererType
19
+ * Renderer type to register.
20
+ *
21
+ * @param {Highcharts.Class<Highcharts.SVGRenderer>} rendererClass
22
+ * Returns the requested renderer class or the default renderer class.
23
+ *
24
+ * @param {boolean} setAsDefault
25
+ * Sets the renderer class as the default renderer.
26
+ */
27
+ function registerRendererType(rendererType: string, rendererClass: typeof SVGRenderer, setAsDefault?: boolean): void;
28
+ }
29
+ export default RendererRegistry;
@@ -0,0 +1,76 @@
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 H from '../Globals.js';
12
+ /* *
13
+ *
14
+ * Namespace
15
+ *
16
+ * */
17
+ var RendererRegistry;
18
+ (function (RendererRegistry) {
19
+ /* *
20
+ *
21
+ * Constants
22
+ *
23
+ * */
24
+ RendererRegistry.rendererTypes = {};
25
+ /* *
26
+ *
27
+ * Variables
28
+ *
29
+ * */
30
+ let defaultRenderer;
31
+ /* *
32
+ *
33
+ * Functions
34
+ *
35
+ * */
36
+ /**
37
+ * Gets a registered renderer class. If no renderer type is provided or the
38
+ * requested renderer was not founded, the default renderer is returned.
39
+ *
40
+ * @param {string} [rendererType]
41
+ * Renderer type or the default renderer.
42
+ *
43
+ * @return {Highcharts.Class<Highcharts.SVGRenderer>}
44
+ * Returns the requested renderer class or the default renderer class.
45
+ */
46
+ function getRendererType(rendererType = defaultRenderer) {
47
+ return (RendererRegistry.rendererTypes[rendererType] || RendererRegistry.rendererTypes[defaultRenderer]);
48
+ }
49
+ RendererRegistry.getRendererType = getRendererType;
50
+ /**
51
+ * Register a renderer class.
52
+ *
53
+ * @param {string} rendererType
54
+ * Renderer type to register.
55
+ *
56
+ * @param {Highcharts.Class<Highcharts.SVGRenderer>} rendererClass
57
+ * Returns the requested renderer class or the default renderer class.
58
+ *
59
+ * @param {boolean} setAsDefault
60
+ * Sets the renderer class as the default renderer.
61
+ */
62
+ function registerRendererType(rendererType, rendererClass, setAsDefault) {
63
+ RendererRegistry.rendererTypes[rendererType] = rendererClass;
64
+ if (!defaultRenderer || setAsDefault) {
65
+ defaultRenderer = rendererType;
66
+ H.Renderer = rendererClass; // Compatibility
67
+ }
68
+ }
69
+ RendererRegistry.registerRendererType = registerRendererType;
70
+ })(RendererRegistry || (RendererRegistry = {}));
71
+ /* *
72
+ *
73
+ * Default Export
74
+ *
75
+ * */
76
+ export default RendererRegistry;
@@ -0,0 +1,26 @@
1
+ declare namespace RendererUtilities {
2
+ interface BoxObject {
3
+ align?: number;
4
+ pos?: number;
5
+ rank?: (number | null);
6
+ size: number;
7
+ target: number;
8
+ targets?: Array<number>;
9
+ }
10
+ interface DistributedBoxArray<T extends BoxObject> extends Array<(T & DistributedBoxObject)> {
11
+ reducedLen?: number;
12
+ }
13
+ interface DistributedBoxObject extends BoxObject {
14
+ pos?: number;
15
+ }
16
+ /**
17
+ * General distribution algorithm for distributing labels of differing size
18
+ * along a confined length in two dimensions. The algorithm takes an array
19
+ * of objects containing a size, a target and a rank. It will place the
20
+ * labels as close as possible to their targets, skipping the lowest ranked
21
+ * labels if necessary.
22
+ * @private
23
+ */
24
+ function distribute<T extends BoxObject>(boxes: DistributedBoxArray<T>, len: number, maxDistance?: number): DistributedBoxArray<T>;
25
+ }
26
+ export default RendererUtilities;