@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
package/grid-pro.js ADDED
@@ -0,0 +1,12 @@
1
+ !/**
2
+ * Highcharts Grid Pro v2.0.0 (2025-10-28)
3
+ * @module grid/grid-pro
4
+ *
5
+ * (c) 2009-2025 Highsoft AS
6
+ *
7
+ * License: www.highcharts.com/license
8
+ */function(e,t){"object"==typeof exports&&"object"==typeof module?(e._Grid=t(),module.exports=e._Grid):"function"==typeof define&&define.amd?define("grid/grid-pro",[],t):"object"==typeof exports?(e._Grid=t(),exports["grid/grid-pro"]=e._Grid):(e.Grid&&e.Grid.error(16,!0),e.Grid=t())}("undefined"==typeof window?this:window,()=>(()=>{"use strict";let e;var t,i,s,n,r,o,l,a,h,d,u,c,p,m,g,f,y={};y.d=(e,t)=>{for(var i in t)y.o(t,i)&&!y.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},y.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var w={};y.d(w,{default:()=>rt}),function(e){e.SVG_NS="http://www.w3.org/2000/svg",e.product="Highcharts",e.version="2.0.0",e.win="undefined"!=typeof window?window:{},e.doc=e.win.document,e.svg=!!e.doc?.createElementNS?.(e.SVG_NS,"svg")?.createSVGRect,e.pageLang=e.doc?.documentElement?.closest("[lang]")?.lang,e.userAgent=e.win.navigator?.userAgent||"",e.isChrome=e.win.chrome,e.isFirefox=-1!==e.userAgent.indexOf("Firefox"),e.isMS=/(edge|msie|trident)/i.test(e.userAgent)&&!e.win.opera,e.isSafari=!e.isChrome&&-1!==e.userAgent.indexOf("Safari"),e.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(e.userAgent),e.isWebKit=-1!==e.userAgent.indexOf("AppleWebKit"),e.deg2rad=2*Math.PI/360,e.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],e.noop=function(){},e.supportsPassiveEvents=function(){let t=!1;if(!e.isMS){let i=Object.defineProperty({},"passive",{get:function(){t=!0}});e.win.addEventListener&&e.win.removeEventListener&&(e.win.addEventListener("testPassive",e.noop,i),e.win.removeEventListener("testPassive",e.noop,i))}return t}(),e.charts=[],e.composed=[],e.dateFormats={},e.seriesTypes={},e.symbolSizes={},e.chartCount=0}(t||(t={}));let b=t,{charts:v,doc:C,win:E}=b;function T(e,t,i,s){let n=t?"Highcharts error":"Highcharts warning";32===e&&(e=`${n}: Deprecated member`);let r=N(e),o=r?`${n} #${e}: www.highcharts.com/errors/${e}/`:e.toString();if(void 0!==s){let e="";r&&(o+="?"),W(s,function(t,i){e+=`
9
+ - ${i}: ${t}`,r&&(o+=encodeURI(i)+"="+encodeURI(t))}),o+=e}U(b,"displayError",{chart:i,code:e,message:o,params:s},function(){if(t)throw Error(o);E.console&&-1===T.messages.indexOf(o)&&console.warn(o)}),T.messages.push(o)}function x(e,t){return parseInt(e,t||10)}function S(e){return"string"==typeof e}function M(e){let t=Object.prototype.toString.call(e);return"[object Array]"===t||"[object Array Iterator]"===t}function L(e,t){return!!e&&"object"==typeof e&&(!t||!M(e))}function O(e){return L(e)&&"number"==typeof e.nodeType}function R(e){let t=e?.constructor;return!!(L(e,!0)&&!O(e)&&t?.name&&"Object"!==t.name)}function N(e){return"number"==typeof e&&!isNaN(e)&&e<1/0&&e>-1/0}function A(e){return null!=e}function I(e,t,i){let s,n=S(t)&&!A(i),r=(t,i)=>{A(t)?e.setAttribute(i,t):n?(s=e.getAttribute(i))||"class"!==i||(s=e.getAttribute(i+"Name")):e.removeAttribute(i)};return S(t)?r(i,t):W(t,r),s}function D(e){return M(e)?e:[e]}function k(e,t){let i;for(i in e||(e={}),t)e[i]=t[i];return e}function P(){let e=arguments,t=e.length;for(let i=0;i<t;i++){let t=e[i];if(null!=t)return t}}function H(e,t){k(e.style,t)}function z(e){return Math.pow(10,Math.floor(Math.log(e)/Math.LN10))}function B(e,t){return e>1e14?e:parseFloat(e.toPrecision(t||14))}(T||(T={})).messages=[],Math.easeInOutSine=function(e){return -.5*(Math.cos(Math.PI*e)-1)};let F=Array.prototype.find?function(e,t){return e.find(t)}:function(e,t){let i,s=e.length;for(i=0;i<s;i++)if(t(e[i],i))return e[i]};function W(e,t,i){for(let s in e)Object.hasOwnProperty.call(e,s)&&t.call(i||e[s],e[s],s,e)}function j(e,t,i){function s(t,i){let s=e.removeEventListener;s&&s.call(e,t,i,!1)}function n(i){let n,r;e.nodeName&&(t?(n={})[t]=!0:n=i,W(n,function(e,t){if(i[t])for(r=i[t].length;r--;)s(t,i[t][r].fn)}))}let r="function"==typeof e&&e.prototype||e;if(Object.hasOwnProperty.call(r,"hcEvents")){let e=r.hcEvents;if(t){let r=e[t]||[];i?(e[t]=r.filter(function(e){return i!==e.fn}),s(t,i)):(n(e),e[t]=[])}else n(e),delete r.hcEvents}}function U(e,t,i,s){if(i=i||{},C?.createEvent&&(e.dispatchEvent||e.fireEvent&&e!==b)){let s=C.createEvent("Events");s.initEvent(t,!0,!0),i=k(s,i),e.dispatchEvent?e.dispatchEvent(i):e.fireEvent(t,i)}else if(e.hcEvents){i.target||k(i,{preventDefault:function(){i.defaultPrevented=!0},target:e,type:t});let s=[],n=e,r=!1;for(;n.hcEvents;)Object.hasOwnProperty.call(n,"hcEvents")&&n.hcEvents[t]&&(s.length&&(r=!0),s.unshift.apply(s,n.hcEvents[t])),n=Object.getPrototypeOf(n);r&&s.sort((e,t)=>e.order-t.order),s.forEach(t=>{!1===t.fn.call(e,i)&&i.preventDefault()})}s&&!i.defaultPrevented&&s.call(e,i)}let V=function(){let t=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(e?"":t)+i++}}();E.jQuery&&(E.jQuery.fn.highcharts=function(){let e=[].slice.call(arguments);if(this[0])return e[0]?(new b[S(e[0])?e.shift():"Chart"](this[0],e[0],e[1]),this):v[I(this[0],"data-highcharts-chart")]});let q={addEvent:function(e,t,i,s={}){let n="function"==typeof e&&e.prototype||e;Object.hasOwnProperty.call(n,"hcEvents")||(n.hcEvents={});let r=n.hcEvents;b.Point&&e instanceof b.Point&&e.series&&e.series.chart&&(e.series.chart.runTrackerClick=!0);let o=e.addEventListener;o&&o.call(e,t,i,!!b.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==t.indexOf("touch"):s.passive,capture:!1}),r[t]||(r[t]=[]);let l={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[t].push(l),r[t].sort((e,t)=>e.order-t.order),function(){j(e,t,i)}},arrayMax:function(e){let t=e.length,i=e[0];for(;t--;)e[t]>i&&(i=e[t]);return i},arrayMin:function(e){let t=e.length,i=e[0];for(;t--;)e[t]<i&&(i=e[t]);return i},attr:I,clamp:function(e,t,i){return e>t?e<i?e:i:t},clearTimeout:function(e){A(e)&&clearTimeout(e)},correctFloat:B,createElement:function(e,t,i,s,n){let r=C.createElement(e);return t&&k(r,t),n&&H(r,{padding:"0",border:"none",margin:"0"}),i&&H(r,i),s&&s.appendChild(r),r},crisp:function(e,t=0,i){let s=t%2/2,n=i?-1:1;return(Math.round(e*n-s)+s)*n},css:H,defined:A,destroyObjectProperties:function(e,t,i){W(e,function(s,n){s!==t&&s?.destroy&&s.destroy(),(s?.destroy||!i)&&delete e[n]})},diffObjects:function(e,t,i,s){let n={};return!function e(t,n,r,o){let l=i?n:t;W(t,function(i,a){if(!o&&s&&s.indexOf(a)>-1&&n[a]){i=D(i),r[a]=[];for(let t=0;t<Math.max(i.length,n[a].length);t++)n[a][t]&&(void 0===i[t]?r[a][t]=n[a][t]:(r[a][t]={},e(i[t],n[a][t],r[a][t],o+1)))}else L(i,!0)&&!i.nodeType?(r[a]=M(i)?[]:{},e(i,n[a]||{},r[a],o+1),0===Object.keys(r[a]).length&&("colorAxis"!==a||0!==o)&&delete r[a]):(t[a]!==n[a]||a in t&&!(a in n))&&"__proto__"!==a&&"constructor"!==a&&(r[a]=l[a])})}(e,t,n,0),n},discardElement:function(e){e?.parentElement?.removeChild(e)},erase:function(e,t){let i=e.length;for(;i--;)if(e[i]===t){e.splice(i,1);break}},error:T,extend:k,extendClass:function(e,t){let i=function(){};return i.prototype=new e,k(i.prototype,t),i},find:F,fireEvent:U,getAlignFactor:(e="")=>({center:.5,right:1,middle:.5,bottom:1})[e]||0,getClosestDistance:function(e,t){let i,s,n,r,o=!t;return e.forEach(e=>{if(e.length>1)for(r=s=e.length-1;r>0;r--)(n=e[r]-e[r-1])<0&&!o?(t?.(),t=void 0):n&&(void 0===i||n<i)&&(i=n)}),i},getMagnitude:z,getNestedProperty:function(e,t){let i=e.split(".");for(;i.length&&A(t);){let e=i.shift();if(void 0===e||"__proto__"===e)return;if("this"===e){let e;return L(t)&&(e=t["@this"]),e??t}let s=t[e.replace(/[\\'"]/g,"")];if(!A(s)||"function"==typeof s||"number"==typeof s.nodeType||s===E)return;t=s}return t},getStyle:function e(t,i,s){let n;if("width"===i){let i=Math.min(t.offsetWidth,t.scrollWidth),s=t.getBoundingClientRect?.().width;return s<i&&s>=i-1&&(i=Math.floor(s)),Math.max(0,i-(e(t,"padding-left",!0)||0)-(e(t,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(t.offsetHeight,t.scrollHeight)-(e(t,"padding-top",!0)||0)-(e(t,"padding-bottom",!0)||0));let r=E.getComputedStyle(t,void 0);return r&&(n=r.getPropertyValue(i),P(s,"opacity"!==i)&&(n=x(n))),n},insertItem:function(e,t){let i,s=e.options.index,n=t.length;for(i=e.options.isInternal?n:0;i<n+1;i++)if(!t[i]||N(s)&&s<P(t[i].options.index,t[i]._i)||t[i].options.isInternal){t.splice(i,0,e);break}return i},isArray:M,isClass:R,isDOMElement:O,isFunction:function(e){return"function"==typeof e},isNumber:N,isObject:L,isString:S,merge:function(e,...t){let i,s=[e,...t],n={},r=function(e,t){return"object"!=typeof e&&(e={}),W(t,function(i,s){"__proto__"!==s&&"constructor"!==s&&(!L(i,!0)||R(i)||O(i)?e[s]=t[s]:e[s]=r(e[s]||{},i))}),e};!0===e&&(n=s[1],s=Array.prototype.slice.call(s,2));let o=s.length;for(i=0;i<o;i++)n=r(n,s[i]);return n},normalizeTickInterval:function(e,t,i,s,n){let r,o=e;i=P(i,z(e));let l=e/i;for(!t&&(t=n?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===s&&(1===i?t=t.filter(function(e){return e%1==0}):i<=.1&&(t=[1/i]))),r=0;r<t.length&&(o=t[r],(!n||!(o*i>=e))&&(n||!(l<=(t[r]+(t[r+1]||t[r]))/2)));r++);return B(o*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:W,offset:function(e){let t=C.documentElement,i=e.parentElement||e.parentNode?e.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(E.pageYOffset||t.scrollTop)-(t.clientTop||0),left:i.left+(E.pageXOffset||t.scrollLeft)-(t.clientLeft||0),width:i.width,height:i.height}},pad:function(e,t,i){return Array((t||2)+1-String(e).replace("-","").length).join(i||"0")+e},pick:P,pInt:x,pushUnique:function(e,t){return 0>e.indexOf(t)&&!!e.push(t)},relativeLength:function(e,t,i){return/%$/.test(e)?t*parseFloat(e)/100+(i||0):parseFloat(e)},removeEvent:j,replaceNested:function(e,...t){let i,s;do for(s of(i=e,t))e=e.replace(s[0],s[1]);while(e!==i);return e},splat:D,stableSort:function(e,t){let i,s,n=e.length;for(s=0;s<n;s++)e[s].safeI=s;for(e.sort(function(e,s){return 0===(i=t(e,s))?e.safeI-s.safeI:i}),s=0;s<n;s++)delete e[s].safeI},syncTimeout:function(e,t,i){return t>0?setTimeout(e,t,i):(e.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(e){return S(e)?e.substring(0,1).toUpperCase()+e.substring(1):String(e)},uniqueKey:V,useSerialIds:function(t){return e=P(t,e)},wrap:function(e,t,i){let s=e[t];e[t]=function(){let e=arguments,t=this;return i.apply(this,[function(){return s.apply(t,arguments.length?arguments:e)}].concat([].slice.call(arguments)))}}},{SVG_NS:Y,win:K}=b,{attr:$,createElement:_,css:G,error:Z,isFunction:J,isString:X,objectEach:Q,splat:ee}=q,{trustedTypes:et}=K,ei=et&&J(et.createPolicy)&&et.createPolicy("highcharts",{createHTML:e=>e}),es=ei?ei.createHTML(""):"";class en{static filterUserAttributes(e){return Q(e,(t,i)=>{let s=!0;-1===en.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=X(t)&&en.allowedReferences.some(e=>0===t.indexOf(e))),s||(Z(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete e[i]),X(t)&&e[i]&&(e[i]=t.replace(/</g,"&lt;"))}),e}static parseStyle(e){return e.split(";").reduce((e,t)=>{let i=t.split(":").map(e=>e.trim()),s=i.shift();return s&&i.length&&(e[s.replace(/-([a-z])/g,e=>e[1].toUpperCase())]=i.join(":")),e},{})}static setElementHTML(e,t){e.innerHTML=en.emptyHTML,t&&new en(t).addToDOM(e)}constructor(e){this.nodes="string"==typeof e?this.parseMarkup(e):e}addToDOM(e){return function e(t,i){let s;return ee(t).forEach(function(t){let n,r=t.tagName,o=t.textContent?b.doc.createTextNode(t.textContent):void 0,l=en.bypassHTMLFiltering;if(r)if("#text"===r)n=o;else if(-1!==en.allowedTags.indexOf(r)||l){let s="svg"===r?Y:i.namespaceURI||Y,a=b.doc.createElementNS(s,r),h=t.attributes||{};Q(t,function(e,t){"tagName"!==t&&"attributes"!==t&&"children"!==t&&"style"!==t&&"textContent"!==t&&(h[t]=e)}),$(a,l?h:en.filterUserAttributes(h)),t.style&&G(a,t.style),o&&a.appendChild(o),e(t.children||[],a),n=a}else Z(33,!1,void 0,{"Invalid tagName in config":r});n&&i.appendChild(n),s=n}),s}(this.nodes,e)}parseMarkup(e){let t,i=[];e=e.trim().replace(/ style=(["'])/g," data-style=$1");try{t=new DOMParser().parseFromString(ei?ei.createHTML(e):e,"text/html")}catch{}if(!t){let i=_("div");i.innerHTML=e,t={body:i}}let s=(e,t)=>{let i=e.nodeName.toLowerCase(),n={tagName:i};"#text"===i&&(n.textContent=e.textContent||"");let r=e.attributes;if(r){let e={};[].forEach.call(r,t=>{"data-style"===t.name?n.style=en.parseStyle(t.value):e[t.name]=t.value}),n.attributes=e}if(e.childNodes.length){let t=[];[].forEach.call(e.childNodes,e=>{s(e,t)}),t.length&&(n.children=t)}t.push(n)};return[].forEach.call(t.body.childNodes,e=>s(e,i)),i}}en.allowedAttributes=["alt","aria-controls","aria-describedby","aria-expanded","aria-haspopup","aria-hidden","aria-label","aria-labelledby","aria-live","aria-pressed","aria-readonly","aria-roledescription","aria-selected","class","clip-path","color","colspan","cx","cy","d","disabled","dx","dy","fill","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","refX","refY","result","role","rowspan","scope","slope","src","startOffset","stdDeviation","stroke-linecap","stroke-width","stroke","style","summary","tabindex","tableValues","target","text-align","text-anchor","textAnchor","textLength","title","type","valign","width","x","x1","x2","xlink:href","y","y1","y2","zIndex"],en.allowedReferences=["https://","http://","mailto:","/","../","./","#"],en.allowedTags=["#text","a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","filter","h1","h2","h3","h4","h5","h6","hr","i","img","li","linearGradient","marker","ol","p","path","pattern","pre","rect","small","span","stop","strong","style","sub","sup","svg","table","tbody","td","text","textPath","th","thead","title","tr","tspan","u","ul"],en.emptyHTML=es,en.bypassHTMLFiltering=!1;let{pageLang:er,win:eo}=b,{defined:el,error:ea,extend:eh,isNumber:ed,isObject:eu,isString:ec,merge:ep,objectEach:em,pad:eg,splat:ef,timeUnits:ey,ucfirst:ew}=q,eb=b.isSafari&&eo.Intl&&!eo.Intl.DateTimeFormat.prototype.formatRange,ev=class{constructor(e,t){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=eo.Date,this.update(e),this.lang=t}update(e={}){this.dTLCache={},this.options=e=ep(!0,this.options,e);let{timezoneOffset:t,useUTC:i,locale:s}=e;this.Date=e.Date||eo.Date||Date;let n=e.timezone;el(i)&&(n=i?"UTC":void 0),t&&t%60==0&&(n="Etc/GMT"+(t>0?"+":"")+t/60),this.variableTimezone="UTC"!==n&&n?.indexOf("Etc/GMT")!==0,this.timezone=n,this.lang&&s&&(this.lang.locale=s),["months","shortMonths","weekdays","shortWeekdays"].forEach(e=>{let t=/months/i.test(e),i=/short/.test(e),s={timeZone:"UTC"};s[t?"month":"weekday"]=i?"short":"long",this[e]=(t?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map(e=>this.dateFormat(s,(t?31:1)*24*36e5*e))})}toParts(e){let[t,i,s,n,r,o,l]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},e,"es").split(/(?:, | |\/|:)/g);return[n,s-1,i,r,o,l,Math.floor(Number(e)||0)%1e3,"DLMXJVS".indexOf(t)].map(Number)}dateTimeFormat(e,t,i=this.options.locale||er){let s=JSON.stringify(e)+i;ec(e)&&(e=this.str2dtf(e));let n=this.dTLCache[s];if(!n){e.timeZone??(e.timeZone=this.timezone);try{n=new Intl.DateTimeFormat(i,e)}catch(t){/Invalid time zone/i.test(t.message)?(ea(34),e.timeZone="UTC",n=new Intl.DateTimeFormat(i,e)):ea(t.message,!1)}}return this.dTLCache[s]=n,n?.format(t)||""}str2dtf(e,t={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach(s=>{-1!==e.indexOf(s)&&eh(t,i[s])}),t}makeTime(e,t,i=1,s=0,n,r,o){let l=this.Date.UTC(e,t,i,s,n||0,r||0,o||0);if("UTC"!==this.timezone){let e=this.getTimezoneOffset(l);if(l+=e,-1!==[2,3,8,9,10,11].indexOf(t)&&(s<5||s>20)){let t=this.getTimezoneOffset(l);e!==t?l+=t-e:e-36e5!==this.getTimezoneOffset(l-36e5)||eb||(l-=36e5)}}return l}parse(e){if(!ec(e))return e??void 0;let t=(e=e.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(e),i=/^[0-9]{4}-[0-9]{2}(-[0-9]{2}|)$/.test(e);t||i||(e+="Z");let s=Date.parse(e);if(ed(s))return s+(!t||i?this.getTimezoneOffset(s):0)}getTimezoneOffset(e){if("UTC"!==this.timezone){let[t,i,s,n,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},e,"en").split(/(GMT|:)/).map(Number),o=-(60*(s+r/60)*6e4);if(ed(o))return o}return 0}dateFormat(e,t,i){let s=this.lang;if(!el(t)||isNaN(t))return s?.invalidDate||"";if(ec(e=e??"%Y-%m-%d %H:%M:%S")){let i,n=/%\[([a-zA-Z]+)\]/g;for(;i=n.exec(e);)e=e.replace(i[0],this.dateTimeFormat(i[1],t,s?.locale))}if(ec(e)&&-1!==e.indexOf("%")){let i=this,[n,r,o,l,a,h,d,u]=this.toParts(t),c=s?.weekdays||this.weekdays,p=s?.shortWeekdays||this.shortWeekdays,m=s?.months||this.months,g=s?.shortMonths||this.shortMonths;em(eh({a:p?p[u]:c[u].substr(0,3),A:c[u],d:eg(o),e:eg(o,2," "),w:u,v:s?.weekFrom??"",b:g[r],B:m[r],m:eg(r+1),o:r+1,y:n.toString().substr(2,2),Y:n,H:eg(l),k:l,I:eg(l%12||12),l:l%12||12,M:eg(a),p:l<12?"AM":"PM",P:l<12?"am":"pm",S:eg(h),L:eg(d,3)},b.dateFormats),function(s,n){if(ec(e))for(;-1!==e.indexOf("%"+n);)e=e.replace("%"+n,"function"==typeof s?s.call(i,t):s)})}else if(eu(e)){let i=(this.getTimezoneOffset(t)||0)/36e5,s=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:n="",suffix:r=""}=e;e=n+this.dateTimeFormat(eh({timeZone:s},e),t)+r}return i?ew(e):e}resolveDTLFormat(e){return eu(e,!0)?eu(e,!0)&&void 0===e.main?{main:e}:e:{main:(e=ef(e))[0],from:e[1],to:e[2]}}getDateFormat(e,t,i,s){let n=this.dateFormat("%m-%d %H:%M:%S.%L",t),r="01-01 00:00:00.000",o={millisecond:15,second:12,minute:9,hour:6,day:3},l="millisecond",a=l;for(l in ey){if(e&&e===ey.week&&+this.dateFormat("%w",t)===i&&n.substr(6)===r.substr(6)){l="week";break}if(e&&ey[l]>e){l=a;break}if(o[l]&&n.substr(o[l])!==r.substr(o[l]))break;"week"!==l&&(a=l)}return this.resolveDTLFormat(s[l]).main}},{defined:eC,extend:eE,timeUnits:eT}=q,ex=class extends ev{getTimeTicks(e,t,i,s){let n=this,r=[],o={},{count:l=1,unitRange:a}=e,[h,d,u,c,p,m]=n.toParts(t),g=(t||0)%1e3,f;if(s??(s=1),eC(t)){if(g=a>=eT.second?0:l*Math.floor(g/l),a>=eT.second&&(m=a>=eT.minute?0:l*Math.floor(m/l)),a>=eT.minute&&(p=a>=eT.hour?0:l*Math.floor(p/l)),a>=eT.hour&&(c=a>=eT.day?0:l*Math.floor(c/l)),a>=eT.day&&(u=a>=eT.month?1:Math.max(1,l*Math.floor(u/l))),a>=eT.month&&(d=a>=eT.year?0:l*Math.floor(d/l)),a>=eT.year&&(h-=h%l),a===eT.week){l&&(t=n.makeTime(h,d,u,c,p,m,g));let e=this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},t,"es"),i="DLMXJVS".indexOf(e);u+=-i+s+(i<s?-7:0)}t=n.makeTime(h,d,u,c,p,m,g),n.variableTimezone&&eC(i)&&(f=i-t>4*eT.month||n.getTimezoneOffset(t)!==n.getTimezoneOffset(i));let e=t,y=1;for(;e<i;)r.push(e),a===eT.year?e=n.makeTime(h+y*l,0):a===eT.month?e=n.makeTime(h,d+y*l):f&&(a===eT.day||a===eT.week)?e=n.makeTime(h,d,u+y*l*(a===eT.day?1:7)):f&&a===eT.hour&&l>1?e=n.makeTime(h,d,u,c+y*l):e+=a*l,y++;r.push(e),a<=eT.hour&&r.length<1e4&&r.forEach(e=>{e%18e5==0&&"000000000"===n.dateFormat("%H%M%S%L",e)&&(o[e]="day")})}return r.info=eE(e,{higherRanks:o,totalRange:a*l}),r}},{isTouchDevice:eS}=b,{fireEvent:eM,merge:eL}=q,eO={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{weekFrom:"week from",chartTitle:"Chart title",locale:void 0,loading:"Loading...",months:void 0,seriesName:"Series {add index 1}",shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],pieSliceName:"Slice",resetZoom:"Reset zoom",yAxisTitle:"Values",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",events:{},layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{color:"#333333",fontSize:"0.8em",fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:{duration:300,easing:e=>Math.sqrt(1-Math.pow(e-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"%v %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,position:{x:0,y:3},shared:!1,snap:eS?25:10,headerFormat:'<span style="font-size: 0.8em">{ucfirst point.key}</span><br/>',pointFormat:'<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>',backgroundColor:"#ffffff",borderWidth:void 0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"},text:"Highcharts.com"}},eR=new ex(eO.time,eO.lang),{defaultOptions:eN,defaultTime:eA}={defaultOptions:eO,defaultTime:eR,getOptions:function(){return eO},setOptions:function(e){return eM(b,"setOptions",{options:e}),eL(!0,eO,e),e.time&&eR.update(eO.time),e.lang&&"locale"in e.lang&&eR.update({locale:e.lang.locale}),e.lang?.chartTitle&&(eO.title={...eO.title,text:e.lang.chartTitle}),eO}},{pageLang:eI}=b,{extend:eD,getNestedProperty:ek,isArray:eP,isNumber:eH,isObject:ez,isString:eB,pick:eF,ucfirst:eW}=q,ej={add:(e,t)=>e+t,divide:(e,t)=>0!==t?e/t:"",eq:(e,t)=>e==t,each:function(e){let t=arguments[arguments.length-1];return!!eP(e)&&e.map((i,s)=>eq(t.body,eD(ez(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===e.length-1}))).join("")},ge:(e,t)=>e>=t,gt:(e,t)=>e>t,if:e=>!!e,le:(e,t)=>e<=t,lt:(e,t)=>e<t,multiply:(e,t)=>e*t,ne:(e,t)=>e!=t,subtract:(e,t)=>e-t,ucfirst:eW,unless:e=>!e},eU={},eV=e=>/^["'].+["']$/.test(e);function eq(e="",t,i){let s=/\{([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/g,n=/\(([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/g,r=[],o=/f$/,l=/\.(\d)/,a=i?.options?.lang||eN.lang,h=i?.time||eA,d=i?.numberFormatter||eY.bind(i),u=(e="")=>{let i;return"true"===e||"false"!==e&&((i=Number(e)).toString()===e?i:eV(e)?e.slice(1,-1):ek(e,t))},c,p,m=0,g;for(;null!==(c=s.exec(e));){let i=c,s=n.exec(c[1]);s&&(c=s,g=!0),p?.isBlock||(p={ctx:t,expression:c[1],find:c[0],isBlock:"#"===c[1].charAt(0),start:c.index,startInner:c.index+c[0].length,length:c[0].length});let o=(p.isBlock?i:c)[1].split(" ")[0].replace("#","");ej[o]&&(p.isBlock&&o===p.fn&&m++,p.fn||(p.fn=o));let l="else"===c[1];if(p.isBlock&&p.fn&&(c[1]===`/${p.fn}`||l))if(m)!l&&m--;else{let t=p.startInner,i=e.substr(t,c.index-t);void 0===p.body?(p.body=i,p.startInner=c.index+c[0].length):p.elseBody=i,p.find+=i+c[0],l||(r.push(p),p=void 0)}else p.isBlock||r.push(p);if(s&&!p?.isBlock)break}return r.forEach(s=>{let r,c,{body:p,elseBody:m,expression:g,fn:f}=s;if(f){let e=[s],n=[],o=g.length,l=0,a;for(c=0;c<=o;c++){let e=g.charAt(c);a||'"'!==e&&"'"!==e?a===e&&(a=""):a=e,a||" "!==e&&c!==o||(n.push(g.substr(l,c-l)),l=c+1)}for(c=ej[f].length;c--;)e.unshift(u(n[c+1]));r=ej[f].apply(t,e),s.isBlock&&"boolean"==typeof r&&(r=eq(r?p:m,t,i))}else{let e=eV(g)?[g]:g.split(":"),t=(r=u(e.shift()||""))%1!=0;if("number"==typeof r&&(e.length||t)){let i=e.join(":");if(o.test(i)||t){let e=parseInt((i.match(l)||["","-1"])[1],10);null!==r&&(r=d(r,e,a.decimalPoint,i.indexOf(",")>-1?a.thousandsSep:""))}else r=h.dateFormat(i,r)}n.lastIndex=0,n.test(s.find)&&eB(r)&&(r=`"${r}"`)}e=e.replace(s.find,eF(r,""))}),g?eq(e,t,i):e}function eY(e,t,i,s){t*=1;let n,r,[o,l]=(e=+e||0).toString().split("e").map(Number),a=this?.options?.lang||eN.lang,h=(e.toString().split(".")[1]||"").split("e")[0].length,d=t,u={};i??(i=a.decimalPoint),s??(s=a.thousandsSep),-1===t?t=Math.min(h,20):eH(t)?t&&l<0&&((r=t+l)>=0?(o=+o.toExponential(r).split("e")[0],t=r):(o=Math.floor(o),e=t<20?+(o*Math.pow(10,l)).toFixed(t):0,l=0)):t=2,l&&(t??(t=2),e=o),eH(t)&&t>=0&&(u.minimumFractionDigits=t,u.maximumFractionDigits=t),""===s&&(u.useGrouping=!1);let c=s||i,p=c?"en":this?.locale||a.locale||eI,m=JSON.stringify(u)+p;return n=(eU[m]??(eU[m]=new Intl.NumberFormat(p,u))).format(e),c&&(n=n.replace(/([,\.])/g,"_$1").replace(/_\,/g,s??",").replace("_.",i??".")),(t||0!=+n)&&(!(l<0)||d)||(n="0"),l&&0!=+n&&(n+="e"+(l<0?"":"+")+l),n}let eK={dateFormat:function(e,t,i){return eA.dateFormat(e,t,i)},format:eq,helpers:ej,numberFormat:eY},{getStyle:e$,defined:e_}=q;class eG{constructor(e){this.columnWidths={},this.columnWidthUnits={},this.viewport=e}getColumnWidth(e){let t=this.viewport,i=this.columnWidths[e.id],s=eG.getMinWidth(e);if(!e_(i)){let e=t.tbodyElement;return Math.max((e.getBoundingClientRect().width-this.calculateOccupiedWidth()-e.offsetWidth+e.clientWidth)/((t.grid.enabledColumns?.length||0)-Object.keys(this.columnWidths).length),s)}return 0===this.columnWidthUnits[e.id]?i:Math.max(t.getWidthFromRatio(i/100),s)}loadColumn(e){let t,i=e.options.width;if(!i)return;let s=0;"number"==typeof i?(t=i,s=0):(t=parseFloat(i),s=+("%"===i.charAt(i.length-1))),this.columnWidthUnits[e.id]=s,this.columnWidths[e.id]=t}loadColumns(){let{columns:e}=this.viewport;for(let t=0,i=e.length;t<i;++t)this.loadColumn(e[t])}reflow(){let e=this.viewport,t=0;for(let i=0,s=e.columns.length;i<s;++i)t+=this.getColumnWidth(e.columns[i]);e.rowsWidth=t}static getMinWidth(e){let t=e.cells[0]?.htmlElement,i=e.header?.htmlElement,s=e=>(e$(e,"padding-left",!0)||0)+(e$(e,"padding-right",!0)||0)+(e$(e,"border-left",!0)||0)+(e$(e,"border-right",!0)||0),n=eG.MIN_COLUMN_WIDTH;return t&&(n=Math.max(n,s(t))),i&&(n=Math.max(n,s(i))),n}calculateOccupiedWidth(){let e,t,i=this.viewport,s=0,n=Object.keys(this.columnWidths);for(let r=0,o=n.length;r<o;++r){if(t=n[r],0===this.columnWidthUnits[t]){s+=this.columnWidths[t];continue}e=this.columnWidths[t],s+=i.getWidthFromRatio(e/100)}return s}}eG.MIN_COLUMN_WIDTH=20;let eZ=eG,eJ=class extends eZ{constructor(){super(...arguments),this.type="adjacent"}resize(e,t){let i=this.viewport,s=e.draggedColumn;if(!s)return;let n=e.columnStartWidth??0,r=eZ.getMinWidth(s),o=i.columns[s.index+1],l=Math.round(10*Math.max(n+t,r))/10;if(this.columnWidths[s.id]=l,this.columnWidthUnits[s.id]=0,s.update({width:l},!1),o){let t=this.columnWidths[o.id]=Math.round(10*Math.max((e.nextColumnStartWidth??0)+n-l,r))/10;this.columnWidthUnits[o.id]=0,o.update({width:t},!1)}}},eX=class extends eZ{constructor(){super(...arguments),this.type="independent"}resize(e,t){let i=e.draggedColumn;if(!i)return;let s=this.columnWidths[i.id]=Math.round(10*Math.max((e.columnStartWidth||0)+t,eZ.getMinWidth(i)))/10;this.columnWidthUnits[i.id]=0;let n=this.viewport,r=i.index;for(let e=r;e<n.columns.length;++e){let t=n.columns[e],i=this.columnWidths[t.id]=t.getWidth();this.columnWidthUnits[t.id]=0,t.update({width:i},!1)}i.update({width:s},!1)}},eQ=class extends eZ{constructor(){super(...arguments),this.type="distributed"}resize(e,t){let i=e.draggedColumn;if(!i)return;let s=this.columnWidths[i.id]=Math.round(10*Math.max((e.columnStartWidth||0)+t,eZ.getMinWidth(i)))/10;this.columnWidthUnits[i.id]=0,i.update({width:s},!1)}};!function(e){e.AbstractStrategy=eZ,e.types={adjacent:eJ,distributed:eQ,independent:eX},e.initMode=function(t){let i=t.grid.options?.rendering?.columns?.resizing?.mode||"adjacent",s=e.types[i];return s||(console.warn(`Unknown column resizing mode: '${i}'. Applied default 'adjacent' mode.`),s=e.types.adjacent),new s(t)}}(i||(i={}));let e0=i,{addEvent:e1,fireEvent:e3,merge:e6}=q;class e2{benchmark(e,t){let i=[],s=this,n=()=>{s.modifyTable(e),s.emit({type:"afterBenchmarkIteration"})},{iterations:r}=e6({iterations:1},t);s.on("afterBenchmarkIteration",()=>{if(i.length===r)return void s.emit({type:"afterBenchmark",results:i});n()});let o={startTime:0,endTime:0};return s.on("modify",()=>{o.startTime=window.performance.now()}),s.on("afterModify",()=>{o.endTime=window.performance.now(),i.push(o.endTime-o.startTime)}),n(),i}emit(e){e3(this,e.type,e)}modify(e,t){let i=this;return new Promise((s,n)=>{e.modified||(e.modified=e.clone(!1,t));try{s(i.modifyTable(e,t))}catch(s){i.emit({type:"error",detail:t,table:e}),n(s instanceof Error?s:Error(""+s))}})}on(e,t){return e1(this,e,t)}}!function(e){e.types={},e.registerType=function(t,i){return!!t&&!e.types[t]&&!!(e.types[t]=i)}}(e2||(e2={}));let e5=e2;!function(e){e.setLength=function(e,t,i){return Array.isArray(e)?(e.length=t,e):e[i?"subarray":"slice"](0,t)},e.splice=function(e,t,i,s,n=[]){if(Array.isArray(e))return Array.isArray(n)||(n=Array.from(n)),{removed:e.splice(t,i,...n),array:e};let r=Object.getPrototypeOf(e).constructor,o=e[s?"subarray":"slice"](t,t+i),l=new r(e.length-i+n.length);return l.set(e.subarray(0,t),0),l.set(n,t),l.set(e.subarray(t+i),t+n.length),{removed:o,array:l}},e.convertToNumber=function(e,t){switch(typeof e){case"boolean":return+!!e;case"number":return isNaN(e)&&!t?null:e;default:return isNaN(e=parseFloat(`${e??""}`))&&!t?null:e}}}(s||(s={}));let e7=s,{setLength:e4,splice:e9}=e7,{fireEvent:e8,objectEach:te,uniqueKey:tt}=q,ti=class{constructor(e={}){this.autoId=!e.id,this.columns={},this.id=e.id||tt(),this.rowCount=0,this.versionTag=tt();let t=0;te(e.columns||{},(e,i)=>{this.columns[i]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(e){this.rowCount=e,te(this.columns,(t,i)=>{t.length!==e&&(this.columns[i]=e4(t,e))})}deleteRows(e,t=1){if(t>0&&e<this.rowCount){let i=0;te(this.columns,(s,n)=>{this.columns[n]=e9(s,e,t).array,i=s.length}),this.rowCount=i}e8(this,"afterDeleteRows",{rowIndex:e,rowCount:t}),this.versionTag=tt()}getColumn(e,t){return this.columns[e]}getColumns(e,t){return(e||Object.keys(this.columns)).reduce((e,t)=>(e[t]=this.columns[t],e),{})}getRow(e,t){return(t||Object.keys(this.columns)).map(t=>this.columns[t]?.[e])}setColumn(e,t=[],i=0,s){this.setColumns({[e]:t},i,s)}setColumns(e,t,i){let s=this.rowCount;te(e,(e,t)=>{this.columns[t]=e.slice(),s=e.length}),this.applyRowCount(s),i?.silent||(e8(this,"afterSetColumns"),this.versionTag=tt())}setRow(e,t=this.rowCount,i,s){let{columns:n}=this,r=i?this.rowCount+1:t+1;te(e,(e,o)=>{let l=n[o]||s?.addColumns!==!1&&Array(r);l&&(i?l=e9(l,t,0,!0,[e]).array:l[t]=e,n[o]=l)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(e8(this,"afterSetRows"),this.versionTag=tt())}getModified(){return this.modified||this}},{splice:ts,setLength:tn}=e7,{addEvent:tr,defined:to,extend:tl,fireEvent:ta,isNumber:th,uniqueKey:td}=q;class tu extends ti{constructor(e={}){super(e),this.metadata=e.metadata}clone(e,t){let i={};this.emit({type:"cloneTable",detail:t}),e||(i.columns=this.columns),this.autoId||(i.id=this.id);let s=new tu(i);return e||(s.versionTag=this.versionTag,s.originalRowIndexes=this.originalRowIndexes,s.localRowIndexes=this.localRowIndexes),this.emit({type:"afterCloneTable",detail:t,tableClone:s}),s}deleteColumns(e,t){let i=this.columns,s={},n={},r=this.modifier,o=this.rowCount;if((e=e||Object.keys(i)).length){this.emit({type:"deleteColumns",columnIds:e,detail:t});for(let t=0,r=e.length,l,a;t<r;++t)(l=i[a=e[t]])&&(s[a]=l,n[a]=Array(o)),delete i[a];return Object.keys(i).length||(this.rowCount=0,this.deleteRowIndexReferences()),r&&r.modifyTable(this),this.emit({type:"afterDeleteColumns",columns:s,columnIds:e,detail:t}),s}}deleteRowIndexReferences(){delete this.originalRowIndexes,delete this.localRowIndexes}deleteRows(e,t=1,i){let s=[],n=[],r=this.modifier;if(this.emit({type:"deleteRows",detail:i,rowCount:t,rowIndex:e||0}),void 0===e&&(e=0,t=this.rowCount),t>0&&e<this.rowCount){let i=this.columns,r=Object.keys(i);for(let o=0,l=r.length,a,h,d;o<l;++o){let u=ts(a=i[d=r[o]],e,t);h=u.removed,i[d]=a=u.array,o||(this.rowCount=a.length);for(let e=0,t=h.length;e<t;++e)s[e]=s[e]||[],s[e][o]=h[e];n.push(Array(l))}}return r&&r.modifyTable(this),this.emit({type:"afterDeleteRows",detail:i,rowCount:t,rowIndex:e||0,rows:s}),s}emit(e){["afterDeleteColumns","afterDeleteRows","afterSetCell","afterSetColumns","afterSetRows"].includes(e.type)&&(this.versionTag=td()),ta(this,e.type,e)}getCell(e,t){let i=this.columns[e];if(i)return i[t]}getColumn(e,t){return this.getColumns([e],t)[e]}getColumnIds(){return Object.keys(this.columns)}getColumns(e,t,i){let s=this.columns,n={};e=e||Object.keys(s);for(let r=0,o=e.length,l,a;r<o;++r)(l=s[a=e[r]])&&(t?n[a]=l:i&&!Array.isArray(l)?n[a]=Array.from(l):n[a]=l.slice());return n}getLocalRowIndex(e){let{localRowIndexes:t}=this;return t?t[e]:e}getModifier(){return this.modifier}getOriginalRowIndex(e){let{originalRowIndexes:t}=this;return t?t[e]:e}getRow(e,t){return this.getRows(e,1,t)[0]}getRowCount(){return this.rowCount}getRowIndexBy(e,t,i){let s=this.columns[e];if(s){let e=-1;if(Array.isArray(s)?e=s.indexOf(t,i):th(t)&&(e=s.indexOf(t,i)),-1!==e)return e}}getRowObject(e,t){return this.getRowObjects(e,1,t)[0]}getRowObjects(e=0,t=this.rowCount-e,i){let s=this.columns,n=Array(t);i=i||Object.keys(s);for(let r=e,o=0,l=Math.min(this.rowCount,e+t),a,h;r<l;++r,++o)for(let e of(h=n[o]={},i))a=s[e],h[e]=a?a[r]:void 0;return n}getRows(e=0,t=this.rowCount-e,i){let s=this.columns,n=Array(t);i=i||Object.keys(s);for(let r=e,o=0,l=Math.min(this.rowCount,e+t),a,h;r<l;++r,++o)for(let e of(h=n[o]=[],i))a=s[e],h.push(a?a[r]:void 0);return n}getVersionTag(){return this.versionTag}hasColumns(e){let t=this.columns;for(let i=0,s=e.length;i<s;++i)if(!t[e[i]])return!1;return!0}hasRowWith(e,t){let i=this.columns[e];return Array.isArray(i)?-1!==i.indexOf(t):!!(to(t)&&Number.isFinite(t))&&-1!==i.indexOf(+t)}on(e,t){return tr(this,e,t)}changeColumnId(e,t){let i=this.columns;return!!i[e]&&(e!==t&&(i[t]=i[e],delete i[e]),!0)}setCell(e,t,i,s){let n=this.columns,r=this.modifier,o=n[e];o&&o[t]===i||(this.emit({type:"setCell",cellValue:i,columnId:e,detail:s,rowIndex:t}),o||(o=n[e]=Array(this.rowCount)),t>=this.rowCount&&(this.rowCount=t+1),o[t]=i,r&&r.modifyTable(this),this.emit({type:"afterSetCell",cellValue:i,columnId:e,detail:s,rowIndex:t}))}setColumns(e,t,i,s){let n=this.columns,r=this.modifier,o=Object.keys(e),l=this.rowCount;if(this.emit({type:"setColumns",columns:e,columnIds:o,detail:i,rowIndex:t}),to(t)||s){for(let i=0,r=o.length,a,h,d,u;i<r;++i){a=e[d=o[i]],u=Object.getPrototypeOf((h=n[d])&&s?h:a).constructor,h?u===Array?Array.isArray(h)||(h=Array.from(h)):h.length<l&&(h=new u(l)).set(n[d]):h=new u(l),n[d]=h;for(let e=t||0,i=a.length;e<i;++e)h[e]=a[e];l=Math.max(l,a.length)}this.applyRowCount(l)}else super.setColumns(e,t,tl(i,{silent:!0}));r&&r.modifyTable(this),this.emit({type:"afterSetColumns",columns:e,columnIds:o,detail:i,rowIndex:t})}setModifier(e,t){let i=this;return i.emit({type:"setModifier",detail:t,modifier:e,modified:i.getModified()}),i.modifier=e,(e?e.modify(i):Promise.resolve(i)).then(i=>(i.emit({type:"afterSetModifier",detail:t,modifier:e,modified:i.getModified()}),i)).catch(t=>{throw i.emit({type:"setModifierError",error:t,modifier:e,modified:i.getModified()}),t})}setOriginalRowIndexes(e,t=!1){if(this.originalRowIndexes=e,t)return;let i=this.localRowIndexes=[];for(let t=0,s=e.length,n;t<s;++t)to(n=e[t])&&(i[n]=t)}setRow(e,t,i,s){this.setRows([e],t,i,s)}setRows(e,t=this.rowCount,i,s){let n=this.columns,r=Object.keys(n),o=this.modifier,l=e.length;this.emit({type:"setRows",detail:s,rowCount:l,rowIndex:t,rows:e});for(let s=0,o=t,a;s<l;++s,++o)if(0===Object.keys(a=e[s]).length)for(let e=0,t=r.length;e<t;++e){let t=n[r[e]];i?n[r[e]]=ts(t,o,0,!0,[null]).array:t[o]=null}else if(Array.isArray(a))for(let e=0,t=r.length;e<t;++e)n[r[e]][o]=a[e];else super.setRow(a,o,void 0,{silent:!0});let a=i?l+e.length:t+l;if(a>this.rowCount){this.rowCount=a;for(let e=0,t=r.length;e<t;++e){let t=r[e];n[t]=tn(n[t],a)}}o&&o.modifyTable(this),this.emit({type:"afterSetRows",detail:s,rowCount:l,rowIndex:t,rows:e})}}let{addEvent:tc,fireEvent:tp,merge:tm,pick:tg}=q;class tf{get polling(){return!!this._polling}constructor(e){this.dataTables={},this.loaded=!1,this.metadata=e.metadata||{columns:{}},this.options=e;let t=e?.dataTables,i=0;if(e.options&&console.error("The `DataConnectorOptions.options` property was removed in Dashboards v4.0.0. Check how to upgrade your connector to use the new options structure here: https://api.highcharts.com/dashboards/#interfaces/Data_DataTableOptions.DataTableOptions-1"),t&&t?.length>0)for(let e=0,s=t.length;e<s;++e){let s=t[e],n=s?.key;this.dataTables[n??i]=new tu(s),!n&&i++}else this.dataTables[0]=new tu({id:e.id})}getTable(e){return e?this.dataTables[e]:Object.values(this.dataTables)[0]}describeColumn(e,t){let i=this.metadata.columns;i[e]=tm(i[e]||{},t)}describeColumns(e){let t,i=Object.keys(e);for(;"string"==typeof(t=i.pop());)this.describeColumn(t,e[t])}getColumnOrder(){let e=this.metadata.columns,t=Object.keys(e||{});if(t.length)return t.sort((t,i)=>tg(e[t].index,0)-tg(e[i].index,0))}getSortedColumns(){return this.getTable().getColumns(this.getColumnOrder())}setColumnOrder(e){for(let t=0,i=e.length;t<i;++t)this.describeColumn(e[t],{index:t})}load(){return this.emit({type:"afterLoad"}),Promise.resolve(this)}async applyTableModifiers(){let e=this.options?.dataTables;for(let[t,i]of Object.entries(this.dataTables)){let s=e?.find(e=>e.key===t)?.dataModifier??this.options?.dataModifier,n=s&&e5.types[s.type];await i.setModifier(n?new n(s):void 0)}return this}startPolling(e=1e3){let t=this;this.pollingController=new AbortController,window.clearTimeout(t._polling),t._polling=window.setTimeout(()=>t.load().catch(e=>t.emit({type:"loadError",error:e})).then(()=>{t._polling&&t.startPolling(e)}),e)}stopPolling(){this.polling&&(this?.pollingController?.abort(),window.clearTimeout(this._polling),delete this._polling)}emit(e){tp(this,e.type,e)}on(e,t){return tc(this,e,t)}initConverters(e,t,i){let s=0;for(let[n,r]of Object.entries(this.dataTables)){let o=t(n),l=i(o,e);r.deleteColumns(),r.setColumns(l),0===s&&(this.converter=o),s++}}}!function(e){e.types={},e.registerType=function(t,i){return!!t&&!e.types[t]&&!!(e.types[t]=i)}}(tf||(tf={}));let ty=tf,{isNumber:tw}=q;!function(e){function t(e,t){if("number"==typeof e)return e;if("boolean"==typeof e)return+!!e;if("string"==typeof e){if(e.indexOf(" ")>-1&&(e=e.replace(/\s+/g,"")),t){if(!t.test(e))return NaN;e=e.replace(t,"$1.$2")}return parseFloat(e)}return e instanceof Date?e.getDate():e?e.getRowCount():NaN}e.asDate=function(e,t){let i;if("string"==typeof e)i=t.parseDate(e);else if("number"==typeof e)i=e;else{if(e instanceof Date)return e;i=t.parseDate(""+e)}return new Date(i)},e.asNumber=t,e.asString=function(e){return""+e},e.asBoolean=function(e){return"boolean"==typeof e?e:"string"==typeof e?""!==e&&"0"!==e&&"false"!==e:!!t(e)},e.guessType=function(t,i){let s="string";if("string"==typeof t){let n=e.trim(`${t}`),r=i.decimalRegExp,o=e.trim(n,!0);r&&(o=r.test(o)?o.replace(r,"$1.$2"):"");let l=parseFloat(o);+o===l?t=l:s=tw(i.parseDate(t))?"Date":"string"}return"number"==typeof t&&(s=t>31536e6?"Date":"number"),s},e.trim=function(e,t){return"string"==typeof e&&(e=e.replace(/^\s+|\s+$/g,""),t&&/^[\d\s]+$/.test(e)&&(e=e.replace(/\s/g,""))),e},e.getColumnsCollection=function(e=[],t){let i={};for(let s=0,n=Math.max(t.length,e.length);s<n;++s)i[t[s]||`${s}`]=e[s]?e[s].slice():[];return i}}(n||(n={}));let tb=n,{addEvent:tv,fireEvent:tC,merge:tE}=q;class tT{constructor(e){this.dateFormats={"YYYY/mm/dd":{regex:/^(\d{4})([\-\.\/])(\d{1,2})\2(\d{1,2})$/,parser:function(e){return e?Date.UTC(+e[1],e[3]-1,+e[4]):NaN}},"dd/mm/YYYY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[3]-1,+e[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[1]-1,+e[3]):NaN}},"dd/mm/YY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,parser:function(e){let t=new Date;if(!e)return NaN;let i=+e[4];return i>t.getFullYear()-2e3?i+=1900:i+=2e3,Date.UTC(i,e[3]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^(\d{1,2})([\-\.\/])(\d{1,2})\2(\d{2})$/,parser:function(e){return e?Date.UTC(+e[4]+2e3,e[1]-1,+e[3]):NaN}}};let t=tE(tT.defaultOptions,e),i=t.decimalPoint;("."===i||","===i)&&(i="."===i?"\\.":",",this.decimalRegExp=RegExp("^(-?[0-9]+)"+i+"([0-9]+)$")),this.options=t}convertByType(e){let t=this;return({number:e=>tb.asNumber(e,t.decimalRegExp),Date:e=>tb.asDate(e,t),string:tb.asString})[tb.guessType(e,t)].call(t,e)}deduceDateFormat(e,t,i){let s=[],n=[],r="YYYY/mm/dd",o,l=[],a=0,h=!1,d,u;for((!t||t>e.length)&&(t=e.length);a<t;a++)if(void 0!==e[a]&&e[a]&&e[a].length)for(u=0,o=e[a].trim().replace(/[\-\.\/]/g," ").split(" "),l=["","",""];u<o.length;u++)u<l.length&&(d=parseInt(o[u],10))&&(n[u]=!n[u]||n[u]<d?d:n[u],void 0!==s[u]?s[u]!==d&&(s[u]=!1):s[u]=d,d>31?d<100?l[u]="YY":l[u]="YYYY":d>12&&d<=31?(l[u]="dd",h=!0):l[u].length||(l[u]="mm"));if(h){for(u=0;u<s.length;u++)!1!==s[u]?n[u]>12&&"YY"!==l[u]&&"YYYY"!==l[u]&&(l[u]="YY"):n[u]>12&&"mm"===l[u]&&(l[u]="dd");3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),r=l.join("/")}return i&&(this.options.dateFormat=r),r}emit(e){tC(this,e.type,e)}on(e,t){return tv(this,e,t)}parseDate(e,t){let i=this.options,s=t||i.dateFormat,n=NaN,r,o=null;if(i.parseDate)n=i.parseDate(e);else{let t=this.dateFormats;if(s){let i=t[s];i||(i=t["YYYY/mm/dd"]),(o=e.match(i.regex))&&(n=i.parser(o))}else for(r in t){let i=t[r];if(o=e.match(i.regex)){s=r,n=i.parser(o);break}}if(!o){let t=Date.parse(e);!isNaN(t)&&(n=t-6e4*new Date(t).getTimezoneOffset(),e.includes("2001")||2001!==new Date(n).getFullYear()||(n=NaN))}}return n}}tT.defaultOptions={dateFormat:"",firstRowAsNames:!0},function(e){e.types={},e.registerType=function(t,i){return!!t&&!e.types[t]&&!!(e.types[t]=i)}}(tT||(tT={}));let tx=tT;class tS{constructor(e={}){this.emittingRegister=[],this.listenerMap={},this.stateMap=e}addListener(e,t,i){let s=this.listenerMap[e]=this.listenerMap[e]||{};return(s[t]=s[t]||[]).push(i),this}buildEmittingTag(e){return("position"===e.cursor.type?[e.table.id,e.cursor.column,e.cursor.row,e.cursor.state,e.cursor.type]:[e.table.id,e.cursor.columns,e.cursor.firstRow,e.cursor.lastRow,e.cursor.state,e.cursor.type]).join("\0")}emitCursor(e,t,i,s){let n=e.id,r=t.state,o=this.listenerMap[n]&&this.listenerMap[n][r];if(o){let r=this.stateMap[n]=this.stateMap[n]??{},l=r[t.state]||[];s&&(l.length||(r[t.state]=l),-1===tS.getIndex(t,l)&&l.push(t));let a={cursor:t,cursors:l,table:e};i&&(a.event=i);let h=this.emittingRegister,d=this.buildEmittingTag(a);if(h.indexOf(d)>=0)return this;try{this.emittingRegister.push(d);for(let e=0,t=o.length;e<t;++e)o[e].call(this,a)}finally{let e=this.emittingRegister.indexOf(d);e>=0&&this.emittingRegister.splice(e,1)}}return this}remitCursor(e,t){let i=this.stateMap[e]&&this.stateMap[e][t.state];if(i){let e=tS.getIndex(t,i);e>=0&&i.splice(e,1)}return this}removeListener(e,t,i){let s=this.listenerMap[e]&&this.listenerMap[e][t];if(s){let e=s.indexOf(i);e>=0&&s.splice(e,1)}return this}}!function(e){function t(e,t){if("range"===e.type)return e;let i={type:"range",firstRow:e.row??(t&&t.firstRow)??0,lastRow:e.row??(t&&t.lastRow)??Number.MAX_VALUE,state:e.state};return void 0!==e.column&&(i.columns=[e.column]),i}e.getIndex=function(e,t){if("position"===e.type){for(let i,s=0,n=t.length;s<n;++s)if("position"===(i=t[s]).type&&i.state===e.state&&i.column===e.column&&i.row===e.row)return s}else{let i=JSON.stringify(e.columns);for(let s,n=0,r=t.length;n<r;++n)if("range"===(s=t[n]).type&&s.state===e.state&&s.firstRow===e.firstRow&&s.lastRow===e.lastRow&&JSON.stringify(s.columns)===i)return n}return -1},e.isEqual=function(e,t){return"position"===e.type&&"position"===t.type?e.column===t.column&&e.row===t.row&&e.state===t.state:"range"===e.type&&"range"===t.type&&e.firstRow===t.firstRow&&e.lastRow===t.lastRow&&JSON.stringify(e.columns)===JSON.stringify(t.columns)},e.isInRange=function(e,i){"position"===i.type&&(i=t(i)),"position"===e.type&&(e=t(e,i));let s=e.columns,n=i.columns;return e.firstRow>=i.firstRow&&e.lastRow<=i.lastRow&&(!s||!n||s.every(e=>n.indexOf(e)>=0))},e.toPositions=function(e){if("position"===e.type)return[e];let t=e.columns||[],i=[],s=e.state;for(let n=e.firstRow,r=e.lastRow;n<r;++n){if(!t.length){i.push({type:"position",row:n,state:s});continue}for(let e=0,r=t.length;e<r;++e)i.push({type:"position",column:t[e],row:n,state:s})}return i},e.toRange=t}(tS||(tS={}));let tM=tS,{doc:tL,isMS:tO,win:tR}=b,tN={isHighContrastModeActive:function(){if(tO&&tR.getComputedStyle){let e=tL.createElement("div");e.style.backgroundImage="url(data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==)",tL.body.appendChild(e);let t=(e.currentStyle||tR.getComputedStyle(e)).backgroundImage;return tL.body.removeChild(e),"none"===t}return tR.matchMedia&&tR.matchMedia("(forced-colors: active)").matches}};!function(e){e.classNamePrefix="hcg-",e.rawClassNames={container:"container",tableElement:"table",captionElement:"caption",descriptionElement:"description",theadElement:"thead",tbodyElement:"tbody",rowElement:"row",rowEven:"row-even",rowOdd:"row-odd",hoveredRow:"hovered-row",columnElement:"column",hoveredCell:"hovered-cell",hoveredColumn:"hovered-column",syncedRow:"synced-row",syncedCell:"synced-cell",syncedColumn:"synced-column",editedCell:"edited-cell",mockedRow:"mocked-row",rowsContentNowrap:"rows-content-nowrap",virtualization:"virtualization",scrollableContent:"scrollable-content",headerCell:"header-cell",headerCellContainer:"header-cell-container",headerCellContent:"header-cell-content",headerCellFilterIcon:"header-cell-filter-icon",headerCellIcons:"header-cell-icons",headerCellSortIcon:"header-cell-sort-icon",headerCellMenuIcon:"header-cell-menu-icon",headerRow:"head-row-content",noData:"no-data",noPadding:"no-padding",columnFirst:"column-first",columnSortable:"column-sortable",columnSortableIcon:"column-sortable-icon",columnSortedAsc:"column-sorted-asc",columnSortedDesc:"column-sorted-desc",resizableContent:"resizable-content",resizerHandles:"column-resizer",resizedColumn:"column-resized",creditsContainer:"credits-container",creditsText:"credits",creditsPro:"credits-pro",visuallyHidden:"visually-hidden",lastHeaderCellInRow:"last-header-cell-in-row",loadingWrapper:"loading-wrapper",loadingSpinner:"spinner",loadingMessage:"loading-message",popup:"popup",button:"button",icon:"icon",iconSearch:"icon-search",popupContent:"popup-content",columnFilterWrapper:"column-filter-wrapper",toolbarButtonActiveIndicator:"active-indicator",menuContainer:"menu-container",menuItem:"menu-item",menuHeader:"menu-header",menuHeaderCategory:"menu-header-category",menuHeaderName:"menu-header-name",menuItemIcon:"menu-item-icon",menuItemLabel:"menu-item-label",menuDivider:"menu-divider",clearFilterButton:"clear-filter-button",paginationWrapper:"pagination-wrapper",paginationContainer:"pagination-container",paginationPageInfo:"pagination-info",paginationControls:"pagination-controls",paginationButton:"pagination-btn",paginationButtonDisabled:"pagination-btn-disabled",paginationFirstButton:"pagination-first",paginationPrevButton:"pagination-prev",paginationNextButton:"pagination-next",paginationLastButton:"pagination-last",paginationPageButton:"pagination-page",paginationPageButtonActive:"pagination-page-active",paginationEllipsis:"pagination-ellipsis",paginationMobileSelector:"pagination-mobile-selector",paginationMobilePageSizeSelector:"pagination-mobile-page-size-selector",paginationPageSizeContainer:"pagination-page-size-container",paginationPageSizeSelect:"pagination-page-size-select",noWidth:"no-width",rightAlign:"right",centerAlign:"center",leftAlign:"left"},e.win=window,e.composed=[],e.userAgent=e.win.navigator&&e.win.navigator.userAgent||"",e.isChrome=-1!==e.userAgent.indexOf("Chrome"),e.isSafari=!e.isChrome&&-1!==e.userAgent.indexOf("Safari"),e.getClassName=t=>e.classNamePrefix+e.rawClassNames[t]}(r||(r={}));let tA=r,{isObject:tI}=q;en.allowedAttributes.push("srcset","media"),en.allowedTags.push("picture","source"),function(e){function t(e,t,i){let s=document.createElement(e);if(t){let e=Object.keys(t);for(let i=0;i<e.length;i++){let n=e[i],r=t[n];void 0!==r&&("style"===n?Object.assign(s.style,r):s[n]=r)}}return i&&i.appendChild(s),s}function i(e){return -1!==e.indexOf("<")}e.makeHTMLElement=t,e.makeDiv=function(e,i){return t("div",{className:e,id:i})},e.isHTML=i,e.sanitizeText=function(e){try{return new DOMParser().parseFromString(e,"text/html").body.textContent||""}catch{return""}},e.setHTMLContent=function(e,t){i(t)?(e.innerHTML=en.emptyHTML,new en(t).addToDOM(e)):e.innerText=t},e.createOptionsProxy=function(e,t={}){let i=(e={})=>({get(t,s){let n=t[s],r=e[s];return tI(n,!0)?new Proxy(n,i(r??{})):n??r},set:(e,t,i)=>(e[t]=i,!0),deleteProperty:(e,t)=>(delete e[t],!0)});return new Proxy(e,i(t))},e.formatText=function(e,t){return e.replace(/\{(\w+)\}/g,(e,i)=>void 0!==t[i]?String(t[i]):e)}}(o||(o={}));let tD=o,tk={string:["contains","doesNotContain","equals","doesNotEqual","beginsWith","endsWith","empty","notEmpty"],number:["equals","doesNotEqual","greaterThan","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","empty","notEmpty"],datetime:["equals","doesNotEqual","before","after","empty","notEmpty"],boolean:["all","true","false","empty"]},{defined:tP,fireEvent:tH}=q,{makeHTMLElement:tz}=tD;class tB{static parseCamelCaseToReadable(e){let t=e.replace(/([A-Z])/g," $1").trim().toLowerCase().split(/\s+/).join(" ");return t.charAt(0).toUpperCase()+t.slice(1)}constructor(e){this.onKeyDown=e=>{let t=[];this.filterSelect&&!this.filterSelect.disabled&&t.push(this.filterSelect),this.filterInput&&!this.filterInput.disabled&&t.push(this.filterInput),this.clearButton&&!this.clearButton.disabled&&t.push(this.clearButton);let i={ArrowDown:1,ArrowUp:-1}[e.key];if(i){e.preventDefault();let s=t.indexOf(e.target),n=t.length;t[(s+i+n)%n].focus();return}if("Enter"===e.key&&e.target===this.clearButton){e.preventDefault(),this.set(),t[0]?.focus();return}},this.column=e}async set(e,t){this.filterInput&&(this.filterInput.value=e??""),this.filterSelect&&(this.filterSelect.value=t??tk[this.column.dataType][0]),await this.applyFilter({value:e,condition:t})}renderFilteringContent(e){let t=this.column,i=t.dataType;if(!t.options.filtering?.enabled)return;let s=tz("div",{className:tA.getClassName("columnFilterWrapper")},e);this.renderConditionSelect(s),"boolean"!==i&&this.renderFilteringInput(s,i),this.renderClearButton(s)}applyFilterFromForm(){let e={condition:this.filterSelect?.value};this.filterInput&&(e.value=this.filterInput.value),e.condition&&tk[this.column.dataType].includes(e.condition)&&this.applyFilter(e)}async applyFilter(e){let t=this.column.viewport,i=t.grid.querying,s=i.filtering,n=this.column.id,r=t.grid.accessibility,{value:o}=e;tH(this.column,"beforeFilter",{target:this.column});let l=this.isFilteringApplied(),a=this.clearButton;if(a&&l===a.disabled&&(a.disabled=!l),tP(o)&&""!==o&&"number"!=typeof o)switch(this.column.dataType){case"number":e.value=Number(o);break;case"datetime":e.value=new Date(`${o}Z`).getTime()}this.column.update({filtering:e},!1),s.addColumnFilterCondition(n,e),this.disableInputIfNeeded(),await i.proceed(),await t.updateRows(),r?.userFilteredColumn({...e,columnId:n,rowsCount:t.rows.length},l),tH(this.column,"afterFilter",{target:this.column})}renderFilteringInput(e,t){this.filterInput=tz("input",{},e),this.filterInput.setAttribute("tabindex","-1");let i=this.column;this.filterInput.setAttribute("id","filter-input-"+i.viewport.grid.id+"-"+i.id),this.filterInput.placeholder="Value...","number"===t?this.filterInput.type="number":"datetime"===t?this.filterInput.type="date":(this.filterInput.type="text",this.filterInput.classList.add(tA.getClassName("icon"),tA.getClassName("iconSearch")));let{value:s}=this.column.options.filtering??{};for(let e of((s||0===s)&&(this.filterInput.value="datetime"===t?i.viewport.grid.time.dateFormat("%Y-%m-%d",Number(s)):s.toString()),this.filterSelect&&this.disableInputIfNeeded(),({string:["keyup"],number:["keyup","change"],datetime:["change"]})[t]))this.filterInput.addEventListener(e,()=>{this.applyFilterFromForm()})}renderConditionSelect(e){this.filterSelect=tz("select",{},e),this.filterSelect.setAttribute("tabindex","-1");let t=this.column;this.filterSelect.setAttribute("id","filter-select-"+t.viewport.grid.id+"-"+t.id);let i=tk[t.dataType],s=this.column.viewport.grid.options?.lang?.columnFilteringConditions??{};for(let e of i){let t=document.createElement("option");t.value=e,t.textContent=s[e]??tB.parseCamelCaseToReadable(e),this.filterSelect.appendChild(t)}let n=this.column.options.filtering?.condition;n&&i.includes(n)?this.filterSelect.value=n:this.filterSelect.value=i[0],this.disableInputIfNeeded(),this.filterSelect.addEventListener("change",()=>{this.applyFilterFromForm()})}renderClearButton(e){this.clearButton=tz("button",{className:tA.getClassName("clearFilterButton"),innerText:"Clear filter"},e),this.clearButton.setAttribute("tabindex","-1"),this.clearButton.disabled=!this.isFilteringApplied(),this.clearButton.addEventListener("click",()=>{this.set()})}isFilteringApplied(){let{filterSelect:e,filterInput:t}=this,{dataType:i}=this.column,s=e?.value;return"boolean"===i?"all"!==s:"empty"===s||"notEmpty"===s||t?.value!==""}disableInputIfNeeded(){let{filterSelect:e,filterInput:t}=this,i=e?.value;t&&e&&("empty"===i||"notEmpty"===i?t.disabled=!0:t?.disabled&&(t.disabled=!1))}}let{formatText:tF}=tD,tW=class{constructor(e){this.grid=e,this.element=document.createElement("div"),this.element.classList.add(tA.getClassName("visuallyHidden")),this.grid.container?.prepend(this.element),this.announcerElement=document.createElement("p"),this.announcerElement.setAttribute("aria-atomic","true"),this.announcerElement.setAttribute("aria-hidden","false")}addHeaderCellDescription(e,t){t&&e.setAttribute("aria-description",t)}announce(e,t=!1){this.announcerTimeout&&clearTimeout(this.announcerTimeout),this.announcerElement.remove(),this.announcerElement.setAttribute("aria-live",t?"assertive":"polite"),this.element.appendChild(this.announcerElement),requestAnimationFrame(()=>{this.announcerElement.textContent=e}),this.announcerTimeout=setTimeout(()=>{this.announcerElement.remove()},3e3)}userSortedColumn(e){let t,{options:i}=this.grid,s=i?.lang?.accessibility?.sorting?.announcements;if(i?.accessibility?.announcements?.sorting){switch(e){case"asc":t=s?.ascending;break;case"desc":t=s?.descending;break;default:t=s?.none}t&&this.announce(t,!0)}}setColumnSortState(e,t){e?.setAttribute("aria-sort",t)}userFilteredColumn(e,t){let i,{columnId:s,condition:n,value:r,rowsCount:o}=e,{lang:l,accessibility:a}=this.grid.options||{};if(!a?.announcements?.filtering)return;let h=l?.accessibility?.filtering?.announcements;if(t&&n){let e=tB.parseCamelCaseToReadable(n);i="empty"===n||"notEmpty"===n||"false"===n||"true"===n?tF(h?.emptyFilterApplied||"",{columnId:s,condition:e,rowsCount:o}):tF(h?.filterApplied||"",{columnId:s,condition:e,value:r?.toString()||"",rowsCount:o})}else i=tF(h?.filterCleared||"",{columnId:s,rowsCount:o});this.announce(i,!0)}addHighContrast(){let e=this.grid.options?.accessibility?.highContrastMode;!1!==e&&(tN.isHighContrastModeActive()||!0===e)&&this.grid.contentWrapper?.classList.add("hcg-theme-highcontrast")}setRowIndex(e,t){e.setAttribute("aria-rowindex",t)}setA11yOptions(){let e=this.grid,t=e.tableElement;t&&(t.setAttribute("aria-rowcount",e.dataTable?.getRowCount()||0),e.captionElement&&t.setAttribute("aria-labelledby",e.captionElement.id),e.descriptionElement&&t.setAttribute("aria-describedby",e.descriptionElement.id),this.addHighContrast())}destroy(){this.element.remove(),this.announcerElement.remove(),clearTimeout(this.announcerTimeout)}},{merge:tj}=q;!function(e){e.defaultOptions={accessibility:{enabled:!0,highContrastMode:"auto",announcements:{sorting:!0,filtering:!0}},lang:{accessibility:{sorting:{sortable:"Sortable.",announcements:{ascending:"Sorted ascending.",descending:"Sorted descending.",none:"Not sorted."}},pagination:{announcements:{pageSizeChange:"Page size changed to",pageChange:"Page changed to"}},filtering:{announcements:{filterApplied:"Filter applied for {columnId}, {condition} {value}. {rowsCount} results found.",emptyFilterApplied:"Filter applied for {columnId}, {condition} values. {rowsCount} results found.",filterCleared:"Filter cleared for {columnId}. {rowsCount} results found."}}},loading:"Loading...",noData:"No data to display",filter:"Filter",sortAscending:"Sort ascending",sortDescending:"Sort descending",column:"Column",setFilter:"Set filter",pagination:{pageInfo:"Showing {start} - {end} of {total} (page {currentPage} of {totalPages})",pageSizeLabel:"rows per page",firstPage:"First page",previousPage:"Previous page",nextPage:"Next page",lastPage:"Last page",pageNumber:"Page {page}",ellipsis:"More pages"},columnFilteringConditions:{contains:"Contains",doesNotContain:"Does not contain",equals:"Equals",doesNotEqual:"Does not equal",beginsWith:"Begins with",endsWith:"Ends with",empty:"Empty",notEmpty:"Not empty",greaterThan:"Greater than",greaterThanOrEqualTo:"Greater than or equal to",lessThan:"Less than",lessThanOrEqualTo:"Less than or equal to",before:"Before",after:"After",all:"All",true:"True",false:"False"}},time:{timezone:"UTC"},rendering:{rows:{bufferSize:10,minVisibleRows:2,strictHeights:!1,virtualizationThreshold:50},header:{enabled:!0},columns:{resizing:{enabled:!0,mode:"adjacent"}},theme:"hcg-theme-default"},columnDefaults:{sorting:{sortable:!0},filtering:{inline:!1}}},e.setOptions=function(t){tj(!0,e.defaultOptions,t)}}(l||(l={}));let tU=l,tV=class{constructor(e){this.cell=e}},{setHTMLContent:tq}=tD,{defined:tY}=q;class tK extends tV{constructor(e){super(e),this.add()}add(){this.update()}destroy(){this.cell.htmlElement.innerHTML=en.emptyHTML}update(){tq(this.cell.htmlElement,this.format())}format(){let{cell:e}=this,t=e.row.viewport.grid.options?.columnDefaults?.cells||{},{format:i,formatter:s}=e.column.options.cells||{},n=e.value;tY(n)||(n="");let r="";if(!i&&!s)return e.format(tK.defaultFormatsForDataTypes[e.column.dataType]);let o=t.format===i,l=t.formatter===s;return o&&l?r=s?s.call(e).toString():i?e.format(i):n+"":o?r=s?.call(e).toString()||n+"":l&&(r=i?e.format(i):n+""),r}}(tK||(tK={})).defaultFormatsForDataTypes={string:"{value}",number:"{value}",boolean:"{value}",datetime:"{value:%Y-%m-%d %H:%M:%S}"};let t$=tK,{defined:t_,fireEvent:tG}=q,{createOptionsProxy:tZ}=tD,tJ=class{constructor(e,t,i){var s;this.cells=[];let{grid:n}=e;if(this.id=t,this.index=i,this.viewport=e,this.loadData(),this.dataType=this.assumeDataType(),n.options&&!n.columnOptionsMap?.[t]){let e={id:t};((s=n.options).columns??(s.columns=[])).push(e),n.columnOptionsMap[t]={index:n.options.columns.length-1,options:e}}this.options=tZ(n.columnOptionsMap?.[t]?.options??{},n.options?.columnDefaults),this.options.filtering?.enabled&&(this.filtering=new tB(this)),tG(this,"afterInit")}loadData(){this.data=this.viewport.dataTable.getColumn(this.id,!0)}createCellContent(e){return new t$(e)}assumeDataType(){let{grid:e}=this.viewport,t=e.columnOptionsMap?.[this.id]?.options.dataType??e.options?.columnDefaults?.dataType;if(t)return t;if(!this.data)return"string";if(!Array.isArray(this.data))return"number";for(let e=0,t=Math.min(this.data.length,30);e<t;++e)if(t_(this.data[e]))switch(typeof this.data[e]){case"number":return"number";case"boolean":return"boolean";default:return"string"}return console.warn(`Column "${this.id}" contains too few data points with unambiguous types to correctly determine its dataType. It's recommended to set the \`dataType\` option for it.`),"string"}registerCell(e){e.htmlElement.setAttribute("data-column-id",this.id),this.options.className&&e.htmlElement.classList.add(...this.options.className.split(/\s+/g)),this.viewport.grid.hoveredColumnId===this.id&&e.htmlElement.classList.add(tA.getClassName("hoveredColumn")),this.cells.push(e)}unregisterCell(e){let t=this.cells.indexOf(e);t>-1&&this.cells.splice(t,1)}getWidth(){return this.viewport.columnResizing.getColumnWidth(this)}setHoveredState(e){this.header?.htmlElement?.classList[e?"add":"remove"](tA.getClassName("hoveredColumn"));for(let t=0,i=this.cells.length;t<i;++t)this.cells[t].htmlElement.classList[e?"add":"remove"](tA.getClassName("hoveredColumn"))}setSyncedState(e){this.header?.htmlElement?.classList[e?"add":"remove"](tA.getClassName("syncedColumn"));for(let t=0,i=this.cells.length;t<i;++t)this.cells[t].htmlElement.classList[e?"add":"remove"](tA.getClassName("syncedColumn"))}format(e){return eK.format(e,this,this.viewport.grid)}async update(e,t=!0){await this.viewport.grid.updateColumn(this.id,e,t)}},{makeHTMLElement:tX}=tD,tQ=class{constructor(e){this.cells=[],this.viewport=e,this.htmlElement=tX("tr",{}),this.htmlElement.setAttribute("role","row")}render(){let e=this.viewport.columns;for(let t=0,i=e.length;t<i;t++)this.createCell(e[t]).render();this.rendered=!0,this.viewport.virtualRows&&this.reflow()}reflow(){for(let e=0,t=this.cells.length;e<t;++e)this.cells[e].reflow();let e=this.viewport;e.rowsWidth&&(this.htmlElement.style.width=e.rowsWidth+"px")}destroy(){if(this.htmlElement){for(let e=this.cells.length-1;e>=0;--e)this.cells[e].destroy();this.htmlElement.remove()}}getCell(e){return this.cells.find(t=>t.column?.id===e)}registerCell(e){this.cells.push(e)}unregisterCell(e){let t=this.cells.indexOf(e);t>-1&&this.cells.splice(t,1)}},t0=class{constructor(e,t){this.cellEvents=[],this.column=t,this.row=e,this.row.registerCell(this),this.htmlElement=this.init(),this.htmlElement.setAttribute("tabindex","-1"),this.column?.options.cells?.editMode?.enabled||this.htmlElement.setAttribute("aria-readonly","true"),this.initEvents()}init(){let e=document.createElement("td",{});return e.setAttribute("role","gridcell"),e}initEvents(){this.cellEvents.push(["blur",()=>this.onBlur()]),this.cellEvents.push(["focus",()=>this.onFocus()]),this.cellEvents.push(["click",e=>{this.onClick(e)}]),this.cellEvents.push(["keydown",e=>{this.onKeyDown(e)}]),this.cellEvents.forEach(e=>{this.htmlElement.addEventListener(e[0],e[1])})}onFocus(){this.row.viewport.setFocusAnchorCell(this)}onBlur(){delete this.row.viewport.focusCursor}onKeyDown(e){let{row:t,column:i}=this;if(!i)return;let s=t.viewport,{header:n}=s,r={ArrowDown:[1,0],ArrowUp:[-1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]}[e.key];if("Enter"===e.key&&this.onClick(e),r){e.preventDefault(),e.stopPropagation();let{header:o}=s,l=(()=>{if(void 0!==t.index)return t.index-s.rows[0].index;let e=t.level;return n&&void 0!==e?Math.max(e,n.levels)-n.rows.length-1:0})()+r[0];if(l<0&&o){let e=o.rows.length+l;e+1>o.levels?o.rows[e].cells[i.index+r[1]]?.htmlElement.focus():s.columns[i.index+r[1]]?.header?.htmlElement.focus();return}let a=s.rows[l];a&&a.cells[i.index+r[1]]?.htmlElement.focus()}}render(){this.row.htmlElement.appendChild(this.htmlElement),this.reflow()}reflow(){let e=this.column;if(!e)return;let t=this.htmlElement.style;t.width=t.maxWidth=e.getWidth()+"px"}format(e){return eK.format(e,this,this.row.viewport.grid)}setCustomClassName(e){let t=this.htmlElement;if(this.customClassName&&t.classList.remove(...this.customClassName.split(/\s+/g)),!e)return void delete this.customClassName;let i=this.format(e);if(!i)return void delete this.customClassName;t.classList.add(...i.split(/\s+/g)),this.customClassName=i}destroy(){this.cellEvents.forEach(e=>{this.htmlElement.removeEventListener(e[0],e[1])}),this.column?.unregisterCell(this),this.row.unregisterCell(this),this.htmlElement.remove()}},{fireEvent:t1}=q,t3=class{constructor(e,t){this.toggle=()=>{let e=this.column.viewport.grid.querying.sorting,t=(e.currentSorting?.columnId===this.column.id?e.currentSorting.order:null)||"none";this.setOrder({none:"asc",asc:"desc",desc:null}[t])},this.column=e,this.headerCellElement=t,this.addHeaderElementAttributes(),e.options.sorting?.sortable&&t.classList.add(tA.getClassName("columnSortable"))}addHeaderElementAttributes(){let e=this.column,t=e.viewport.grid.accessibility,i=e.options.sorting,{currentSorting:s}=e.viewport.grid.querying.sorting,n=tA.getClassName("columnSortedAsc"),r=tA.getClassName("columnSortedDesc"),o=this.headerCellElement;if(s?.columnId!==e.id||!s?.order){o.classList.remove(n),o.classList.remove(r),i?.sortable&&t?.setColumnSortState(o,"none");return}switch(s?.order){case"asc":o.classList.add(n),o.classList.remove(r),t?.setColumnSortState(o,"ascending");break;case"desc":o.classList.remove(n),o.classList.add(r),t?.setColumnSortState(o,"descending")}}updateColumnOptions(e){let t=e.viewport.grid.querying.sorting.currentSorting?.order;e.id===this.column.id&&t?e.update({sorting:{order:t}},!1):(delete e.options.sorting?.order,e.options.sorting&&Object.keys(e.options.sorting).length<1&&delete e.options.sorting)}async setOrder(e){let t=this.column.viewport;if(t.validator?.errorCell)return;let i=t.grid.querying.sorting,s=t.grid.accessibility;for(let s of([this.column,t.grid].forEach(t=>{t1(t,"beforeSort",{target:this.column,order:e})}),i.setSorting(e,this.column.id),await t.updateRows(),t.columns))this.updateColumnOptions(s),s.sorting?.addHeaderElementAttributes();s?.userSortedColumn(e),[this.column,t.grid].forEach(t=>{t1(t,"afterSort",{target:this.column,order:e})})}};!function(e){e.icons={filter:{width:16,height:14,children:[{d:"M2.2571 2.77791C1.75287 2.21437 1.50076 1.93259 1.49125 1.69312C1.48299 1.48509 1.57238 1.28515 1.73292 1.15259C1.91773 1 2.29583 1 3.05202 1H12.9473C13.7035 1 14.0816 1 14.2664 1.15259C14.427 1.28515 14.5163 1.48509 14.5081 1.69312C14.4986 1.93259 14.2465 2.21437 13.7422 2.77791L9.93808 7.02962C9.83756 7.14196 9.78731 7.19813 9.75147 7.26205C9.71969 7.31875 9.69637 7.37978 9.68225 7.44323C9.66633 7.51476 9.66633 7.59013 9.66633 7.74087V11.3056C9.66633 11.436 9.66633 11.5011 9.64531 11.5575C9.62673 11.6073 9.59651 11.6519 9.55717 11.6877C9.51265 11.7281 9.45213 11.7524 9.33108 11.8008L7.06441 12.7074C6.81938 12.8054 6.69687 12.8545 6.59852 12.834C6.51251 12.8161 6.43704 12.765 6.3885 12.6918C6.333 12.6081 6.333 12.4762 6.333 12.2122V7.74087C6.333 7.59013 6.333 7.51476 6.31708 7.44323C6.30296 7.37978 6.27964 7.31875 6.24786 7.26205C6.21203 7.19813 6.16177 7.14196 6.06126 7.02962L2.2571 2.77791Z"}]},menu:{width:4,height:12,children:[{d:"M2.00016 6.66675C2.36835 6.66675 2.66683 6.36827 2.66683 6.00008C2.66683 5.63189 2.36835 5.33341 2.00016 5.33341C1.63197 5.33341 1.3335 5.63189 1.3335 6.00008C1.3335 6.36827 1.63197 6.66675 2.00016 6.66675Z"},{d:"M2.00016 2.00008C2.36835 2.00008 2.66683 1.7016 2.66683 1.33341C2.66683 0.965225 2.36835 0.666748 2.00016 0.666748C1.63197 0.666748 1.3335 0.965225 1.3335 1.33341C1.3335 1.7016 1.63197 2.00008 2.00016 2.00008Z"},{d:"M2.00016 11.3334C2.36835 11.3334 2.66683 11.0349 2.66683 10.6667C2.66683 10.2986 2.36835 10.0001 2.00016 10.0001C1.63197 10.0001 1.3335 10.2986 1.3335 10.6667C1.3335 11.0349 1.63197 11.3334 2.00016 11.3334Z"}]},chevronRight:{width:6,height:10,children:[{d:"M1 9L5 5L1 1","stroke-width":1.34}]},checkmark:{width:12,height:9,children:[{d:"M11.3332 1L3.99984 8.33333L0.666504 5"}]},upDownArrows:{width:14,height:12,children:[{d:"M3.66667 0.666748V11.3334M3.66667 11.3334L1 8.66675M3.66667 11.3334L6.33333 8.66675M10.3333 11.3334V0.666748M10.3333 0.666748L7.66667 3.33341M10.3333 0.666748L13 3.33341"}]},sortAsc:{width:14,height:12,children:[{d:"M3.66667 0.666748V11.3334M3.66667 11.3334L1 8.66675M3.66667 11.3334L6.33333 8.66675",opacity:.2},{d:"M 10.3333 11.3334 V 0.6667 M 10.3333 0.6667 L 7.6667 3.3334 M 10.3333 0.6667 L 13 3.3334"}]},sortDesc:{width:14,height:12,children:[{d:"M3.66667 0.666748V11.3334M3.66667 11.3334L1 8.66675M3.66667 11.3334L6.33333 8.66675"},{d:"M 10.3333 11.3334 V 0.6667 M 10.3333 0.6667 L 7.6667 3.3334 M 10.3333 0.6667 L 13 3.3334",opacity:.2}]}},e.pathDefaults={stroke:"currentColor","stroke-width":1.33,"stroke-linecap":"round","stroke-linejoin":"round"},e.createGridIcon=function(t,i=tA.getClassName("icon")){let s=e=>document.createElementNS("http://www.w3.org/2000/svg",e),{width:n=16,height:r=16,viewBox:o,fill:l,children:a}=e.icons[t],h=s("svg");for(let t of(h.setAttribute("width",n.toString()),h.setAttribute("height",r.toString()),h.setAttribute("viewBox",o??`0 0 ${n} ${r}`),h.setAttribute("fill",l??"none"),a??[])){let i=s("path");for(let s of new Set([...Object.keys(t),...Object.keys(e.pathDefaults)])){let n=t[s]??e.pathDefaults[s];void 0!==n&&i.setAttribute(s,n.toString())}h.appendChild(i)}return h.classList.add(i),h}}(a||(a={}));let t6=a,{makeHTMLElement:t2}=tD,t5=class{constructor(e){this.eventListenerDestroyers=[],this.isActive=!1,this.options=e}add(e){let t=this.options;this.toolbar=e,e.buttons.push(this);let i=t2("span",t.classNameKey&&{className:tA.getClassName(t.classNameKey)},e.container);this.wrapper=i;let s=this.buttonEl=t2("button",{className:tA.getClassName("button")+(this.isActive?" active":"")},i);return s.setAttribute("type","button"),s.setAttribute("tabindex","-1"),this.setA11yAttributes(s),this.setIcon(t.icon),this.refreshState(),this.addEventListeners(),this}setA11yAttributes(e){let{accessibility:t,tooltip:i}=this.options,{ariaLabel:s,ariaExpanded:n,ariaControls:r}=t||{};i&&(e.title=i),s&&e.setAttribute("aria-label",s),"boolean"==typeof n&&e.setAttribute("aria-expanded",n),r&&e.setAttribute("aria-controls",r)}focus(){this.buttonEl?.focus();let e=this.toolbar;e&&(e.focusCursor=e.buttons.indexOf(this))}setIcon(e){this.icon?.remove(),this.icon=t6.createGridIcon(e),this.buttonEl?.appendChild(this.icon)}setActive(e){this.isActive=e,this.buttonEl?.classList.toggle("active",e),this.renderActiveIndicator(e)}setHighlighted(e){this.buttonEl?.classList.toggle("highlighted",e),"boolean"==typeof this.options.accessibility?.ariaExpanded&&this.buttonEl?.setAttribute("aria-expanded",e)}destroy(){this.removeEventListeners(),this.wrapper?.remove(),this.toolbar?.buttons.splice(this.toolbar.buttons.indexOf(this),1),delete this.toolbar}refreshState(){}clickHandler(e){this.options.onClick?.(e,this)}renderActiveIndicator(e){let t=this.buttonEl;if(t){if(this.activeIndicator?.remove(),!e)return void delete this.activeIndicator;this.activeIndicator=t2("div",{className:tA.getClassName("toolbarButtonActiveIndicator")},t)}}addEventListeners(){let e=e=>{this.clickHandler(e)};this.buttonEl?.addEventListener("click",e),this.eventListenerDestroyers.push(()=>{this.buttonEl?.removeEventListener("click",e)})}removeEventListeners(){for(let e of this.eventListenerDestroyers)e();this.eventListenerDestroyers.length=0}};!function(e){e.isFiltered=function(e){let{condition:t,value:i}=e.options.filtering||{};return!!(t&&(["empty","notEmpty","true","false"].includes(t)||void 0!==i&&""!==i))},e.isSorted=function(e,t){let{currentSorting:i}=e.viewport.grid.querying.sorting||{};return i?.columnId===e.id&&(t?i?.order===t:!!i?.order)}}(h||(h={}));let t7=h,{addEvent:t4}=q,t9=class extends t5{constructor(){super({icon:"upDownArrows",classNameKey:"headerCellSortIcon",accessibility:{ariaLabel:"sort"}})}clickHandler(e){super.clickHandler(e),this.toolbar?.column.sorting?.toggle()}refreshState(){let e=this.toolbar?.column;if(!e)return;if(!t7.isSorted(e)){this.setActive(!1),this.setIcon("upDownArrows");return}let{currentSorting:t}=e.viewport.grid.querying.sorting;this.setActive(!0),this.setIcon(t?.order==="asc"?"sortAsc":"sortDesc")}addEventListeners(){super.addEventListeners();let e=this.toolbar?.column;e&&this.eventListenerDestroyers.push(t4(e.viewport.grid,"afterSort",()=>this.refreshState()))}renderActiveIndicator(){}},{makeHTMLElement:t8}=tD,{fireEvent:ie}=q,it=class{constructor(e,t,i){this.isVisible=!1,this.eventListenerDestroyers=[],this.grid=e,this.button=t,this.options=i||{}}show(e){if(this.container)return;this.button?.setHighlighted(!0),this.container=t8("div",{className:tA.getClassName("popup")}),this.content=t8("div",{className:tA.getClassName("popupContent")});let{header:t}=this.options;t&&this.addHeader(t.label,t.category),this.renderContent(this.content),this.container.appendChild(this.content),this.anchorElement=e,this.isVisible=!0,this.grid.contentWrapper?.appendChild(this.container),this.position(e),this.addEventListeners(),this.grid.popups.add(this),ie(this,"afterShow")}hide(){this.container&&(this.grid.popups.delete(this),this.isVisible=!1,this.removeEventListeners(),this.container.remove(),delete this.container,delete this.content,this.button?.setHighlighted(!1),ie(this,"afterHide"))}toggle(e){this.isVisible?this.hide():this.show(e)}reflow(){this.anchorElement?.isConnected?this.position(this.anchorElement):this.hide()}position(e){let t=this.grid.contentWrapper;if(!this.container||!this.content||!t)return;let i=this.options.nextToAnchor||!1,s=this.container.getBoundingClientRect(),n=t.getBoundingClientRect(),r=e?.getBoundingClientRect()??n,o=i?r.top:r.bottom+4,l=i?r.right+3:r.left;l+s.width>n.width&&(l=-s.width+(i?r.left+4:r.right)),l<n.left&&(l=n.left),this.container.style.top=`${o-n.top}px`,this.container.style.left=`${l-n.left}px`;let a=this.content.getBoundingClientRect();a.height+a.top-n.top>n.height?(this.container.style.top="auto",this.container.style.bottom="0"):(this.container.style.top=`${o-n.top}px`,this.container.style.bottom="auto")}addHeader(e,t){if(!this.content)return;let i=t8("div",{className:tA.getClassName("menuHeader")},this.content);return t&&t8("span",{className:tA.getClassName("menuHeaderCategory"),innerText:t+" "},i),t8("span",{className:tA.getClassName("menuHeaderName"),innerText:e},i),i}onKeyDown(e){("Escape"===e.key||"Tab"===e.key&&e.shiftKey)&&(e.preventDefault(),this.hide(),this.button?.focus())}onClickOutside(e){this.container?.contains(e.target)||this.anchorElement?.contains(e.target)||this.hide()}addEventListeners(){let e=this.container;if(!e)return;let t=e=>{this.onClickOutside(e)},i=e=>{this.onKeyDown(e)};document.addEventListener("mousedown",t),e.addEventListener("keydown",i),this.eventListenerDestroyers.push(()=>{document.removeEventListener("mousedown",t),e.removeEventListener("keydown",i)})}removeEventListeners(){for(let e of this.eventListenerDestroyers)e();this.eventListenerDestroyers.length=0}},{merge:ii}=q,is=class extends it{constructor(e,t,i){let s=e.column.viewport.grid;super(s,t,ii({header:{category:s.options?.lang?.setFilter,label:e.column.header?.value||""}},i)),this.filtering=e}show(e){super.show(e),this.filtering.filterSelect?.focus()}renderContent(e){this.filtering.renderFilteringContent(e)}onKeyDown(e){super.onKeyDown(e),this.filtering.onKeyDown(e)}},{addEvent:ir}=q,io=class extends t5{constructor(){super({icon:"filter",classNameKey:"headerCellFilterIcon",accessibility:{ariaLabel:"filter",ariaExpanded:!1,ariaControls:"filter-popup"}})}refreshState(){let e=this.toolbar?.column;e&&this.setActive(t7.isFiltered(e))}addEventListeners(){super.addEventListeners();let e=this.toolbar;e&&this.eventListenerDestroyers.push(ir(e.column,"afterFilter",()=>{this.refreshState()}))}clickHandler(e){super.clickHandler(e);let t=this.toolbar?.column.filtering;t&&(this.popup||(this.popup=new is(t,this)),this.popup.toggle(this.wrapper))}},{makeHTMLElement:il}=tD,ia=class extends it{constructor(){super(...arguments),this.buttons=[],this.focusCursor=0}ensureItemsContainer(){if(this.content)return this.itemsContainer||(this.itemsContainer=il("ul",{className:tA.getClassName("menuContainer")},this.content)),this.itemsContainer}show(e){super.show(e),this.buttons[0]?.focus()}hide(){for(let e of this.buttons)e.destroy();this.buttons.length=0,this.itemsContainer?.remove(),delete this.itemsContainer,super.hide()}addDivider(){if(this.ensureItemsContainer())return il("li",{className:tA.getClassName("menuDivider")},this.itemsContainer)}onClickOutside(e){let t=this.buttons;for(let i=0,s=t.length;i<s;++i)if(t[i].popup?.container?.contains(e.target))return;super.onClickOutside(e)}onKeyDown(e){super.onKeyDown(e);let t=this.buttons.length,i=this.focusCursor;switch(e.key){case"ArrowUp":case"ArrowLeft":e.preventDefault(),this.buttons[Math.abs((i-1+t)%t)].focus();break;case"ArrowDown":case"ArrowRight":e.preventDefault(),this.buttons[(i+1)%t].focus()}}},{makeHTMLElement:ih}=tD,id=class{constructor(e){this.eventListenerDestroyers=[],this.isActive=!1,this.options=e}add(e){let t=this.options;this.contextMenu=e,e.buttons.push(this);let i=e.ensureItemsContainer();if(!i)return;let s=this.wrapper=ih("li",t.classNameKey&&{className:tA.getClassName(t.classNameKey)},i),n=this.buttonEl=ih("button",{className:tA.getClassName("menuItem")},s),r=this.iconWrapper=ih("span",{className:tA.getClassName("menuItemIcon")},n);this.spanEl=ih("span",{className:tA.getClassName("menuItemLabel"),innerText:t.label||""},n);let o=ih("span",{className:tA.getClassName("menuItemIcon")},n);return r.setAttribute("aria-hidden","true"),o.setAttribute("aria-hidden","true"),n.setAttribute("type","button"),n.setAttribute("tabindex","-1"),this.refreshState(),t.chevron&&o.appendChild(t6.createGridIcon("chevronRight")),t.icon&&this.setIcon(t.icon),this.addEventListeners(),this}focus(){this.buttonEl?.focus();let e=this.contextMenu;e&&(e.focusCursor=e.buttons.indexOf(this))}setLabel(e){this.spanEl&&(this.spanEl.innerText=e)}setIcon(e){this.icon?.remove(),e&&(this.icon=t6.createGridIcon(e),this.iconWrapper?.appendChild(this.icon))}setActive(e){this.isActive=e,this.buttonEl?.classList.toggle("active",e);let{activeIcon:t,icon:i}=this.options;t&&this.setIcon(e?t:i)}setHighlighted(e){this.buttonEl?.classList.toggle("highlighted",e)}destroy(){this.removeEventListeners(),this.wrapper?.remove();let e=this.contextMenu;e&&(e.buttons.splice(e.buttons.indexOf(this),1),delete this.contextMenu)}refreshState(){}clickHandler(e){this.options.onClick?.(e,this)}addEventListeners(){let e=e=>{this.clickHandler(e)};this.buttonEl?.addEventListener("click",e),this.eventListenerDestroyers.push(()=>{this.buttonEl?.removeEventListener("click",e)})}removeEventListeners(){for(let e of this.eventListenerDestroyers)e();this.eventListenerDestroyers.length=0}},{addEvent:iu}=q,ic=class extends id{constructor(e){super({label:e.filter,icon:"filter",chevron:!0})}refreshState(){let e=this.contextMenu?.button.toolbar?.column;e&&this.setActive(t7.isFiltered(e))}addEventListeners(){super.addEventListeners();let e=this.contextMenu?.button.toolbar;e&&this.eventListenerDestroyers.push(iu(e.column,"afterFilter",()=>{this.refreshState()}))}clickHandler(e){super.clickHandler(e);let t=this.contextMenu?.button.toolbar?.column.filtering;t&&(this.popup||(this.popup=new is(t,this,{nextToAnchor:!0})),this.popup.toggle(this.wrapper))}},{addEvent:ip}=q,im=class extends id{constructor(e,t){super({icon:"asc"===t?"sortAsc":"sortDesc"}),this.direction=t,this.options.label=e["asc"===t?"sortAscending":"sortDescending"]}refreshState(){let e=this.contextMenu?.button?.toolbar?.column;e&&this.setActive(t7.isSorted(e,this.direction))}addEventListeners(){super.addEventListeners();let e=this.contextMenu?.button?.toolbar?.column;e&&this.eventListenerDestroyers.push(ip(e.viewport.grid,"afterSort",()=>this.refreshState()))}clickHandler(e){super.clickHandler(e);let t=this.contextMenu?.button?.toolbar?.column.sorting;t&&t.setOrder(this.isActive?null:this.direction)}},ig=class extends ia{constructor(e,t){super(e,t),this.button=t}renderContent(){let e=this.grid.options?.lang||{},t=this.button.toolbar?.column.options||{},i=t.filtering?.enabled&&!t.filtering.inline,s=t.sorting?.sortable;this.addHeader(this.button.toolbar?.column.header?.value||"",e.column),s&&(new im(e,"desc").add(this),new im(e,"asc").add(this),i&&this.addDivider()),i&&new ic(e||{}).add(this)}},{addEvent:iy}=q,iw=class extends t5{constructor(){super({icon:"menu",classNameKey:"headerCellMenuIcon"})}clickHandler(e){super.clickHandler(e);let t=this.toolbar?.column.viewport.grid;t&&(this.popup||(this.popup=new ig(t,this)),this.popup.toggle(this.wrapper))}refreshState(){let e=this.toolbar?.column;e&&this.setActive(t7.isSorted(e)||t7.isFiltered(e))}addEventListeners(){super.addEventListeners();let e=this.toolbar?.column;e&&this.eventListenerDestroyers.push(iy(e.viewport.grid,"afterSort",()=>{this.refreshState()}),iy(e,"afterFilter",()=>{this.refreshState()}))}},{makeHTMLElement:ib}=tD,{getStyle:iv}=q;class iC{constructor(e){this.buttons=[],this.focusCursor=0,this.eventListenerDestroyers=[],this.column=e}renderFull(){let e=this.column.options;e.sorting?.sortable&&new t9().add(this),e.filtering?.enabled&&!e.filtering.inline&&new io().add(this)}renderMinimized(){let e=this.column.options;(e.sorting?.sortable||e.filtering?.enabled&&!e.filtering.inline)&&new iw().add(this)}add(){let e=this.column.header;if(!e?.container)return;this.columnResizeObserver&&(this.columnResizeObserver.disconnect(),delete this.columnResizeObserver),this.columnResizeObserver=new ResizeObserver(()=>this.reflow()),this.columnResizeObserver.observe(e.container);let t=this.container=ib("div",{className:tA.getClassName("headerCellIcons")});e.container.appendChild(t);let i=e=>{this.keyDownHandler(e)};t.addEventListener("keydown",i),this.eventListenerDestroyers.push(()=>{t.removeEventListener("keydown",i)})}clearButtons(){let{buttons:e}=this;for(;e.length>0;)e[e.length-1].destroy()}reflow(){let e=this.column.getWidth()<=iC.MINIMIZED_COLUMN_WIDTH;if(e!==this.isMinimized&&(this.isMinimized=e,this.clearButtons(),e?this.renderMinimized():this.renderFull()),!e)return;let t=this.column.header?.htmlElement,i=this.container,s=t?.offsetWidth||0,n=this.buttons[0]?.wrapper?.offsetWidth||0,r=s-((t&&iv(t,"padding-left",!0)||0)+(t&&iv(t,"padding-right",!0)||0))<n+((i&&iv(i,"margin-left",!0)||0)+(i&&iv(i,"margin-right",!0)||0));this.isMenuCentered!==r&&(this.isMenuCentered=r,this.column.header?.container?.classList.toggle(tA.getClassName("noWidth"),r))}destroy(){for(let e of this.eventListenerDestroyers)e();this.eventListenerDestroyers.length=0,this.columnResizeObserver?.disconnect(),delete this.columnResizeObserver}focus(){this.buttons[0]?.focus()}keyDownHandler(e){let t=this.buttons.length,i=this.focusCursor;switch(e.key){case"ArrowUp":case"ArrowLeft":this.buttons[Math.abs((i-1+t)%t)].focus();break;case"ArrowDown":case"ArrowRight":this.buttons[(i+1)%t].focus();break;case"Escape":this.column.header?.htmlElement.focus()}}}iC.MINIMIZED_COLUMN_WIDTH=120;let{makeHTMLElement:iE,setHTMLContent:iT,createOptionsProxy:ix}=tD,{fireEvent:iS,isString:iM}=q,iL=class extends t0{constructor(e,t,i){super(e,t),this.superColumnOptions={},this.columns=[],this.value="";let s=this.row.viewport.header;if(!s)throw Error("No header found.");if(this.tableHeader=s,t)t.header=this,this.columns.push(t);else if(i){let e=this.row.viewport;for(let t of e.grid.getColumnIds(i,!0)){let i=e.getColumn(t);i&&this.columns.push(i)}}}init(){let e=document.createElement("th",{});return e.classList.add(tA.getClassName("headerCell")),e.setAttribute("role","columnheader"),e}render(){let{column:e}=this,t=ix(this.superColumnOptions,e?.options),i=t.header||{};i.formatter?this.value=i.formatter.call(this).toString():iM(i.format)?this.value=e?e.format(i.format):i.format:this.value=e?.id||"",this.row.htmlElement.appendChild(this.htmlElement);let s=this.container=iE("div",{className:tA.getClassName("headerCellContainer")},this.htmlElement);this.headerContent=iE("span",{className:tA.getClassName("headerCellContent")},s),iT(this.headerContent,this.value),this.htmlElement.setAttribute("scope","col"),this.superColumnOptions.className&&this.htmlElement.classList.add(...this.superColumnOptions.className.split(/\s+/g)),e&&(this.htmlElement.setAttribute("data-column-id",e.id),this.htmlElement.setAttribute("aria-label",e.id),e.options.className&&this.htmlElement.classList.add(...e.options.className.split(/\s+/g)),e.viewport.columnsResizer?.renderColumnDragHandles(e,this),this.toolbar=new iC(e),this.toolbar.add(),this.initColumnSorting()),this.setCustomClassName(t.header?.className),e?.dataType==="number"&&this.setCustomClassName(tA.getClassName("rightAlign")),iS(this,"afterRender",{column:e})}reflow(){let e=this.htmlElement;if(!e)return;let t=0;for(let e of this.columns)t+=e.getWidth()||0;e.style.width=e.style.maxWidth=t+"px",this.toolbar?.reflow()}onKeyDown(e){if(this.column&&e.target===this.htmlElement){if("Enter"===e.key){this.toolbar?.focus(),e.preventDefault();return}super.onKeyDown(e)}}onClick(e){let t=this.column;!t||e.target!==this.htmlElement&&e.target!==t.header?.headerContent||t.viewport.columnsResizer?.isResizing||(t.options.sorting?.sortable&&t.sorting?.toggle(),iS(this,"click",{originalEvent:e,column:this.column}))}initColumnSorting(){let{column:e}=this;e&&(e.sorting=new t3(e,this.htmlElement))}isLastColumn(){let e=this.row.viewport;return e.columns[e.columns.length-1]===this.columns?.[this.columns.length-1]}destroy(){this.toolbar?.destroy(),super.destroy()}},{isString:iO}=q,iR=class extends tQ{constructor(e,t){super(e),this.level=t,this.setRowAttributes()}createCell(e,t){return new iL(this,e,t)}renderContent(e){let t=this.viewport.grid.options?.header,i=this.viewport,s=i.grid.enabledColumns||[];if(i.theadElement?.appendChild(this.htmlElement),this.htmlElement.classList.add(tA.getClassName("headerRow")),t){let n=this.getColumnsAtLevel(t,e);for(let t=0,r=n.length;t<r;t++){let r=n[t],o="string"==typeof r,l=!o&&r.columns?i.grid.getColumnIds(r.columns).length:0,a=o?r:r.columnId,h=a?i.getColumn(a||""):void 0,d=o?void 0:r.format,u=o?void 0:r.className;if(a&&s&&0>s.indexOf(a)||!h&&0===l)continue;let c=this.createCell(h,o?void 0:r.columns);o||i.grid.accessibility?.addHeaderCellDescription(c.htmlElement,r.accessibility?.description),iO(d)&&(c.superColumnOptions.header||(c.superColumnOptions.header={}),c.superColumnOptions.header.format=d),u&&(c.superColumnOptions.className=u),h?.index===0&&0===t&&c.htmlElement.classList.add(tA.getClassName("columnFirst")),c.render(),a?c.htmlElement.setAttribute("rowSpan",(this.viewport.header?.levels||1)-e):l>1&&c.htmlElement.setAttribute("colSpan",l)}}else super.render();this.setLastCellClass()}reflow(){for(let e=0,t=this.cells.length;e<t;e++)this.cells[e].reflow()}setLastCellClass(){let e=this.cells[this.cells.length-1];e.isLastColumn()&&e.htmlElement.classList.add(tA.getClassName("lastHeaderCellInRow"))}getColumnsAtLevel(e,t,i=0){let s=[];for(let n of e)i===t&&s.push(n),"string"!=typeof n&&n.columns&&(s=s.concat(this.getColumnsAtLevel(n.columns,t,i+1)));return s}setRowAttributes(){this.viewport.grid.accessibility?.setRowIndex(this.htmlElement,this.level)}},{fireEvent:iN}=q,iA=class extends iL{constructor(e,t){let i=t.header;super(e,t),t.header=i}render(){let{column:e}=this;e&&(this.row.htmlElement.appendChild(this.htmlElement),this.htmlElement.setAttribute("scope","col"),this.htmlElement.setAttribute("data-column-id",e.id),e.options.className&&this.htmlElement.classList.add(...e.options.className.split(/\s+/g)),this.setCustomClassName(e.options.header?.className),iN(this,"afterRender",{column:e,filtering:!0}))}onKeyDown(e){this.column.filtering?.onKeyDown(e),e.target===this.htmlElement?"Enter"===e.key?this.column.filtering?.filterSelect?.focus():super.onKeyDown(e):"Escape"===e.key&&this.htmlElement.focus()}onClick(e){e.target===this.htmlElement&&this.htmlElement.focus()}},iI=class extends iR{constructor(e){super(e,(e.header?.levels??0)+1)}createCell(e){return new iA(this,e)}renderContent(){let e=this.viewport,t=e.grid.enabledColumns||[];e.theadElement?.appendChild(this.htmlElement),this.htmlElement.classList.add(tA.getClassName("headerRow"));for(let i=0,s=e.columns.length;i<s;i++){let s=e.columns[i];if(t?.indexOf(s.id)<0)continue;let n=this.createCell(s);n.render(),s.options.filtering?.inline&&s.filtering?.renderFilteringContent(n.htmlElement)}let i=this.cells[0];i.column?.index===0&&this.cells[0].htmlElement.classList.add(tA.getClassName("columnFirst")),this.setLastCellClass()}},iD=class{constructor(e){this.columns=[],this.rows=[],this.levels=1,this.viewport=e,this.columns=e.columns,e.grid.options?.header&&(this.levels=this.getRowLevels(e.grid.options?.header))}render(){let e=this.viewport;if(e.grid.enabledColumns){for(let t=0,i=this.levels;t<i;t++){let i=new iR(e,t+1);i.renderContent(t),this.rows.push(i)}if(e.columns.some(e=>e.options.filtering?.enabled&&e.options.filtering.inline||!1)){let t=new iI(e);t.renderContent(),this.rows.push(t)}}}reflow(){let e=this.viewport;if(!e.theadElement)return;let{clientWidth:t,offsetWidth:i}=e.tbodyElement;for(let e of this.rows)e.reflow();e.rowsWidth&&(e.theadElement.style.width=Math.max(e.rowsWidth,t)+(i-t)+"px")}getRowLevels(e){let t=0;for(let i of e)if("string"!=typeof i&&i.columns){let e=this.getRowLevels(i.columns);e>t&&(t=e)}return t+1}scrollHorizontally(e){let t=this.viewport.theadElement;t&&(t.style.transform=`translateX(${-e}px)`)}destroy(){for(let e of this.rows)e.destroy()}},{fireEvent:ik}=q,iP=class extends t0{constructor(e,t){super(e,t),this.column=t,this.row=e,this.column.registerCell(this)}render(){super.render(),this.setValue()}async setValue(e=this.column.data?.[this.row.index],t=!1){this.value=e,t&&await this.updateDataTable()||(this.content?this.content.update():this.content=this.column.createCellContent(this),this.htmlElement.setAttribute("data-value",this.value+""),this.setCustomClassName(this.column.options.cells?.className),"number"===this.column.dataType&&this.setCustomClassName(tA.getClassName("rightAlign")),ik(this,"afterRender",{target:this}))}async updateDataTable(){if(this.column.data?.[this.row.index]===this.value)return!1;let e=this.column.viewport,{dataTable:t}=e.grid,i=this.row.id&&t?.getLocalRowIndex(this.row.id);return!!t&&void 0!==i&&(this.row.data[this.column.id]=this.value,t.setCell(this.column.id,i,this.value),e.grid.dataTable!==e.grid.presentationTable&&(await e.updateRows(),!0))}initEvents(){this.cellEvents.push(["dblclick",e=>this.onDblClick(e)]),this.cellEvents.push(["mouseout",()=>this.onMouseOut()]),this.cellEvents.push(["mouseover",()=>this.onMouseOver()]),this.cellEvents.push(["mousedown",e=>{this.onMouseDown(e)}]),super.initEvents()}onFocus(){super.onFocus(),this.row.viewport.focusCursor=[this.row.index,this.column.index]}onMouseDown(e){e.target===this.htmlElement&&this.htmlElement.focus(),ik(this,"mouseDown",{target:this,originalEvent:e})}onMouseOver(){let{grid:e}=this.row.viewport;e.hoverRow(this.row.index),e.hoverColumn(this.column.id),ik(this,"mouseOver",{target:this})}onMouseOut(){let{grid:e}=this.row.viewport;e.hoverRow(),e.hoverColumn(),ik(this,"mouseOut",{target:this})}onDblClick(e){ik(this,"dblClick",{target:this,originalEvent:e})}onClick(){ik(this,"click",{target:this})}onKeyDown(e){e.target===this.htmlElement&&(ik(this,"keyDown",{target:this,originalEvent:e}),super.onKeyDown(e))}destroy(){this.content?.destroy(),delete this.content,super.destroy()}},iH=class extends tQ{constructor(e,t){super(e),this.data={},this.translateY=0,this.index=t,this.id=e.dataTable.getOriginalRowIndex(t),this.loadData(),this.setRowAttributes()}createCell(e){return new iP(this,e)}loadData(){let e=this.viewport.dataTable.getRowObject(this.index);e&&(this.data=e)}update(){this.id=this.viewport.dataTable.getOriginalRowIndex(this.index),this.updateRowAttributes(),this.loadData();for(let e=0,t=this.cells.length;e<t;++e)this.cells[e].setValue();this.reflow()}setHoveredState(e){this.htmlElement.classList[e?"add":"remove"](tA.getClassName("hoveredRow")),e&&(this.viewport.grid.hoveredRowIndex=this.index)}setSyncedState(e){this.htmlElement.classList[e?"add":"remove"](tA.getClassName("syncedRow")),e&&(this.viewport.grid.syncedRowIndex=this.index)}setRowAttributes(){let e=this.index,t=this.htmlElement;t.classList.add(tA.getClassName("rowElement")),t.setAttribute("data-row-index",e),this.updateRowAttributes(),t.classList.add(tA.getClassName(e%2?"rowEven":"rowOdd")),this.viewport.grid.hoveredRowIndex===e&&t.classList.add(tA.getClassName("hoveredRow")),this.viewport.grid.syncedRowIndex===e&&t.classList.add(tA.getClassName("syncedRow"))}updateRowAttributes(){let e=this.viewport,t=e.grid.accessibility,i=this.index,s=this.htmlElement;void 0!==this.id&&s.setAttribute("data-row-id",this.id),t?.setRowIndex(s,i+(e.header?.rows.length??0)+1)}setTranslateY(e){this.translateY=e,this.htmlElement.style.transform=`translateY(${e}px)`}getDefaultTopOffset(){return this.index*this.viewport.rowsVirtualizer.defaultRowHeight}},iz=class{constructor(e){this.rowCursor=0,this.preventScroll=!1,this.rowSettings=e.grid.options?.rendering?.rows,this.viewport=e,this.strictRowHeights=this.rowSettings.strictHeights,this.buffer=Math.max(this.rowSettings.bufferSize,0),this.defaultRowHeight=this.getDefaultRowHeight(),this.strictRowHeights&&e.tbodyElement.classList.add(tA.getClassName("rowsContentNowrap"))}initialRender(){this.viewport.virtualRows&&this.viewport.reflow(),this.renderRows(this.rowCursor),this.adjustRowHeights()}rerender(){let e,t=this.viewport.tbodyElement,i=this.viewport.rows,s=t.scrollLeft;if(i.length){e=t.scrollTop;for(let e=0,t=i.length;e<t;++e)i[e].destroy();i.length=0}this.renderRows(this.rowCursor),this.viewport.virtualRows&&(void 0!==e&&(t.scrollTop=e),this.scroll()),i=this.viewport.rows;for(let e=0,t=i.length;e<t;++e)i[e].reflow();t.scrollLeft=s}scroll(){let e=this.viewport.tbodyElement,{defaultRowHeight:t}=this,i=e.scrollTop;if(this.preventScroll){i<=e.scrollTop&&(this.preventScroll=!1),this.adjustBottomRowHeights();return}let s=Math.floor(e.scrollTop/t);this.rowCursor!==s&&this.renderRows(s),this.rowCursor=s,this.adjustRowHeights(),this.strictRowHeights||!(i>e.scrollTop)||this.preventScroll||(e.scrollTop=i,this.preventScroll=!0)}adjustBottomRowHeights(){let e=this.viewport.rows,t=e.length,i=e[t-1],s=i.translateY,n=s+i.htmlElement.offsetHeight,r=i.cells[0].htmlElement.offsetHeight;s=n-r,i.htmlElement.style.height=r+"px",i.setTranslateY(s);for(let e=0,t=i.cells.length;e<t;++e)i.cells[e].htmlElement.style.transform="";for(let i=t-2;i>=0;i--){let t=e[i];s-=r=t.cells[0].htmlElement.offsetHeight,t.htmlElement.style.height=r+"px",t.setTranslateY(s);for(let e=0,i=t.cells.length;e<i;++e)t.cells[e].htmlElement.style.transform=""}}renderRows(e){let{viewport:t,buffer:i}=this,s=t.dataTable.getRowCount();if(s<1)return;let n=this.viewport.virtualRows,r=n?Math.ceil((t.grid.tableElement?.clientHeight||0)/this.defaultRowHeight):1/0,o=t.rows;if(!n&&o.length>50&&console.warn("Grid: a large dataset can cause performance issues when virtualization is disabled. Consider enabling virtualization in the rows settings."),!o.length){let e=new iH(t,s-1);t.tbodyElement.appendChild(e.htmlElement),e.render(),o.push(e),n&&e.setTranslateY(e.getDefaultTopOffset())}let l=Math.max(0,Math.min(e-i,s-r)),a=Math.min(e+r+i,o[o.length-1].index-1),h=o.pop(),d=[];for(let e=0,t=o.length;e<t;++e){let t=o[e],i=t.index;i<l||i>a?t.destroy():d.push(t)}t.rows=o=d;for(let e=l;e<=a;++e)if(!o[e-(o[0]?.index||0)]){let i=new iH(t,e);o.push(i),i.rendered=!1,n&&i.setTranslateY(i.getDefaultTopOffset())}o.sort((e,t)=>e.index-t.index);for(let e=0,i=o.length;e<i;++e)o[e].rendered||(t.tbodyElement.insertBefore(o[e].htmlElement,t.tbodyElement.lastChild),o[e].render());if(h&&o.push(h),t.focusCursor){let[e,i]=t.focusCursor,s=o.find(t=>t.index===e);s&&s.cells[i]?.htmlElement.focus({preventScroll:!0})}if((!t.focusCursor||!t.focusAnchorCell?.row.rendered)&&o.length>0){let i=e-o[0].index;o[i]&&t.setFocusAnchorCell(o[i].cells[0])}}adjustRowHeights(){if(this.strictRowHeights||!this.viewport.virtualRows)return;let{rowCursor:e,defaultRowHeight:t}=this,{rows:i,tbodyElement:s}=this.viewport,n=i.length;if(n<1)return;let r=i[0].getDefaultTopOffset();for(let r=0;r<n;++r){let n=i[r];if(n.htmlElement.style.height="",n.cells[0].htmlElement.style.transform)for(let e=0,t=n.cells.length;e<t;++e)n.cells[e].htmlElement.style.transform="";if(n.index<e){n.htmlElement.style.height=t+"px";continue}let o=n.cells[0].htmlElement.offsetHeight;if(n.htmlElement.style.height=o+"px",!(n.index>e)&&n.htmlElement.offsetHeight>t){let i=Math.floor(o-(o-t)*(s.scrollTop/t-e));n.htmlElement.style.height=i+"px";for(let e=0,t=n.cells.length;e<t;++e)n.cells[e].htmlElement.style.transform=`translateY(${i-o}px)`}}i[0].setTranslateY(r);for(let e=1,t=n-1;e<t;++e)r+=i[e-1].htmlElement.offsetHeight,i[e].setTranslateY(r);let o=i[n-1],l=i[n-2];l&&l.index===o.index-1&&o.setTranslateY(l.htmlElement.offsetHeight+r)}reflowRows(){let e=this.viewport.rows;if(!(e.length<1)){for(let t=0,i=e.length;t<i;++t)e[t].reflow();this.adjustRowHeights()}}getDefaultRowHeight(){let e=new iH(this.viewport,0);e.htmlElement.style.position="absolute",e.htmlElement.classList.add(tA.getClassName("mockedRow")),this.viewport.tbodyElement.appendChild(e.htmlElement),e.render();let t=e.htmlElement.offsetHeight;return e.destroy(),t}},{makeHTMLElement:iB}=tD,{fireEvent:iF}=q,iW=class{constructor(e){this.isResizing=!1,this.handles=[],this.onDocumentMouseMove=e=>{if(!this.draggedResizeHandle||!this.draggedColumn)return;let t=e.pageX-(this.dragStartX||0),i=this.viewport;i.columnResizing.resize(this,t),i.reflow(),i.rowsVirtualizer.adjustRowHeights(),iF(this.draggedColumn,"afterResize",{target:this.draggedColumn,originalEvent:e})},this.onDocumentMouseUp=()=>{this.draggedColumn?.header?.htmlElement?.classList.remove(tA.getClassName("resizedColumn")),this.draggedResizeHandle?.matches(":hover")||this.draggedResizeHandle?.classList.remove("hovered"),this.dragStartX=void 0,this.draggedColumn=void 0,this.draggedResizeHandle=void 0,this.columnStartWidth=void 0,this.nextColumnStartWidth=void 0,requestAnimationFrame(()=>{this.isResizing=!1})},this.viewport=e,document.addEventListener("mousemove",this.onDocumentMouseMove),document.addEventListener("mouseup",this.onDocumentMouseUp)}renderColumnDragHandles(e,t){let i=e.viewport;if(i.columnsResizer){let s=iB("div",{className:tA.getClassName("resizerHandles")},t.htmlElement);s.setAttribute("aria-hidden",!0),i.columnsResizer?.addHandleListeners(s,e)}}addHandleListeners(e,t){let i=[{eventName:"mousedown",listener:i=>{let s=t.viewport;this.isResizing=!0,e.classList.add("hovered"),s.reflow(),this.dragStartX=i.pageX,this.draggedColumn=t,this.draggedResizeHandle=e,this.columnStartWidth=t.getWidth(),this.nextColumnStartWidth=s.columns[t.index+1]?.getWidth(),t.header?.htmlElement.classList.add(tA.getClassName("resizedColumn"))}},{eventName:"mouseover",listener:()=>{this.draggedResizeHandle||e.classList.add("hovered")}},{eventName:"mouseout",listener:()=>{this.draggedResizeHandle||e.classList.remove("hovered")}}];for(let{eventName:t,listener:s}of i)e.addEventListener(t,s);this.handles.push([e,i])}removeEventListeners(){document.removeEventListener("mousemove",this.onDocumentMouseMove),document.removeEventListener("mouseup",this.onDocumentMouseUp);for(let e=0,t=this.handles.length;e<t;e++){let[t,i]=this.handles[e];for(let{eventName:e,listener:s}of i)t.removeEventListener(e,s)}}},{makeHTMLElement:ij}=tD,{fireEvent:iU,getStyle:iV,defined:iq}=q,iY=class{constructor(e,t){this.columns=[],this.rows=[],this.onTBodyFocus=e=>{e.preventDefault(),this.rows[this.rowsVirtualizer.rowCursor-this.rows[0].index]?.cells[0]?.htmlElement.focus()},this.onResize=()=>{this.reflow()},this.onScroll=()=>{this.virtualRows&&this.rowsVirtualizer.scroll(),this.header?.scrollHorizontally(this.tbodyElement.scrollLeft)},this.grid=e,this.tableElement=t,this.dataTable=this.grid.presentationTable;let i=e.options,s=i?.rendering?.table?.className;this.columnResizing=e0.initMode(this),this.virtualRows=this.shouldVirtualizeRows(),i?.rendering?.header?.enabled&&(this.theadElement=ij("thead",{},t)),this.tbodyElement=ij("tbody",{},t),this.virtualRows&&t.classList.add(tA.getClassName("virtualization")),i?.rendering?.columns?.resizing?.enabled&&(this.columnsResizer=new iW(this)),s&&t.classList.add(...s.split(/\s+/g)),t.classList.add(tA.getClassName("scrollableContent")),this.loadColumns(),this.rowsVirtualizer=new iz(this),this.init(),this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.observe(t),this.tbodyElement.addEventListener("scroll",this.onScroll),this.tbodyElement.addEventListener("focus",this.onTBodyFocus)}init(){iU(this,"beforeInit"),this.setTbodyMinHeight(),this.grid.options?.rendering?.header?.enabled&&(this.header=new iD(this),this.header.render()),this.rowsVirtualizer.initialRender(),iU(this,"afterInit")}setTbodyMinHeight(){let{options:e}=this.grid,t=e?.rendering?.rows?.minVisibleRows,i=this.tbodyElement;iq(t)&&!iV(i,"min-height",!0)&&(i.style.minHeight=t*this.rowsVirtualizer.defaultRowHeight+"px")}shouldVirtualizeRows(){let{grid:e}=this,t=e.userOptions.rendering?.rows;if(iq(t?.virtualization))return t.virtualization;let i=Number(e.dataTable?.rowCount),s=t?.virtualizationThreshold??50,n=e.pagination?.currentPageSize;return n?n>=s:i>=s}loadColumns(){let e,{enabledColumns:t}=this.grid;if(t){for(let i=0,s=t.length;i<s;++i)e=t[i],this.columns.push(new tJ(this,e,i));this.columnResizing.loadColumns()}}async updateRows(){let e,t=this;t.focusCursor&&(e=t.dataTable.getOriginalRowIndex(t.focusCursor[0])),t.grid.pagination?.clampCurrentPage();let i=(t.rows[t.rows.length-1]?.index??-1)+1;for(let e of(await t.grid.querying.proceed(),t.dataTable=t.grid.presentationTable,t.columns))e.loadData();let s=this.shouldVirtualizeRows(),n=!1;if(this.virtualRows!==s&&(this.virtualRows=s,t.tableElement.classList.toggle(tA.getClassName("virtualization"),s),n=!0),n||i!==t.dataTable.rowCount)t.rowsVirtualizer.rerender();else for(let e=0,i=t.rows.length;e<i;++e)t.rows[e].update();if(t.grid.pagination?.updateControls(),t.reflow(),void 0!==e&&t.focusCursor){let i=t.dataTable.getLocalRowIndex(e);void 0!==i&&(t.scrollToRow(i),setTimeout(()=>{iq(t.focusCursor?.[1])&&t.rows[i-t.rows[0].index]?.cells[t.focusCursor[1]].htmlElement.focus()}))}}reflow(){this.columnResizing.reflow(),this.header?.reflow(),this.rowsVirtualizer.reflowRows(),this.grid.pagination?.reflow(),this.grid.popups.forEach(e=>{e.reflow()})}scrollToRow(e){if(this.virtualRows){this.tbodyElement.scrollTop=e*this.rowsVirtualizer.defaultRowHeight;return}let t="."+tA.getClassName("rowElement"),i=this.tbodyElement.querySelectorAll(t)[0].getBoundingClientRect().top;this.tbodyElement.scrollTop=this.tbodyElement.querySelectorAll(t)[e].getBoundingClientRect().top-i}getRatioFromWidth(e){return e/this.tbodyElement.clientWidth}getWidthFromRatio(e){return this.tbodyElement.clientWidth*e}destroy(){this.tbodyElement.removeEventListener("focus",this.onTBodyFocus),this.tbodyElement.removeEventListener("scroll",this.onScroll),this.resizeObserver.disconnect(),this.columnsResizer?.removeEventListeners(),this.header?.destroy();for(let e=0,t=this.rows.length;e<t;++e)this.rows[e].destroy();iU(this,"afterDestroy")}getStateMeta(){return{scrollTop:this.tbodyElement.scrollTop,scrollLeft:this.tbodyElement.scrollLeft,columnResizing:this.columnResizing,focusCursor:this.focusCursor}}applyStateMeta(e){if(this.tbodyElement.scrollTop=e.scrollTop,this.tbodyElement.scrollLeft=e.scrollLeft,e.focusCursor){let[t,i]=e.focusCursor,s=this.rows[t-this.rows[0].index];s?.cells[i]?.htmlElement.focus()}}setFocusAnchorCell(e){this.focusAnchorCell?.htmlElement.setAttribute("tabindex","-1"),this.focusAnchorCell=e,this.focusAnchorCell.htmlElement.setAttribute("tabindex","0")}getColumn(e){let t=this.grid.enabledColumns;if(!t)return;let i=t.indexOf(e);if(!(i<0))return this.columns[i]}getRow(e){return this.rows.find(t=>t.id===e)}},{addEvent:iK,fireEvent:i$,merge:i_}=q;class iG extends e5{constructor(e,...t){super(),this.chain=t,this.options=i_(iG.defaultOptions,e);let i=this.options.chain||[];for(let e=0,s=i.length,n,r;e<s;++e)(n=i[e]).type&&(r=e5.types[n.type])&&t.push(new r(n))}add(e,t){this.emit({type:"addModifier",detail:t,modifier:e}),this.chain.push(e),this.emit({type:"addModifier",detail:t,modifier:e})}clear(e){this.emit({type:"clearChain",detail:e}),this.chain.length=0,this.emit({type:"afterClearChain",detail:e})}async modify(e,t){let i=this.options.reverse?this.chain.slice().reverse():this.chain.slice();e.modified||(e.modified=e.clone(!1,t));let s=e;for(let n=0,r=i.length;n<r;++n){try{await i[n].modify(s,t)}catch(i){throw this.emit({type:"error",detail:t,table:e}),i}s=s.getModified()}return e.modified=s,e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=this.options.reverse?this.chain.reverse():this.chain.slice(),s=e.getModified();for(let e=0,n=i.length;e<n;++e)s=i[e].modifyTable(s,t).getModified();return e.modified=s,this.emit({type:"afterModify",detail:t,table:e}),e}remove(e,t){let i=this.chain;this.emit({type:"removeModifier",detail:t,modifier:e}),i.splice(i.indexOf(e),1),this.emit({type:"afterRemoveModifier",detail:t,modifier:e})}emit(e){i$(this,e.type,e)}on(e,t){return iK(this,e,t)}}iG.defaultOptions={type:"Chain"},e5.registerType("Chain",iG);let{merge:iZ}=q;class iJ extends e5{static ascending(e,t){return(e||0)<(t||0)?-1:+((e||0)>(t||0))}static descending(e,t){return(t||0)<(e||0)?-1:+((t||0)>(e||0))}static compareFactory(e,t){return t?"desc"===e?(e,i)=>-t(e,i):t:"asc"===e?iJ.ascending:iJ.descending}constructor(e){super(),this.options=iZ(iJ.defaultOptions,e)}getRowReferences(e){let t=e.getRows(),i=[];for(let e=0,s=t.length;e<s;++e)i.push({index:e,row:t[e]});return i}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=e.getColumnIds(),s=e.getRowCount(),n=this.getRowReferences(e),{direction:r,orderByColumn:o,orderInColumn:l,compare:a}=this.options,h=iJ.compareFactory(r,a),d=i.indexOf(o),u=e.getModified();if(-1!==d&&n.sort((e,t)=>h(e.row[d],t.row[d])),l){let e=[];for(let t=0;t<s;++t)e[n[t].index]=t;u.setColumns({[l]:e})}else{let t,i=[],r=[];for(let o=0;o<s;++o)t=n[o],i.push(e.getOriginalRowIndex(t.index)),r.push(t.row);u.setRows(r,0),u.setOriginalRowIndexes(i)}return this.emit({type:"afterModify",detail:t,table:e}),e}}iJ.defaultOptions={type:"Sort",direction:"desc",orderByColumn:"y"},e5.registerType("Sort",iJ);let iX=class{constructor(e){this.querying=e}setSorting(e,t){(this.currentSorting?.columnId!==t||this.currentSorting?.order!==e)&&(this.querying.shouldBeUpdated=!0,this.currentSorting={columnId:t,order:e}),this.modifier=this.createModifier()}getSortingOptions(){let e,{columnOptionsMap:t}=this.querying.grid;if(!t)return{order:null};let i=Object.keys(t),s=null;for(let n=i.length-1;n>-1;--n){let r=i[n],o=t[r]?.options||{},l=o.sorting?.order;if(l){if(e){console.warn(`Grid: Only one column can be sorted at a time. Data will be sorted only by the last found column with the sorting order defined in the options: "${e}".`);break}s=l,e=r}}return{columnId:e,order:s}}loadOptions(){let e=this.getSortingOptions();(e.columnId!==this.initialSorting?.columnId||e.order!==this.initialSorting?.order)&&(this.initialSorting=e,this.setSorting(e.order,e.columnId))}createModifier(){if(!this.currentSorting)return;let{columnId:e,order:t}=this.currentSorting;if(!t||!e)return;let i=this.querying.grid;return new iJ({orderByColumn:e,direction:t,compare:i.columnOptionsMap?.[e]?.options?.sorting?.compare||i.options?.columnDefaults?.sorting?.compare})}},{isFunction:iQ,merge:i0}=q;class i1 extends e5{static compile(e){if(iQ(e))return e;let t=e.operator;switch(t){case"and":{let t=e.conditions.map(e=>this.compile(e));return(e,i,s)=>t.every(t=>t(e,i,s))}case"or":{let t=e.conditions.map(e=>this.compile(e));return(e,i,s)=>t.some(t=>t(e,i,s))}case"not":{let t=this.compile(e.condition);return(e,i,s)=>!t(e,i,s)}}let{columnId:i,value:s}=e;switch(t){case"==":return e=>e[i]==s;case"===":return e=>e[i]===s;case"!=":return e=>e[i]!=s;case"!==":return e=>e[i]!==s;case">":return e=>(e[i]||0)>(s||0);case">=":return e=>(e[i]||0)>=(s||0);case"<":return e=>(e[i]||0)<(s||0);case"<=":return e=>(e[i]||0)<=(s||0);case"empty":return e=>null===e[i]||""===e[i]}let{ignoreCase:n}=e,r=e=>{let t=""+e;return n??!0?t.toLowerCase():t};return"contains"===t?e=>r(e[i]).includes(r(s)):e=>r(e[i])[t](r(s))}constructor(e){super(),this.options=i0(i1.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let{condition:i}=this.options;if(!i)return e;let s=i1.compile(i),n=e.getModified(),r=[],o=[];for(let t=0,i=e.getRowCount();t<i;++t){let i=e.getRowObject(t);i&&s(i,e,t)&&(r.push(i),o.push(e.getOriginalRowIndex(t)))}return n.deleteRows(),n.setRows(r),n.setOriginalRowIndexes(o),this.emit({type:"afterModify",detail:t,table:e}),e}}i1.defaultOptions={type:"Filter"},e5.registerType("Filter",i1);let{isString:i3}=q;class i6{constructor(e){this.columnConditions={},this.querying=e}static mapOptionsToFilter(e,t){let{condition:i,value:s}=t,n=i3(s),r=n?s:"";if(void 0!==s&&(!n||r)||["empty","notEmpty","true","false"].includes(i??""))switch(i){case"contains":return{columnId:e,operator:"contains",value:r};case"doesNotContain":return{operator:"not",condition:{columnId:e,operator:"contains",value:r}};case"equals":return{columnId:e,operator:"===",value:s};case"doesNotEqual":return{columnId:e,operator:"!==",value:s};case"beginsWith":return{columnId:e,operator:"startsWith",value:r};case"endsWith":return{columnId:e,operator:"endsWith",value:r};case"greaterThan":case"after":return{columnId:e,operator:">",value:s};case"greaterThanOrEqualTo":return{columnId:e,operator:">=",value:s};case"lessThan":case"before":return{columnId:e,operator:"<",value:s};case"lessThanOrEqualTo":return{columnId:e,operator:"<=",value:s};case"empty":return{columnId:e,operator:"empty",value:s};case"notEmpty":return{operator:"not",condition:{columnId:e,operator:"empty",value:s}};case"true":return{columnId:e,operator:"===",value:!0};case"false":return{columnId:e,operator:"===",value:!1}}}loadOptions(){let e=this.querying.grid.columnOptionsMap,t={};if(e){let i=Object.keys(e);for(let s=0,n=i.length;s<n;++s){let n=i[s],r=e[n]?.options?.filtering;if(!r)continue;let o=i6.mapOptionsToFilter(n,r);o&&(t[n]=o)}}this.columnConditions=t,this.updateModifier()}addColumnFilterCondition(e,t){let i=i6.mapOptionsToFilter(e,t);i?this.columnConditions[e]=i:delete this.columnConditions[e],this.updateModifier()}clearColumnFiltering(e){e?delete this.columnConditions[e]:this.columnConditions={},this.updateModifier()}updateModifier(){let e=Object.values(this.columnConditions);if(this.querying.shouldBeUpdated=!0,e.length<1)return void delete this.modifier;this.modifier=new i1({condition:{operator:"and",conditions:e}})}}let{merge:i2}=q;class i5 extends e5{constructor(e){super(),this.options=i2(i5.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let{start:i,end:s}=this.options;i=Math.max(0,i||0);let n=Math.max((s=Math.min(s||1/0,e.getRowCount()))-i,0),r=e.getModified();return r.deleteRows(),r.setRows(e.getRows(i,n)),r.setOriginalRowIndexes(Array.from({length:n},(t,s)=>e.getOriginalRowIndex(i+s))),this.emit({type:"afterModify",detail:t,table:e}),e}}i5.defaultOptions={type:"Range",start:0,end:1/0},e5.registerType("Range",i5);let i7=class{constructor(e){this.querying=e}setRange(e){this.currentPage=e,this.querying.shouldBeUpdated=!0}loadOptions(){let e=this.querying.grid.pagination;e?.options.enabled&&this.currentPage!==e.currentPage&&(this.currentPage=e.currentPage,this.setRange(this.currentPage))}createModifier(e=this.querying.grid.dataTable?.rowCount||0){let t=this.currentPage||1,i=this.querying.grid.pagination?.currentPageSize;if(!i)return;let s=(t-1)*i,n=Math.min(s+i,e);return this.totalItems=e,new i5({start:s,end:n})}reset(){delete this.currentPage,this.querying.shouldBeUpdated=!0}},i4=class{constructor(e){this.shouldBeUpdated=!1,this.grid=e,this.filtering=new i6(this),this.sorting=new iX(this),this.pagination=new i7(this)}async proceed(e=!1){(e||this.shouldBeUpdated)&&await this.modifyData()}loadOptions(){this.filtering.loadOptions(),this.sorting.loadOptions(),this.pagination.loadOptions()}willNotModify(){return!this.sorting.modifier&&!this.filtering.modifier}getGroupedModifiers(){let e=[];return this.sorting.modifier&&e.push(this.sorting.modifier),this.filtering.modifier&&e.push(this.filtering.modifier),e}async modifyData(){let e,t=this.grid.dataTable;if(!t)return;let i=this.getGroupedModifiers();if(i.length>0){let s=new iG({},...i),n=t.clone();await s.modify(n.getModified()),e=n.getModified()}else e=t.getModified();let s=this.pagination.createModifier(e.rowCount);s&&(e=e.clone(),await s.modify(e),e=e.getModified()),this.grid.presentationTable=e,this.shouldBeUpdated=!1}},i9={first:'<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none"><path d="M5 9L1 5L5 1M9 9L5 5L9 1" stroke="currentColor" stroke-width="1.34" stroke-linecap="round" stroke-linejoin="round"/></svg>',previous:'<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 8 10" fill="none"><path d="M5 9L1 5L5 1" stroke="currentColor" stroke-width="1.34" stroke-linecap="round" stroke-linejoin="round"/></svg>',next:'<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 4 10" fill="none"><path d="M1 1L5 5L1 9" stroke="currentColor" stroke-width="1.34" stroke-linecap="round" stroke-linejoin="round"/></svg>',last:'<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none"><path d="M5 1L9 5L5 9M1 1L5 5L1 9" stroke="currentColor" stroke-width="1.34" stroke-linecap="round" stroke-linejoin="round"/></svg>'},{makeHTMLElement:i8,formatText:se}=tD,{merge:st,fireEvent:si,isObject:ss,defined:sn}=q;class sr{constructor(e,t,i={}){this.currentPage=1,this.grid=e,this.options=st(sr.defaultOptions,t);let s=this.options.controls.pageSizeSelector;this.pageSizeOptions=ss(s)?s.options:sr.defaultOptions.controls.pageSizeSelector.options,this.currentPageSize=i.currentPageSize||this.options.pageSize||this.pageSizeOptions[0],this.lang=st(tU.defaultOptions.pagination,this.grid.options?.lang?.pagination),i.currentPage&&(this.currentPage=i.currentPage)}get totalItems(){return this.grid.querying.pagination.totalItems||0}get totalPages(){return Math.ceil(this.totalItems/this.currentPageSize)||1}render(){let e=this.options.position,t=this.grid;this.oldTotalItems=this.totalItems,t.tableElement?.setAttribute("aria-current","page"),this.updateA11yRowsCount(this.currentPageSize),"string"==typeof e&&e.startsWith("#")?this.renderCustomContainer(e):("footer"===e&&this.renderFooter(),this.contentWrapper=i8("nav",{className:tA.getClassName("paginationWrapper")},"footer"===e?this.paginationContainer:t.contentWrapper),this.contentWrapper.setAttribute("aria-label","Results pagination")),this.clampCurrentPage(),this.renderPageInfo(),this.renderControls(),this.renderPageSizeSelector(),this.updateButtonStates()}renderFooter(){let e=this.grid.tableElement;if(!e)return;let t=i8("tfoot",{},e),i=i8("tr",{},t);this.paginationContainer=i8("td",{},i),this.paginationContainer.setAttribute("colSpan",(this.grid.enabledColumns||[]).length.toString()),this.reflow()}renderCustomContainer(e){let t=document.querySelector(e);if(!t)return void console.warn(`Pagination: Custom container with ID "${e}" not found.`);this.paginationContainer=t,this.contentWrapper=i8("div",{className:tA.getClassName("paginationContainer")},t)}renderPageInfo(){let e=this.options.controls?.pageInfo;!1===e||ss(e)&&!1===e.enabled||(this.pageInfoElement=i8("div",{className:tA.getClassName("paginationPageInfo")},this.contentWrapper),this.updatePageInfo())}updatePageInfo(){if(!this.pageInfoElement)return;let e=(this.currentPage-1)*this.currentPageSize+1,t=Math.min(this.currentPage*this.currentPageSize,this.totalItems),i=se(this.lang.pageInfo,{start:e,end:t,total:this.totalItems,currentPage:this.currentPage,totalPages:this.totalPages});this.pageInfoElement.innerHTML=i}renderControls(){let e=i8("div",{className:tA.getClassName("paginationControls")},this.contentWrapper);this.options.controls?.firstLastButtons&&this.renderFirstButton(e),this.options.controls?.previousNextButtons&&this.renderPrevButton(e),this.options.controls?.pageButtons&&this.renderPageNumbers(e),this.renderMobilePageSelector(e),this.options.controls?.previousNextButtons&&this.renderNextButton(e),this.options.controls?.firstLastButtons&&this.renderLastButton(e)}updateControls(){this.oldTotalItems!==this.totalItems&&(this.updatePageInfo(),this.updatePageNumbers(),this.updateButtonStates(),this.updateA11yRowsCount(this.currentPageSize),this.oldTotalItems=this.totalItems)}renderFirstButton(e){let t=this.options.controls?.firstLastButtons;!1===t||ss(t)&&!1===t.enabled||(this.firstButton=i8("button",{innerHTML:i9.first,className:tA.getClassName("paginationButton")+" "+tA.getClassName("paginationFirstButton")},e),this.firstButton.title=this.lang.firstPage,this.firstButton.setAttribute("aria-label",this.lang.firstPage),this.firstButton.addEventListener("click",()=>{this.goToPage(1)}),this.setButtonState(this.firstButton,1===this.currentPage))}renderPrevButton(e){let t=this.options.controls?.previousNextButtons;!1===t||ss(t)&&!1===t.enabled||(this.prevButton=i8("button",{innerHTML:i9.previous,className:tA.getClassName("paginationButton")+" "+tA.getClassName("paginationPrevButton")},e),this.prevButton.title=this.lang.previousPage,this.prevButton.setAttribute("aria-label",this.lang.previousPage),this.prevButton.addEventListener("click",()=>{this.goToPage(this.currentPage-1)}),this.setButtonState(this.prevButton,1===this.currentPage))}renderNextButton(e){let t=this.options.controls?.previousNextButtons;!1===t||ss(t)&&!1===t.enabled||(this.nextButton=i8("button",{innerHTML:i9.next,className:tA.getClassName("paginationButton")+" "+tA.getClassName("paginationNextButton")},e),this.nextButton.title=this.lang.nextPage,this.nextButton.setAttribute("aria-label",this.lang.nextPage),this.nextButton.addEventListener("click",()=>{this.goToPage(this.currentPage+1)}),this.setButtonState(this.nextButton,this.currentPage>=this.totalPages))}renderLastButton(e){let t=this.options.controls?.firstLastButtons;!1===t||ss(t)&&!1===t.enabled||(this.lastButton=i8("button",{innerHTML:i9.last,className:tA.getClassName("paginationButton")+" "+tA.getClassName("paginationLastButton")},e),this.lastButton.title=this.lang.lastPage,this.lastButton.setAttribute("aria-label",this.lang.lastPage),this.lastButton.addEventListener("click",()=>{this.goToPage(this.totalPages)}),this.setButtonState(this.lastButton,this.currentPage>=this.totalPages))}renderPageNumbers(e){let t=this.options.controls?.pageButtons;!1===t||ss(t)&&!1===t.enabled||(this.pageNumbersContainer=i8("div",{className:tA.getClassName("paginationPageButton")},e),this.updatePageNumbers())}updatePageNumbers(){if(!this.pageNumbersContainer)return;this.pageNumbersContainer.innerHTML=en.emptyHTML;let e=this.options.controls?.pageButtons,t=ss(e)?e.count:sr.defaultOptions.controls.pageButtons.count,i=this.totalPages,s=this.currentPage;if(i<=t)for(let e=1;e<=i;e++)this.createPageButton(e,e===s);else{let e=[],n=s>=i-2;if(s<=3){let s=t-2,n=Math.min(s,i-1);for(let t=1;t<=n;t++)e.push({type:"button",page:t});i>s+1&&(e.push({type:"ellipsis"}),e.push({type:"button",page:i}))}else if(n){let s=i-(t-2)+1;for(e.push({type:"button",page:1}),e.push({type:"ellipsis"});s<=i;s++)e.push({type:"button",page:s})}else{e.push({type:"button",page:1});let n=t-4,r=Math.floor(n/2),o=Math.max(2,s-r),l=Math.min(i-1,s+r);l-o+1>n&&(2===o?l=o+n-1:o=l-n+1);let a=o>2,h=l<i-1;a||h?a?h||(o=Math.max(2,(l=i-1)-(t-3)+1)):l=Math.min(i-1,(o=2)+(t-3)-1):l=Math.min(i-1,(o=2)+(t-2)-1),a&&e.push({type:"ellipsis"});for(let t=o;t<=l;t++)e.push({type:"button",page:t});h&&e.push({type:"ellipsis"}),e.push({type:"button",page:i})}e.forEach(e=>{"button"===e.type&&sn(e.page)?this.createPageButton(e.page,e.page===s):"ellipsis"===e.type&&this.createEllipsis()})}this.mobilePageSelector&&(this.mobilePageSelector.value=this.currentPage.toString())}createPageButton(e,t){if(!this.pageNumbersContainer)return;let i=i8("button",{innerHTML:e.toString(),className:tA.getClassName(t?"paginationPageButtonActive":"paginationPageButton")},this.pageNumbersContainer);i.title=se(this.lang.pageNumber,{page:e}),i.setAttribute("aria-label",se(this.lang.pageNumber,{page:e})),i.addEventListener("click",()=>{this.goToPage(e)})}createEllipsis(){if(!this.pageNumbersContainer)return;let e=i8("span",{innerHTML:"...",className:tA.getClassName("paginationEllipsis")},this.pageNumbersContainer);e.title=this.lang.ellipsis,e.setAttribute("aria-hidden",!0)}renderPageSizeSelector(){let e=this.options.controls.pageSizeSelector;if(!1===e||ss(e)&&!1===e.enabled)return;let t=i8("div",{className:tA.getClassName("paginationPageSizeContainer")},this.contentWrapper);i8("span",{innerHTML:this.lang.pageSizeLabel},t),this.pageSizeSelect=i8("select",{className:tA.getClassName("paginationPageSizeSelect")},t),this.pageSizeOptions.forEach(e=>{let t=document.createElement("option");t.value=e.toString(),t.innerHTML=e.toString(),e===this.currentPageSize&&(t.selected=!0),this.pageSizeSelect?.appendChild(t)}),this.pageSizeSelect.addEventListener("change",()=>{this.pageSizeSelect&&this.setPageSize(parseInt(this.pageSizeSelect.value,10))}),this.renderMobilePageSizeSelector(t)}async setPageSize(e){let t=this.currentPageSize,i=this.grid.options?.lang?.accessibility;si(this,"beforePageSizeChange",{pageSize:t,newPageSize:e}),this.currentPageSize=e,this.currentPage=1,await this.updateGridPagination(),this.updatePageInfo(),this.updatePageNumbers(),this.updateButtonStates(),this.updateA11yRowsCount(this.currentPageSize),this.grid.accessibility?.announce(i?.pagination?.announcements?.pageSizeChange+" "+e),this.mobilePageSizeSelector&&(this.mobilePageSizeSelector.value=this.currentPageSize.toString()),si(this,"afterPageSizeChange",{pageSize:e,previousPageSize:t})}async goToPage(e){let t=this.grid.options?.lang?.accessibility;if(e<1||e>this.totalPages||e===this.currentPage)return;let i=this.currentPage;si(this,"beforePageChange",{currentPage:this.currentPage,nextPage:e,pageSize:this.currentPageSize}),this.currentPage=e,await this.updateGridPagination(),this.updatePageInfo(),this.updatePageNumbers(),this.updateButtonStates(),this.grid.accessibility?.announce(t?.pagination?.announcements?.pageChange+" "+this.currentPage),si(this,"afterPageChange",{currentPage:this.currentPage,previousPage:i,pageSize:this.currentPageSize})}async updateGridPagination(e=!1){if(!this.grid.querying?.pagination)return;this.grid.querying.pagination.setRange(e?1:this.currentPage),this.grid.querying.shouldBeUpdated=!0,await this.grid.querying.proceed(!0),await this.grid.viewport?.updateRows(),this.grid.viewport?.header?.reflow();let t=this.grid.viewport?.tbodyElement;t&&(t.scrollTop=0)}clampCurrentPage(){this.currentPage>this.totalPages&&(this.currentPage=this.totalPages,this.grid.querying.pagination.setRange(this.currentPage))}updateButtonStates(){this.firstButton&&this.setButtonState(this.firstButton,1===this.currentPage),this.prevButton&&this.setButtonState(this.prevButton,1===this.currentPage),this.nextButton&&this.setButtonState(this.nextButton,this.currentPage>=this.totalPages),this.lastButton&&this.setButtonState(this.lastButton,this.currentPage>=this.totalPages)}async updatePage(e=!0){let t=e?this.currentPage+1:this.currentPage-1;await this.goToPage(t)}setButtonState(e,t){t?(e.classList.add(tA.getClassName("paginationButtonDisabled")),e.setAttribute("disabled","disabled")):(e.classList.remove(tA.getClassName("paginationButtonDisabled")),e.removeAttribute("disabled"))}reflow(){let e=this.options.position;if(this.paginationContainer&&"footer"===e){this.paginationContainer.style.width=this.grid.tableElement?.offsetWidth+"px";return}}destroy(){"footer"===this.options.position?this.paginationContainer?.parentElement?.parentElement?.remove():this.contentWrapper?.remove(),this.grid.querying.pagination.reset()}renderMobilePageSelector(e){let t=this.totalPages;if(t<=1)return;let i=i8("select",{className:tA.getClassName("paginationMobileSelector")},e);for(let e=1;e<=t;e++){let s=i8("option",{},i);s.value=e.toString(),s.textContent=`Page ${e} of ${t}`}i.value=this.currentPage.toString(),this.mobilePageSelector=i,i.addEventListener("change",()=>{let e=parseInt(i.value,10);e!==this.currentPage&&this.goToPage(e)})}renderMobilePageSizeSelector(e){let t=i8("select",{className:tA.getClassName("paginationMobilePageSizeSelector")},e);this.pageSizeOptions.forEach(e=>{let i=i8("option",{},t);i.value=e.toString(),i.textContent=`${e} ${this.lang.pageSizeLabel}`,e===this.currentPageSize&&(i.selected=!0)}),this.mobilePageSizeSelector=t,t.addEventListener("change",()=>{this.mobilePageSizeSelector&&this.setPageSize(parseInt(this.mobilePageSizeSelector.value,10))})}updateA11yRowsCount(e){let t=this.grid;t.tableElement?.setAttribute("aria-rowcount",e||this.totalItems)}}sr.defaultOptions={enabled:!1,pageSize:10,position:"bottom",controls:{pageSizeSelector:{enabled:!0,options:[10,20,50,100]},pageInfo:{enabled:!0},firstLastButtons:{enabled:!0},previousNextButtons:{enabled:!0},pageButtons:{enabled:!0,count:7}}};let{makeHTMLElement:so,setHTMLContent:sl}=tD,{extend:sa,fireEvent:sh,getStyle:sd,merge:su,pick:sc,isObject:sp}=q;class sm{static grid(e,t,i){return i?new Promise(i=>{new sm(e,t,e=>{i(e)})}):new sm(e,t)}constructor(e,t,i){this.columnOptionsMap={},this.userOptions={},this.initialContainerHeight=0,this.popups=new Set,this.dataTableEventDestructors=[],this.loadUserOptions(t),this.id=this.options?.id||q.uniqueKey(),this.querying=new i4(this),this.locale=this.options?.lang?.locale||this.container?.closest("[lang]")?.lang,this.time=new ev(sa(this.options?.time,{locale:this.locale}),this.options?.lang),sh(this,"beforeLoad"),sm.grids.push(this),this.initContainers(e),this.initAccessibility(),this.initPagination(),this.loadDataTable(),this.querying.loadOptions(),this.querying.proceed().then(()=>{this.renderViewport(),i?.(this),sh(this,"afterLoad")})}initAccessibility(){this.accessibility?.destroy(),delete this.accessibility,this.options?.accessibility?.enabled&&(this.accessibility=new tW(this))}initPagination(){let e;if(this.pagination){let{currentPageSize:t,currentPage:i}=this.pagination||{};e={currentPageSize:t,currentPage:i}}this.pagination?.destroy(),delete this.pagination;let t=this.options?.pagination,i=sp(t)?t:{enabled:t};i?.enabled&&(this.pagination=new sr(this,i,e))}initContainers(e){let t="string"==typeof e?tA.win.document.getElementById(e):e;if(!t)return void console.error(`
10
+ Rendering div not found. It is unable to find the HTML element
11
+ to render the Grid in.
12
+ `);this.initialContainerHeight=sd(t,"height",!0)||0,this.container=t,this.container.innerHTML=en.emptyHTML,this.contentWrapper=so("div",{className:tA.getClassName("container")},this.container)}loadUserOptions(e,t=!1){(e=su(e)).columns&&(t?this.setColumnOptionsOneToOne(e.columns):this.setColumnOptions(e.columns),delete e.columns),this.userOptions=su(this.userOptions,e),this.options=su(this.options??tU.defaultOptions,this.userOptions);let i=this.options?.columns;if(!i)return;let s={};for(let e=0,t=i?.length??0;e<t;++e)s[i[e].id]={index:e,options:i[e]};this.columnOptionsMap=s}setColumnOptions(e,t=!1){this.userOptions.columns||(this.userOptions.columns=this.options?.columns??[]);let i=this.userOptions.columns;for(let s=0,n=e.length;s<n;++s){let n=e[s],r=this.columnOptionsMap?.[n.id]?.index??-1;if(Object.keys(n).length<2){t&&-1!==r&&i.splice(r,1);continue}-1===r?i.push(n):t?i[r]=n:su(!0,i[r],n)}i.length<1&&delete this.userOptions.columns}setColumnOptionsOneToOne(e){let t,i=this.userOptions.columns,s=[];for(let n=0,r=e.length;n<r;++n){let r=e[n],o=i?.findIndex(e=>e.id===r.id);void 0!==o&&-1!==o&&(t=i?.[o]);let l=su(t??{},r);Object.keys(l).length>1&&s.push(l)}this.userOptions.columns=s}async update(e={},t=!0,i=!1){if(this.loadUserOptions(e,i),(!this.dataTable||e.dataTable)&&(this.userOptions.dataTable=e.dataTable,(this.options??{}).dataTable=e.dataTable,this.loadDataTable(),this.querying.shouldBeUpdated=!0),!t)return;this.initAccessibility(),this.initPagination(),this.querying.loadOptions();let s=e.lang?.locale;s&&(this.locale=s,this.time.update(sa(e.time||{},{locale:this.locale}))),await this.querying.proceed(),this.renderViewport()}async updateColumn(e,t,i=!0,s=!1){this.setColumnOptions([{id:e,...t}],s),await this.update(void 0,i)}hoverRow(e){let t=this.viewport?.rows;if(!t)return;let i=this.viewport?.rows[0]?.index??0;void 0!==this.hoveredRowIndex&&t[this.hoveredRowIndex-i]?.setHoveredState(!1),void 0!==e&&t[e-i]?.setHoveredState(!0),this.hoveredRowIndex=e}hoverColumn(e){let t=this.viewport;t&&(this.hoveredColumnId&&t.getColumn(this.hoveredColumnId)?.setHoveredState(!1),e&&t.getColumn(e)?.setHoveredState(!0),this.hoveredColumnId=e)}syncRow(e){let t=this.viewport?.rows;if(!t)return;let i=this.viewport?.rows[0]?.index??0;void 0!==this.syncedRowIndex&&t[this.syncedRowIndex-i]?.setSyncedState(!1),void 0!==e&&t[e-i]?.setSyncedState(!0),this.syncedRowIndex=e}syncColumn(e){let t=this.viewport;t&&(this.syncedColumnId&&t.getColumn(this.syncedColumnId)?.setSyncedState(!1),e&&t.getColumn(e)?.setSyncedState(!0),this.syncedColumnId=e)}renderCaption(){let e=this.options?.caption,t=e?.text;t&&(this.captionElement=so("div",{className:tA.getClassName("captionElement"),id:this.id+"-caption"},this.contentWrapper),sl(this.captionElement,t),e.className&&this.captionElement.classList.add(...e.className.split(/\s+/g)))}renderDescription(){let e=this.options?.description,t=e?.text;t&&(this.descriptionElement=so("div",{className:tA.getClassName("descriptionElement"),id:this.id+"-description"},this.contentWrapper),sl(this.descriptionElement,t),e.className&&this.descriptionElement.classList.add(...e.className.split(/\s+/g)))}resetContentWrapper(){this.contentWrapper&&(this.contentWrapper.innerHTML=en.emptyHTML,this.contentWrapper.className=tA.getClassName("container")+" "+this.options?.rendering?.theme||"")}renderViewport(){let e=this.viewport?.getStateMeta(),t=this.pagination,i=t?.options.position;this.enabledColumns=this.getEnabledColumnIDs(),this.credits?.destroy(),this.viewport?.destroy(),delete this.viewport,this.resetContentWrapper(),sh(this,"beforeRenderViewport"),this.renderCaption(),"top"===i&&t?.render(),this.enabledColumns.length>0?(this.viewport=this.renderTable(),e&&this.viewport&&this.viewport.applyStateMeta(e)):this.renderNoData(),this.accessibility?.setA11yOptions(),"top"!==i&&t?.render(),this.renderDescription(),sh(this,"afterRenderViewport"),this.viewport?.reflow()}renderTable(){return this.tableElement=so("table",{className:tA.getClassName("tableElement")},this.contentWrapper),this.tableElement.setAttribute("role","grid"),new iY(this,this.tableElement)}renderNoData(){so("div",{className:tA.getClassName("noData"),innerText:this.options?.lang?.noData},this.contentWrapper)}getEnabledColumnIDs(){let e,{columnOptionsMap:t}=this,i=this.options?.header,s=this.getColumnIds(i||[],!1),n=this.options?.rendering?.columns?.included||(s&&s.length>0?s:this.dataTable?.getColumnIds());if(!n?.length)return[];if(!t)return n;let r=[];for(let i=0,s=n.length;i<s;++i)e=n[i],t?.[e]?.options?.enabled!==!1&&r.push(e);return r}loadDataTable(){this.dataTableEventDestructors.forEach(e=>e());let e=this.options?.dataTable;if(e?.clone){this.dataTable=e,this.presentationTable=this.dataTable.getModified();return}let t=this.dataTable=this.presentationTable=new tu(e);["afterDeleteColumns","afterDeleteRows","afterSetCell","afterSetColumns","afterSetRows"].forEach(e=>{this.dataTableEventDestructors.push(t.on(e,()=>{this.querying.shouldBeUpdated=!0}))})}getColumnIds(e,t=!0){let i=[],{enabledColumns:s}=this;for(let n of e){let e="string"==typeof n?n:n.columnId;e&&(!t||s?.includes(e))&&i.push(e),"string"!=typeof n&&n.columns&&(i=i.concat(this.getColumnIds(n.columns,t)))}return i}destroy(){let e=sm.grids.findIndex(e=>e===this);this.dataTableEventDestructors.forEach(e=>e()),this.viewport?.destroy(),this.container&&(this.container.innerHTML=en.emptyHTML,this.container.classList.remove(tA.getClassName("container"))),Object.keys(this).forEach(e=>{delete this[e]}),sm.grids.splice(e,1)}showLoading(e){this.loadingWrapper||(this.loadingWrapper=so("div",{className:tA.getClassName("loadingWrapper")},this.contentWrapper),so("div",{className:tA.getClassName("loadingSpinner")},this.loadingWrapper),sl(so("span",{className:tA.getClassName("loadingMessage")},this.loadingWrapper),sc(e,this.options?.lang?.loading,"")))}hideLoading(){this.loadingWrapper?.remove(),delete this.loadingWrapper}getData(e=!0){let t=e?this.viewport?.dataTable:this.dataTable,i=t?.columns;if(!this.enabledColumns||!i)return"{}";for(let e of Object.keys(i))-1===this.enabledColumns.indexOf(e)&&delete i[e];return JSON.stringify(i,null,2)}getOptions(e=!0){let t=e?su(this.userOptions):su(this.options);return t.dataTable?.id&&(t.dataTable={columns:t.dataTable.columns}),t}}sm.grids=[];let{addEvent:sg,fireEvent:sf,merge:sy}=q;class sw{constructor(e){this.options=sy(sw.defaultOptions,e),this.connectors={},this.waiting={}}emit(e){sf(this,e.type,e)}getConnector(e){let t=this.connectors[e];if(t?.loaded)return Promise.resolve(t);let i=this.waiting[e];if(!i){i=this.waiting[e]=[];let t=this.getConnectorOptions(e);if(!t)throw Error(`Connector '${e}' not found.`);this.loadConnector(t).then(t=>{delete this.waiting[e];for(let e=0,s=i.length;e<s;++e)i[e][0](t)}).catch(t=>{delete this.waiting[e];for(let e=0,s=i.length;e<s;++e)i[e][1](t)})}return new Promise((e,t)=>{i.push([e,t])})}getConnectorIds(){let e=this.options.connectors,t=[];for(let i=0,s=e.length;i<s;++i)t.push(e[i].id);return t}getConnectorOptions(e){let t=this.options.connectors;for(let i=0,s=t.length;i<s;++i)if(t[i].id===e)return t[i]}isNewConnector(e){return!this.connectors[e]}loadConnector(e){return new Promise((t,i)=>{this.emit({type:"load",options:e});let s=ty.types[e.type];if(!s)throw Error(`Connector type not found. (${e.type})`);let n=this.connectors[e.id]=new s(e);n.load().then(({converter:i})=>{n.converter=i,n.loaded=!0,this.emit({type:"afterLoad",options:e}),t(n)}).catch(i)})}cancelPendingRequests(){let{connectors:e}=this;for(let t of Object.keys(e))e[t].stopPolling()}on(e,t){return sg(this,e,t)}setConnectorOptions(e){let t=this.options.connectors,i=this.connectors;this.emit({type:"setConnectorOptions",options:e});for(let i=0,s=t.length;i<s;++i)if(t[i].id===e.id){t.splice(i,1);break}i[e.id]&&(i[e.id].stopPolling(),delete i[e.id]),t.push(e),this.emit({type:"afterSetConnectorOptions",options:e})}}sw.defaultOptions={connectors:[]};let{addEvent:sb,fireEvent:sv,pushUnique:sC}=q,sE={cell_mouseOver:function(){sv(this.row.viewport.grid,"cellMouseOver",{target:this})},cell_mouseOut:function(){sv(this.row.viewport.grid,"cellMouseOut",{target:this})}},{fireEvent:sT}=q;class sx{constructor(e){this.onInputBlur=()=>{this.stopEditing()||this.editModeContent?.getMainElement().focus()},this.onInputChange=()=>{this.editModeContent?.finishAfterChange&&!this.stopEditing()&&this.editModeContent?.getMainElement().focus()},this.onInputKeyDown=e=>{let{key:t}=e;if(e.stopPropagation(),"Escape"===t)return void this.stopEditing(!1);if("Enter"===t){if(this.editModeContent?.finishAfterChange)return void this.onInputChange();this.stopEditing()}},this.viewport=e}startEditing(e){this.editedCell!==e&&(!this.editedCell||this.stopEditing())&&(this.editedCell=e,e.htmlElement.classList.add(tA.getClassName("editedCell")),this.render(),sT(e,"startedEditing"))}stopEditing(e=!0){let t=this.editedCell,i=this.editModeContent;if(!t||!i)return!1;let{column:s}=t,n=s.viewport,r=i.value;if(e){let e=[];if(!n.validator.validate(t,e))return n.validator.initErrorBox(t,e),this.setA11yAttributes(!1),!1;this.setA11yAttributes(!0),n.validator.hide(),n.validator.errorCell=void 0}this.viewport.validator.hide(),this.destroy(),t.htmlElement.classList.remove(tA.getClassName("editedCell")),t.htmlElement.focus();let o=t.value!==r;return t.setValue(e?r:t.value,e&&o),o&&sT(t,"stoppedEditing",{submit:e}),delete this.editedCell,!0}setA11yAttributes(e){let t=this.editModeContent?.getMainElement();t&&(e?(t.setAttribute("aria-invalid","false"),t.setAttribute("aria-errormessage","")):(t.setAttribute("aria-invalid","true"),t.setAttribute("aria-errormessage","notification-error")))}render(){let e=this.editedCell;e&&e.column.editModeRenderer&&(this.containerElement=this.containerElement||document.createElement("div"),this.containerElement.className=sx.classNames.cellEditingContainer,this.editedCell?.htmlElement.appendChild(this.containerElement),this.editModeContent=e.column.editModeRenderer?.render(e,this.containerElement),this.editModeContent.getMainElement().focus(),this.editModeContent.blurHandler=this.onInputBlur,this.editModeContent.changeHandler=this.onInputChange,this.editModeContent.keyDownHandler=this.onInputKeyDown,(e.column.options?.cells?.editMode?.validationRules||[]).includes("notEmpty")&&this.editModeContent.getMainElement().setAttribute("aria-required","true"))}destroy(){this.editModeContent&&(this.editModeContent.destroy(),this.containerElement?.remove(),delete this.editModeContent,delete this.containerElement)}}(sx||(sx={})).classNames={cellEditingContainer:tA.classNamePrefix+"cell-editing-container"};let sS=sx;!function(e){e.types={},e.registerRenderer=function(t,i){return!!t&&!e.types[t]&&!!(e.types[t]=i)}}(d||(d={}));let sM=d,{makeHTMLElement:sL}=tD,{addEvent:sO,merge:sR,pushUnique:sN}=q;!function(e){let t={accessibility:{announcements:{cellEditing:!0}},lang:{accessibility:{cellEditing:{editable:"Editable.",announcements:{started:"Entered cell editing mode.",edited:"Edited cell value.",cancelled:"Editing canceled.",notValid:"Provided value is not valid."}}}}};function i(){this.cellEditing=new sS(this)}function s(){let{options:e}=this;e?.cells?.editMode?.enabled&&(this.editModeRenderer=function(e){let t=e.options.cells?.editMode,i=t?.renderer?.type,s=e.options?.cells?.renderer?.type||"text";if(i)return new sM.types[i](e,t?.renderer||{});let n=(sM.types[s]||sM.types.text).defaultEditingRenderer;return"string"!=typeof n&&(n=n[e.dataType]||"textInput"),new sM.types[n](e,n===s&&sR(e.options.cells?.renderer,{disabled:!1})||{})}(this))}function n(e){e.originalEvent?.key==="Enter"&&this.column.editModeRenderer&&this.row.viewport.cellEditing?.startEditing(this)}function r(){this.column.editModeRenderer&&this.row.viewport.cellEditing?.startEditing(this)}function o(){if(!this.row.viewport.grid.accessibility||this.a11yEditableHint?.isConnected)return;let e=this.row.viewport.grid.options?.lang?.accessibility?.cellEditing?.editable;this.column.options.cells?.editMode?.enabled&&e&&(this.a11yEditableHint=sL("span",{className:tA.getClassName("visuallyHidden"),innerText:", "+e},this.htmlElement))}function l(e,t){let i=e.row.viewport.grid.accessibility;if(!i)return;let{options:s}=i.grid;if(!s?.accessibility?.announcements?.cellEditing)return;let n=s?.lang?.accessibility?.cellEditing?.announcements,r=n?.[t];r&&i.announce(r)}e.compose=function(e,a,h){sN(tA.composed,"CellEditing")&&(sR(!0,tU.defaultOptions,t),sO(h,"afterInit",s),sO(e,"beforeInit",i),sO(a,"keyDown",n),sO(a,"dblClick",r),sO(a,"afterRender",o),sO(a,"startedEditing",function(){l(this,"started")}),sO(a,"stoppedEditing",function(e){e.submit&&this.column.options.cells?.events?.afterEdit?.call(this),l(this,e.submit?"edited":"cancelled")}))}}(u||(u={}));let sA=u,{makeHTMLElement:sI,setHTMLContent:sD}=tD;class sk{constructor(e,t){this.grid=e,this.containerElement=sI("div",{className:tA.getClassName("creditsContainer")}),this.textElement=this.renderAnchor(),this.options=t??sk.defaultOptions,this.render()}render(){let e=this.grid,t=e.contentWrapper,{text:i,href:s}=this.options;this.containerElement.remove(),this.textElement||(this.textElement=this.renderAnchor()),i&&sD(this.textElement,i),s&&this.textElement.setAttribute("href",s||""),e.descriptionElement?t?.insertBefore(this.containerElement,e.descriptionElement):t?.appendChild(this.containerElement)}renderAnchor(){let e=sI("a",{className:tA.getClassName("creditsText")},this.containerElement);return e.setAttribute("target","_blank"),e.setAttribute("alt","Highcharts logo"),e}getHeight(){return this.containerElement.offsetHeight}destroy(){this.containerElement.remove()}}sk.defaultOptions={enabled:!0,text:"",href:"https://www.highcharts.com",position:"bottom"};let sP=sk,{setHTMLContent:sH}=tD,sz=class extends sP{setContent(){let{text:e,href:t}=this.options;sH(this.textElement,e||""),this.textElement.setAttribute("href",t||"")}appendToContainer(){let e=this.grid,t=e.contentWrapper,{position:i}=this.options;if(this.containerElement.classList.add(tA.getClassName("creditsPro")),"top"===i)return void t?.prepend(this.containerElement);e.descriptionElement?t?.insertBefore(this.containerElement,e.descriptionElement):t?.appendChild(this.containerElement)}update(e,t=!0){e&&(this.grid.update({credits:e},!1),this.options=this.grid.options?.credits??{}),t&&this.render()}render(){let e=this.options.enabled??!1;this.containerElement.remove(),e?(this.setContent(),this.appendToContainer()):this.destroy(),this.grid.viewport?.reflow()}destroy(){super.destroy(),delete this.grid.credits}},{addEvent:sB,merge:sF,pushUnique:sW}=q;!function(e){function t(){this.credits=new sz(this,this.options?.credits)}e.compose=function(e){sW(tA.composed,"CreditsPro")&&(sF(!0,tU.defaultOptions,{credits:sz.defaultOptions}),sB(e,"afterRenderViewport",t))}}(c||(c={}));let sj=c,{isSafari:sU,win:sV,win:{document:sq}}=b,{error:sY}=q,sK=sV.URL||sV.webkitURL||sV;function s$(e){let t=e.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(t&&t.length>3&&sV.atob&&sV.ArrayBuffer&&sV.Uint8Array&&sV.Blob&&sK.createObjectURL){let e=sV.atob(t[3]),i=new sV.ArrayBuffer(e.length),s=new sV.Uint8Array(i);for(let t=0;t<s.length;++t)s[t]=e.charCodeAt(t);return sK.createObjectURL(new sV.Blob([s],{type:t[1]}))}}let{downloadURL:s_,getBlobFromContent:sG}={dataURLtoBlob:s$,downloadURL:function(e,t){let i=sV.navigator,s=sq.createElement("a");if("string"!=typeof e&&!(e instanceof String)&&i.msSaveOrOpenBlob)return void i.msSaveOrOpenBlob(e,t);if(e=""+e,i.userAgent.length>1e3)throw Error("Input too long");let n=/Edge\/\d+/.test(i.userAgent);if((sU&&"string"==typeof e&&0===e.indexOf("data:application/pdf")||n||e.length>2e6)&&!(e=s$(e)||""))throw Error("Failed to convert to blob");if(void 0!==s.download)s.href=e,s.download=t,sq.body.appendChild(s),s.click(),sq.body.removeChild(s);else try{if(!sV.open(e,"chart"))throw Error("Failed to open window")}catch{sV.location.href=e}},getBlobFromContent:function(e,t){let i=sV.navigator,s=sV.URL||sV.webkitURL||sV;try{if(i.msSaveOrOpenBlob&&sV.MSBlobBuilder){let t=new sV.MSBlobBuilder;return t.append(e),t.getBlob("image/svg+xml")}return s.createObjectURL(new sV.Blob(["\uFEFF"+e],{type:t}))}catch(e){}},getScript:function(e){return new Promise((t,i)=>{let s=sq.getElementsByTagName("head")[0],n=sq.createElement("script");n.type="text/javascript",n.src=e,n.onload=()=>{t()},n.onerror=()=>{let t=`Error loading script ${e}`;sY(t),i(Error(t))},s.appendChild(n)})}};class sZ{constructor(e){this.grid=e}downloadCSV(e=!0){let t=this.getCSV(e);s_(sG(t,"text/csv")||"data:text/csv,\uFEFF"+encodeURIComponent(t),this.getFilename()+".csv")}downloadJSON(e=!0){let t=this.getJSON(e);s_(sG(t,"application/json")||"data:application/json,\uFEFF"+encodeURIComponent(t),this.getFilename()+".json")}getCSV(e=!0){let t=e?this.grid.viewport?.dataTable:this.grid.dataTable;if(!t)return"";let i=this.grid.options?.exporting||sZ.defaultOptions,{useLocalDecimalPoint:s,lineDelimiter:n,firstRowAsNames:r}=i.csv??{},{decimalPoint:o,itemDelimiter:l}=i.csv??{};o||(o=","!==l&&s?1.1.toLocaleString()[1]:"."),l||(l=","===o?";":",");let a=t.getColumns(),h=Object.keys(a),d=[],u=h.length,c=[];!1!==r&&d.push(h.map(e=>`"${e}"`).join(l));for(let e=0;e<u;e++){let t,i=a[h[e]],s=i.length;for(let n=0;n<s;n++){let s=i[n];if(c[n]||(c[n]=[]),"string"===t?s='"'+s+'"':"number"==typeof s?s=String(s).replace(".",o):"string"==typeof s&&(s=`"${s}"`),c[n][e]=s,e===u-1){let t=e;for(;c[n].length>2&&void 0===c[n][t];)c[n].pop(),t--;d.push(c[n].join(l))}}}return d.join(n)}getJSON(e=!0){return this.grid.getData(e)}getFilename(){let e=this.grid.options?.exporting?.filename||"Grid";return e?e.replace(/\//g,"-"):("string"==typeof e&&(e=e.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z\d\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),e)}}sZ.defaultOptions={filename:"Grid",csv:{firstRowAsNames:!0,useLocalDecimalPoint:!0,itemDelimiter:",",lineDelimiter:"\n"}};let{addEvent:sJ,pushUnique:sX}=q;!function(e){function t(){this.exporting=new sZ(this)}e.compose=function(e){sX(tA.composed,"Exporting")&&(tU.defaultOptions.exporting=sZ.defaultOptions,sJ(e,"beforeLoad",t))}}(p||(p={}));let sQ=p,{makeDiv:s0,setHTMLContent:s1}=tD,{defined:s3}=q;class s6{constructor(e){this.viewport=e,this.notifContainer=s0(s6.classNames.notifContainer),this.viewport.grid.contentWrapper?.appendChild(this.notifContainer)}validate(e,t=[]){let{options:i,dataType:s}=e.column,n=e.row.viewport.grid.options?.lang?.validationErrors,r=Array.from(i?.cells?.editMode?.validationRules||[]),o=r.every(e=>"string"==typeof e);if(r.length>0&&o)r=[...new Set(r)];else{let e=s6.predefinedRules[s]||[];r.some(t=>"string"!=typeof t&&"string"==typeof t.validate&&e.includes(t.validate))||r.push(...e)}for(let i of r){let s,r,o;if("string"==typeof i?(s=s6.rulesRegistry[i],r=n?.[i]?.notification):s=i,"string"==typeof s.validate){let e=s6.rulesRegistry[s.validate];o=e?.validate}else o=s.validate;let{editModeContent:l}=e.column.viewport.cellEditing||{};"function"==typeof o&&l&&!o.call(e,l)&&("function"==typeof s.notification&&(r=s.notification.call(e,l)),t.push(r||s.notification))}return!t.length}initErrorBox(e,t){let{grid:i}=this.viewport;this.errorCell=e,this.reflow(),s1(this.notifContainer,t.join("<br />")),i.options?.accessibility?.announcements?.cellEditing&&this.viewport.grid.accessibility?.announce((i.options?.lang?.accessibility?.cellEditing?.announcements?.notValid||"")+" "+t.join(". "),!0),this.show()}show(){this.errorCell?.htmlElement.classList.add(s6.classNames.editedCellError),this.notifContainer.classList.add(s6.classNames.notifError,s6.classNames.notifAnimation),this.notifContainer.setAttribute("id","notification-error")}hide(e=!0){this.errorCell?.htmlElement.classList.remove(s6.classNames.editedCellError),this.notifContainer.classList.remove(s6.classNames.notifError,s6.classNames.notifAnimation),this.notifContainer.removeAttribute("id"),e&&(this.errorCell=void 0),this.notifContainer.innerHTML=en.emptyHTML}reflow(){let e=this.viewport,t=this.errorCell?.htmlElement,i=e.grid.tableElement,s=e.grid.contentWrapper;if(!t||!i||!s)return;let n=i.offsetTop,r=i.offsetHeight;t.offsetTop-n>n+r/2?(this.notifContainer.style.top=n+(e.theadElement?.offsetHeight||0)+"px",this.notifContainer.style.bottom="auto"):(this.notifContainer.style.top="auto",this.notifContainer.style.bottom=s.offsetHeight-n-r+"px")}destroy(){this.errorCell=void 0,this.notifContainer.remove()}}!function(e){e.classNames={notifContainer:tA.classNamePrefix+"notification",notifError:tA.classNamePrefix+"notification-error",notifAnimation:tA.classNamePrefix+"notification-animation",editedCellError:tA.classNamePrefix+"edited-cell-error"},e.rulesRegistry={notEmpty:{validate:({value:e,rawValue:t})=>s3(e)&&t.length>0,notification:"Value cannot be empty."},number:{validate:({rawValue:e})=>!isNaN(+e),notification:"Value has to be a number."},datetime:{validate:({value:e})=>!s3(e)||!isNaN(+e),notification:"Value has to be parsed to a valid timestamp."},boolean:{validate:({rawValue:e})=>"true"===e||"false"===e||1===Number(e)||0===Number(e),notification:"Value has to be a boolean."},ignoreCaseUnique:{validate:function({rawValue:e}){let t=String(this.value).toLowerCase(),i=e.toLowerCase();if(t===i)return!0;let s=this.column.data;return!s?.some(e=>String(e).toLowerCase()===i)},notification:"Value must be unique within this column (case-insensitive)."},unique:{validate:function({rawValue:e}){if(this.value===e)return!0;let t=this.column.data;return!t?.some(t=>t===e)},notification:"Value must be unique within this column (case-sensitive)."}},e.predefinedRules={boolean:["boolean"],datetime:["datetime"],number:["number"],string:[]}}(s6||(s6={}));let s2=s6,{addEvent:s5,pushUnique:s7}=q;!function(e){function t(){this.validator=new s2(this)}function i(){this.validator.destroy()}e.compose=function(e){s7(tA.composed,"Validator")&&(s5(e,"afterInit",t),s5(e,"afterDestroy",i))}}(m||(m={}));let s4=m,{addEvent:s9,pushUnique:s8}=q;!function(e){function t(){let e=this.options.cells?.renderer?.type||"text",t=sM.types[e];t||(console.warn(`The cell renderer of type "${e}" is not registered. Using default text renderer instead.`),t=sM.types.text),this.cellRenderer=new t(this,this.options.cells?.renderer||{})}function i(e){return this.cellRenderer.render(e)}e.compose=function(e){s8(tA.composed,"CellRenderers")&&(s9(e,"afterInit",t),e.prototype.createCellContent=i)}}(g||(g={}));let ne=g,{addEvent:nt,pushUnique:ni}=q;(f||(f={})).compose=function(e){ni(b.composed,"PaginationPro")&&(nt(e,"beforePageChange",e=>{let{target:t,currentPage:i,nextPage:s,pageSize:n}=e;t.options.events?.beforePageChange?.call(t,{currentPage:i,nextPage:s,pageSize:n})}),nt(e,"afterPageChange",e=>{let{target:t,currentPage:i,previousPage:s,pageSize:n}=e;t.options.events?.afterPageChange?.call(t,{currentPage:i,previousPage:s,pageSize:n})}),nt(e,"beforePageSizeChange",e=>{let{target:t,newPageSize:i,pageSize:s}=e;t.options.events?.beforePageSizeChange?.call(t,{pageSize:s,newPageSize:i})}),nt(e,"afterPageSizeChange",e=>{let{target:t,previousPageSize:i,pageSize:s}=e;t.options.events?.afterPageSizeChange?.call(t,{pageSize:s,previousPageSize:i})}))};let ns=f,nn=class extends tV{constructor(e,t){super(e),this.renderer=t}},nr=class{constructor(e){this.column=e}},{merge:no}=q;class nl extends tx{constructor(e){let t=no(nl.defaultOptions,e);super(t),this.headers=[],this.dataTypes=[],this.options=t}parse(e,t){let i=this.dataTypes,s=no(this.options,e),{beforeParse:n,lineDelimiter:r,firstRowAsNames:o,itemDelimiter:l}=s,a,h=0,{csv:d,startRow:u,endRow:c}=s,p,m=[];if(this.emit({type:"parse",columns:m,detail:t,headers:this.headers}),d&&n&&(d=n(d)),d){if(a=d.replace(/\r\n|\r/g,"\n").split(r||"\n"),(!u||u<0)&&(u=0),(!c||c>=a.length)&&(c=a.length-1),l||(this.guessedItemDelimiter=this.guessDelimiter(a)),o){let e=a[0].split(l||this.guessedItemDelimiter||",");for(let t=0;t<e.length;t++)e[t]=e[t].trim().replace(/^["']|["']$/g,"");this.headers=e,u++}let e=0;for(h=u;h<=c;h++)"#"===a[h][0]?e++:this.parseCSVRow(m,a[h],h-u-e);i.length&&i[0].length&&"date"===i[0][1]&&!this.options.dateFormat&&this.deduceDateFormat(m[0],null,!0);for(let e=0,t=m.length;e<t;++e){p=m[e];for(let t=0,i=p.length;t<i;++t)if(p[t]&&"string"==typeof p[t]){let i=this.convertByType(p[t]);i instanceof Date&&(i=i.getTime()),m[e][t]=i}}}return m.forEach(e=>{e.length=Math.max(...m.map(e=>e.length))}),this.emit({type:"afterParse",columns:m,detail:t,headers:this.headers}),tb.getColumnsCollection(m,this.headers)}parseCSVRow(e,t,i){let s=this,n=s.dataTypes,{startColumn:r,endColumn:o}=s.options,l=s.options.itemDelimiter||s.guessedItemDelimiter,{decimalPoint:a}=s.options;a&&a!==l||(a=s.guessedDecimalPoint||".");let h=0,d="",u="",c=0,p=0,m=e=>{d=t[e]},g=e=>{n.length<p+1&&n.push([e]),n[p][n[p].length-1]!==e&&n[p].push(e)},f=()=>{if(r>c||c>o){++c,u="";return}if("string"==typeof u){let e=parseFloat(u);!isNaN(e)&&isFinite(Number(u))?(u=e,g("number")):isNaN(Date.parse(u))?g("string"):(u=u.replace(/\//g,"-"),g("date"))}else g("number");if(e.length<p+1&&e.push([]),"number"!=typeof u&&"number"!==tb.guessType(u,s)&&a){let e=u;u=u.replace(a,"."),"number"!==tb.guessType(u,s)&&(u=e)}e[p][i]=u,u="",++p,++c};if(t.trim().length&&"#"!==t.trim()[0]){for(;h<t.length;h++){if(m(h),"#"===d&&!/^#[A-F\d]{3,3}|[A-F\d]{6,6}/i.test(t.substring(h)))return void f();if('"'===d)for(m(++h);h<t.length&&'"'!==d;)u+=d,m(++h);else d===l?f():u+=d}f()}}guessDelimiter(e){let t=0,i=0,s,n={",":0,";":0," ":0},r=e.length;for(let s=0;s<r;s++){let r=!1,o,l,a,h="";if(s>13)break;let d=e[s];for(let e=0;e<d.length&&(o=d[e],l=d[e+1],a=d[e-1],"#"!==o);e++){if('"'===o)if(r){if('"'!==a&&'"'!==l){for(;" "===l&&e<d.length;)l=d[++e];void 0!==n[l]&&n[l]++,r=!1}}else r=!0;else void 0!==n[o]?(isNaN(Date.parse(h=h.trim()))?(isNaN(Number(h))||!isFinite(Number(h)))&&n[o]++:n[o]++,h=""):h+=o;","===o&&i++,"."===o&&t++}}return n[";"]>n[","]?s=";":(n[","]>n[";"],s=","),t>i?this.guessedDecimalPoint=".":this.guessedDecimalPoint=",",s}}nl.defaultOptions={...tx.defaultOptions,lineDelimiter:"\n",startColumn:0,endColumn:Number.MAX_VALUE,startRow:0,endRow:Number.MAX_VALUE},tx.registerType("CSV",nl);let{merge:na,fireEvent:nh}=q;class nd extends ty{constructor(e){let t=na(nd.defaultOptions,e);super(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}emit(e){nh(this,e.type,e)}load(e){let t=this,i=t.options,{csv:s,csvURL:n,dataTables:r,decimalPoint:o}=i;return t.emit({type:"load",csv:s}),Promise.resolve(n?fetch(n,{signal:t?.pollingController?.signal}).then(e=>e.text()):s||"").then(e=>(e&&this.initConverters(e,e=>{let{firstRowAsNames:t=i.firstRowAsNames,beforeParse:s=i.beforeParse}=r?.find(t=>t.key===e)||{};return new nl(na(i,{decimalPoint:o,firstRowAsNames:t,beforeParse:s}))},(e,t)=>e.parse({csv:t})),t.applyTableModifiers().then(()=>e))).then(i=>(t.emit({type:"afterLoad",detail:e,csv:i}),t)).catch(i=>{throw t.emit({type:"loadError",detail:e,error:i}),i})}}nd.defaultOptions={id:"csv-connector",type:"CSV",csv:"",csvURL:"",enablePolling:!1,dataRefreshRate:1,firstRowAsNames:!0},ty.registerType("CSV",nd);let{merge:nu,uniqueKey:nc}=q;class np extends tx{constructor(e){let t=nu(np.defaultOptions,e);super(t),this.header=[],this.options=t}parse(e,t){let i,s=nu(this.options,e),n=(s.json?.values||[]).map(e=>e.slice());if(0===n.length)return{};this.header=[],this.emit({type:"parse",columns:[],detail:t,headers:this.header});let{beforeParse:r,json:o}=s;r&&o&&(n=r(o.values));for(let e=0,t=n.length;e<t;e++){i=n[e],this.header[e]=s.firstRowAsNames?`${i.shift()}`:nc();for(let t=0,s=i.length;t<s;++t){var l;let s=i[t];l=s,"[object Date]"===Object.prototype.toString.call(l)&&(s=s.getTime()),n[e][t]=s}}return this.emit({type:"afterParse",columns:n,detail:t,headers:this.header}),tb.getColumnsCollection(n,this.header)}}np.defaultOptions={...tx.defaultOptions},tx.registerType("GoogleSheets",np);let{merge:nm,pick:ng,fireEvent:nf}=q;class ny extends ty{constructor(e){let t=nm(ny.defaultOptions,e);super(t),this.options=t}emit(e){nf(this,e.type,e)}load(e){let t=this,i=t.options,{dataRefreshRate:s,enablePolling:n,googleAPIKey:r,googleSpreadsheetKey:o,dataTables:l}=i,a=ny.buildFetchURL(r,o,i);if(t.emit({type:"load",detail:e,url:a}),!URL.canParse(a))throw Error("Invalid URL: "+a);return fetch(a,{signal:t?.pollingController?.signal}).then(e=>e.json()).then(e=>{if("object"==typeof e&&e&&"object"==typeof e.error&&e.error&&"number"==typeof e.error.code&&"string"==typeof e.error.message&&"string"==typeof e.error.status)throw Error(e.error.message);return this.initConverters(e,e=>{let{firstRowAsNames:t=i.firstRowAsNames,beforeParse:s=i.beforeParse}=l?.find(t=>t.key===e)||{};return new np({firstRowAsNames:t,beforeParse:s})},(e,t)=>e.parse({json:t})),t.applyTableModifiers()}).then(()=>(t.emit({type:"afterLoad",detail:e,url:a}),n&&setTimeout(()=>t.load(),1e3*Math.max(s||0,1)),t)).catch(i=>{throw t.emit({type:"loadError",detail:e,error:i}),i})}}ny.defaultOptions={id:"google-sheets-connector",type:"GoogleSheets",googleAPIKey:"",googleSpreadsheetKey:"",enablePolling:!1,dataRefreshRate:2,firstRowAsNames:!0},function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZ";function i(e={}){let{endColumn:s,endRow:n,googleSpreadsheetRange:r,startColumn:o,startRow:l}=e;return r||(t[o||0]||"A")+(Math.max(l||0,0)+1)+":"+(t[ng(s,25)]||"Z")+(n?Math.max(n,0):"Z")}e.buildFetchURL=function(e,t,s={}){let n=new URL(`https://sheets.googleapis.com/v4/spreadsheets/${t}/values/`),r=s.onlyColumnIds?"A1:Z1":i(s);n.pathname+=r;let o=n.searchParams;return o.set("alt","json"),s.onlyColumnIds||(o.set("dateTimeRenderOption","FORMATTED_STRING"),o.set("majorDimension","COLUMNS"),o.set("valueRenderOption","UNFORMATTED_VALUE")),o.set("prettyPrint","false"),o.set("key",e),n.href},e.buildQueryRange=i}(ny||(ny={})),ty.registerType("GoogleSheets",ny);let{merge:nw}=q;class nb extends tx{constructor(e){let t=nw(nb.defaultOptions,e);super(t),this.headers=[],this.options=t,t.tableElement&&(this.tableElement=t.tableElement,this.tableElementID=t.tableElement.id)}export(e,t=this.options){let i=!1!==t.firstRowAsNames,s=t.useMultiLevelHeaders,n=e.getSortedColumns(),r=Object.keys(n),o=[],l=r.length,a=[],h="";if(i){let e=[];if(s){for(let t of r){let i=n[t];Array.isArray(i)||(i=Array.from(i));let s=(i.shift()||"").toString();n[t]=i,e.push(s)}h=this.getTableHeaderHTML(r,e,t)}else h=this.getTableHeaderHTML(void 0,r,t)}for(let e=0;e<l;e++){let t=n[r[e]],i=t.length;for(let s=0;s<i;s++){let i=t[s];a[s]||(a[s]=[]),"string"!=typeof i&&"number"!=typeof i&&void 0!==i&&(i=(i||"").toString()),a[s][e]=this.getCellHTMLFromValue(e?"td":"th",null,e?"":'scope="row"',i),e===l-1&&o.push("<tr>"+a[s].join("")+"</tr>")}}let d="";return t.tableCaption&&(d='<caption class="highcharts-table-caption">'+t.tableCaption+"</caption>"),"<table>"+d+h+"<tbody>"+o.join("")+"</tbody></table>"}getCellHTMLFromValue(e,t,i,s,n){let r=s,o="text"+(t?" "+t:"");return"number"==typeof r?(r=r.toString(),","===n&&(r=r.replace(".",n)),o="number"):s||(r="",o="empty"),"<"+e+(i?" "+i:"")+' class="'+o+'">'+r+"</"+e+">"}getTableHeaderHTML(e=[],t=[],i=this.options){let{useMultiLevelHeaders:s,useRowspanHeaders:n}=i,r="<thead>",o=0,l=t&&t.length,a,h=0,d;if(s&&e&&t&&!function(e,t){let i=e.length;if(t.length!==i)return!1;for(;--i;)if(e[i]!==t[i])return!1;return!0}(e,t)){for(r+="<tr>";o<l;++o)(a=e[o])===e[o+1]?++h:h?(r+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col" colspan="'+(h+1)+'"',a),h=0):(a===t[o]?n?(d=2,t.splice(o,1)):(d=1,t[o]=""):d=1,r+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col"'+(d>1?' valign="top" rowspan="'+d+'"':""),a));r+="</tr>"}if(t){for(r+="<tr>",o=0,l=t.length;o<l;++o)void 0!==t[o]&&(r+=this.getCellHTMLFromValue("th",null,'scope="col"',t[o]));r+="</tr>"}return r+"</thead>"}parse(e,t){let i=[],s=[],n=nw(this.options,e),{endRow:r,startColumn:o,endColumn:l,firstRowAsNames:a}=n,h=n.tableElement||this.tableElement;if(!(h instanceof HTMLElement))return this.emit({type:"parseError",columns:i,detail:t,headers:s,error:"Not a valid HTML Table"}),{};this.tableElement=h,this.tableElementID=h.id,this.emit({type:"parse",columns:i,detail:t,headers:this.headers});let d=h.getElementsByTagName("tr"),u=d.length,c=0,p,{startRow:m}=n;if(a&&u){let e=d[0].children,t=e.length;for(let i=o;i<t&&!(i>l);i++)("TD"===(p=e[i]).tagName||"TH"===p.tagName)&&s.push(p.innerHTML);m++}for(;c<u;){if(c>=m&&c<=r){let e=d[c].children,t=e.length,s=0;for(;s<t;){let t=s-o,n=i[t];if(("TD"===(p=e[s]).tagName||"TH"===p.tagName)&&s>=o&&s<=l){i[t]||(i[t]=[]);let e=this.convertByType(p.innerHTML);e instanceof Date&&(e=e.getTime()),i[t][c-m]=e;let s=1;for(;c-m>=s&&void 0===n[c-m-s];)n[c-m-s]=null,s++}s++}}c++}return this.headers=s,this.emit({type:"afterParse",columns:i,detail:t,headers:s}),tb.getColumnsCollection(i,this.headers)}}nb.defaultOptions={...tx.defaultOptions,useRowspanHeaders:!0,useMultiLevelHeaders:!0,startColumn:0,endColumn:Number.MAX_VALUE,startRow:0,endRow:Number.MAX_VALUE},tx.registerType("HTMLTable",nb);let{win:nv}=b,{merge:nC}=q;class nE extends ty{constructor(e){let t=nC(nE.defaultOptions,e);super(t),this.options=t,this.converter=new nb(t)}async load(e){let t,i=this.options,s=this.converter,n=this.getTable(),r=i.htmlTable;if(this.emit({type:"load",detail:e}),"string"==typeof r?(this.tableID=r,t=nv.document.getElementById(r)):(t=r,this.tableID=t.id),this.tableElement=t||void 0,!this.tableElement){let t="HTML table not provided, or element with ID not found";return this.emit({type:"loadError",detail:e,error:t}),Promise.reject(Error(t))}let o=s.parse(nC({tableElement:this.tableElement},i),e);return n.deleteColumns(),n.setColumns(o),await this.applyTableModifiers(),this.emit({type:"afterLoad",detail:e}),this}}nE.defaultOptions={id:"HTML-table-connector",type:"HTMLTable",htmlTable:""},ty.registerType("HTMLTable",nE);let{error:nT,isArray:nx,merge:nS,objectEach:nM}=q;class nL extends tx{constructor(e){let t=nS(nL.defaultOptions,e);super(t),this.headerColumnIds=[],this.headers=[],this.options=t}parse(e,t){let{beforeParse:i,orientation:s,firstRowAsNames:n,columnIds:r}=e=nS(this.options,e),o=e.data;if(!o)return{};this.headers=[];let l=[];return this.emit({type:"parse",columns:l,detail:t,headers:this.headers}),i&&(o=i(o)),o=o.slice(),"columns"===s?this.parseColumnsOrientation(l,o,n,r):"rows"===s&&this.parseRowsOrientation(l,o,n,r),this.emit({type:"afterParse",columns:l,detail:t,headers:this.headers}),tb.getColumnsCollection(l,this.headers)}parseColumnsOrientation(e,t,i,s){for(let n=0,r=t.length;n<r;n++){let r=t[n];if(!Array.isArray(r))return;Array.isArray(this.headers)?(i?this.headers.push(`${r.shift()}`):s&&Array.isArray(s)&&this.headers.push(s[n]),e.push(r)):nT("JSONConverter: Invalid `columnIds` option.",!1)}}parseRowsOrientation(e,t,i,s){i?this.headers=t.shift():s&&(this.headerColumnIds=s);for(let n=0,r=t.length;n<r;n++){let r=t[n];nx(r)||(r=this.convertItemToRow(r,s));for(let t=0,s=r.length;t<s;t++)e.length<t+1&&e.push([]),e[t].push(r[t]),i||0!==n||(Array.isArray(this.headerColumnIds)?this.headers.push(this.headerColumnIds[t]||t.toString()):nT("JSONConverter: Invalid `columnIds` option.",!1))}}convertItemToRow(e,t){let i=this;if(t&&!Array.isArray(t)){let s=[];return nM(t,(t,n)=>{s.push(t.reduce((e,t)=>e[t],e)),0>i.headers.indexOf(n)&&i.headers.push(n)}),s}return i.headerColumnIds=Object.keys(e),Object.values(e)}}nL.defaultOptions={...tx.defaultOptions,orientation:"rows"},tx.registerType("JSON",nL);let{merge:nO,fireEvent:nR}=q;class nN extends ty{constructor(e){let t=nO(nN.defaultOptions,e);super(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}emit(e){nR(this,e.type,e)}load(e){let t=this,i=t.options,{data:s,dataUrl:n,dataTables:r}=i;return t.emit({type:"load",detail:e,data:s}),Promise.resolve(n?fetch(n,{signal:t?.pollingController?.signal}).then(e=>e.json()).catch(i=>{t.emit({type:"loadError",detail:e,error:i}),console.warn(`Unable to fetch data from ${n}.`)}):s||[]).then(async e=>(e&&this.initConverters(e,t=>{let{columnIds:s=i.columnIds,firstRowAsNames:n=i.firstRowAsNames,orientation:o=i.orientation,beforeParse:l=i.beforeParse}=r?.find(e=>e.key===t)||{};return new nL({data:e,columnIds:s,firstRowAsNames:n,orientation:o,beforeParse:l})},(e,t)=>e.parse({data:t})),t.applyTableModifiers().then(()=>e??[]))).then(i=>(t.emit({type:"afterLoad",detail:e,data:i}),t)).catch(i=>{throw t.emit({type:"loadError",detail:e,error:i}),i})}}nN.defaultOptions={type:"JSON",id:"json-connector",data:[],enablePolling:!1,dataRefreshRate:0,firstRowAsNames:!0,orientation:"rows"},ty.registerType("JSON",nN);let{merge:nA}=q;class nI extends e5{constructor(e){super(),this.options=nA(nI.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let i=e.getModified();if(e.hasColumns(["columnIds"])){let t=(e.deleteColumns(["columnIds"])||{}).columnIds||[],s={},n=[];for(let e=0,i=t.length;e<i;++e)n.push(""+t[e]);for(let t=0,i=e.getRowCount(),r;t<i;++t)(r=e.getRow(t))&&(s[n[t]]=r);i.deleteColumns(),i.setColumns(s)}else{let t={};for(let i=0,s=e.getRowCount(),n;i<s;++i)(n=e.getRow(i))&&(t[`${i}`]=n);t.columnIds=e.getColumnIds(),i.deleteColumns(),i.setColumns(t)}return this.emit({type:"afterModify",detail:t,table:e}),e}}nI.defaultOptions={type:"Invert"},e5.registerType("Invert",nI);let{merge:nD}=q;class nk extends nr{constructor(e){super(e),this.options=nD(nk.defaultOptions,this.column.options.cells?.renderer||{});let t=e.options.cells;this.format=t?.format??t$.defaultFormatsForDataTypes[e.dataType],this.formatter=t?.formatter}render(e){return new t$(e)}}nk.defaultEditingRenderer={string:"textInput",number:"numberInput",boolean:"checkbox",datetime:"dateInput"},nk.defaultOptions={type:"text"},sM.registerRenderer("text",nk);let nP=class extends nn{constructor(e,t,i){super(e,t),this.finishAfterChange=!1,this.onChange=e=>{this.changeHandler?this.changeHandler(e):this.cell.setValue(this.value,!0)},this.onKeyDown=e=>{this.keyDownHandler?.(e)},this.onBlur=e=>{this.blurHandler?.(e)},this.onCellKeyDown=e=>{" "===e.key&&this.input.click()},this.input=this.add(i)}add(e=this.cell.htmlElement){let t=this.cell,{options:i}=this.renderer,s=this.input=document.createElement("input");return s.tabIndex=-1,s.type="checkbox",s.name=t.column.id+"-"+t.row.id,i.attributes&&Object.entries(i.attributes).forEach(([e,t])=>{s.setAttribute(e,t)}),this.update(),e.appendChild(this.input),s.classList.add(tA.classNamePrefix+"field-auto-width"),s.addEventListener("change",this.onChange),s.addEventListener("keydown",this.onKeyDown),s.addEventListener("blur",this.onBlur),this.cell.htmlElement.addEventListener("keydown",this.onCellKeyDown),this.input}update(){let e=this.cell,t=this.input,{options:i}=this.renderer;t.checked=!!e.value,t.disabled=!!i.disabled}get rawValue(){return this.input.checked?"true":"false"}get value(){let e=this.input.checked;switch(this.cell.column.dataType){case"datetime":case"number":return+e;case"boolean":return e;case"string":return""+e}}getMainElement(){return this.input}destroy(){let e=this.input;this.cell.htmlElement.removeEventListener("keydown",this.onCellKeyDown),e.removeEventListener("blur",this.onBlur),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("change",this.onChange),e.remove()}},{merge:nH}=q;class nz extends nr{constructor(e,t){super(e),this.options=nH(nz.defaultOptions,t)}render(e,t){return new nP(e,this,t)}}nz.defaultEditingRenderer="checkbox",nz.defaultOptions={type:"checkbox"},sM.registerRenderer("checkbox",nz);let nB=class extends nn{constructor(e,t,i){super(e,t),this.finishAfterChange=!0,this.optionElements=[],this.onChange=e=>{this.changeHandler?this.changeHandler(e):(this.cell.htmlElement.focus(),this.cell.setValue(this.value,!0))},this.onKeyDown=e=>{if(e.stopPropagation(),this.keyDownHandler)return void this.keyDownHandler?.(e);("Escape"===e.key||"Enter"===e.key)&&this.cell.htmlElement.focus()},this.onBlur=e=>{this.blurHandler?.(e)},this.onCellKeyDown=e=>{" "===e.key&&(this.select.focus(),e.preventDefault())},this.select=this.add(i)}add(e=this.cell.htmlElement){let t=this.cell,{options:i}=this.renderer,s=this.select=document.createElement("select");return s.tabIndex=-1,s.name=t.column.id+"-"+t.row.id,i.attributes&&Object.entries(i.attributes).forEach(([e,t])=>{s.setAttribute(e,t)}),this.update(),e.appendChild(this.select),s.addEventListener("change",this.onChange),s.addEventListener("keydown",this.onKeyDown),s.addEventListener("blur",this.onBlur),this.cell.htmlElement.addEventListener("keydown",this.onCellKeyDown),s}update(){let e=this.cell,{options:t}=this.renderer;for(let i of(this.select.disabled=!!t.disabled,this.select.innerHTML=en.emptyHTML,t.options)){let t=document.createElement("option");t.value=i.value,t.textContent=i.label||i.value,t.disabled=!!i.disabled,e.value===i.value&&(t.selected=!0),this.select.appendChild(t),this.optionElements.push(t)}}destroy(){let e=this.select;for(let t of(this.cell.htmlElement.removeEventListener("keydown",this.onCellKeyDown),e.removeEventListener("blur",this.onBlur),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("change",this.onChange),this.optionElements))t.remove();this.optionElements.length=0,e.remove()}get rawValue(){return this.select.value}get value(){let e=this.select.value;switch(this.cell.column.dataType){case"datetime":case"number":return+e;case"boolean":return e;case"string":return""+e}}getMainElement(){return this.select}},{merge:nF}=q;class nW extends nr{constructor(e,t){super(e),this.options=nF(nW.defaultOptions,t)}render(e,t){return new nB(e,this,t)}}nW.defaultEditingRenderer="select",nW.defaultOptions={type:"select",options:[]},sM.registerRenderer("select",nW);let{defined:nj}=q,nU=class extends nn{constructor(e,t,i){super(e,t),this.finishAfterChange=!0,this.onChange=e=>{if(this.changeHandler)return void this.changeHandler(e);this.cell.setValue(e.target.value,!0)},this.onKeyDown=e=>{if(e.stopPropagation(),this.keyDownHandler)return void this.keyDownHandler(e);if("Escape"===e.key){this.input.value=this.convertToInputValue(),this.cell.htmlElement.focus();return}"Enter"===e.key&&this.cell.htmlElement.focus()},this.onBlur=e=>{this.blurHandler?.(e)},this.onCellKeyDown=e=>{" "===e.key&&(this.input.focus(),e.preventDefault())},this.input=this.add(i)}add(e=this.cell.htmlElement){let t=this.cell,i=this.input=document.createElement("input"),{options:s}=this.renderer;return i.tabIndex=-1,i.name=t.column.id+"-"+t.row.id,s.attributes&&Object.entries(s.attributes).forEach(([e,t])=>{i.setAttribute(e,t)}),this.update(),e.appendChild(this.input),i.addEventListener("change",this.onChange),i.addEventListener("keydown",this.onKeyDown),i.addEventListener("blur",this.onBlur),this.cell.htmlElement.addEventListener("keydown",this.onCellKeyDown),i}update(){let{options:e}=this.renderer;this.input.value=this.convertToInputValue(),this.input.disabled=!!e.disabled}get rawValue(){return this.input.value}get value(){let e=this.input.value;switch(this.cell.column.dataType){case"datetime":case"number":return""===e?null:+e;case"boolean":if(""===e)return null;if("false"===e||0==+e)return!1;return!0;case"string":return e}}convertToInputValue(){let e=this.cell.value;return nj(e)?""+e:""}getMainElement(){return this.input}destroy(){let e=this.input;this.cell.htmlElement.removeEventListener("keydown",this.onCellKeyDown),e.removeEventListener("blur",this.onBlur),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("change",this.onChange),e.remove()}},{merge:nV}=q;class nq extends nr{constructor(e,t){super(e),this.options=nV(nq.defaultOptions,t)}render(e,t){return new nU(e,this,t)}}nq.defaultEditingRenderer="textInput",nq.defaultOptions={type:"textInput"},sM.registerRenderer("textInput",nq);let nY=class extends nn{constructor(e,t,i){super(e,t),this.finishAfterChange=!1,this.onChange=e=>{this.changeHandler?.(e)},this.onKeyDown=e=>{if(e.stopPropagation(),this.keyDownHandler)return void this.keyDownHandler(e);if("Escape"===e.key){this.cell.htmlElement.focus(),this.input.value=this.convertToInputValue();return}"Enter"===e.key&&(this.cell.htmlElement.focus(),this.cell.setValue(this.value,!0))},this.onBlur=e=>{if(this.blurHandler)return void this.blurHandler(e);this.cell.setValue(this.value,!0)},this.onCellKeyDown=e=>{" "===e.key&&(this.input.focus(),e.preventDefault())},this.options=t.options,this.input=this.add(i)}add(e=this.cell.htmlElement){let{cell:t,options:i}=this,s=this.input=document.createElement("input");return s.tabIndex=-1,s.type=this.getInputType(),s.name=t.column.id+"-"+t.row.id,i.attributes&&Object.entries(i.attributes).forEach(([e,t])=>{s.setAttribute(e,t)}),this.update(),e.appendChild(s),s.addEventListener("change",this.onChange),s.addEventListener("keydown",this.onKeyDown),s.addEventListener("blur",this.onBlur),this.cell.htmlElement.addEventListener("keydown",this.onCellKeyDown),this.input}update(){let e=this.input;e.value=this.convertToInputValue(),e.disabled=!!this.options.disabled}get rawValue(){return this.input.value}get value(){return new Date(`${this.input.value}Z`).getTime()}getMainElement(){return this.input}destroy(){let e=this.input;this.cell.htmlElement.removeEventListener("keydown",this.onCellKeyDown),e.removeEventListener("blur",this.onBlur),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("change",this.onChange),e.remove()}},nK=class extends nY{getInputType(){return"date"}convertToInputValue(){return this.cell.column.viewport.grid.time.dateFormat("%Y-%m-%d",Number(this.cell.value||0))}},{merge:n$}=q;class n_ extends nr{constructor(e,t){super(e),this.options=n$(n_.defaultOptions,t)}render(e,t){return new nK(e,this,t)}}n_.defaultEditingRenderer="dateInput",n_.defaultOptions={type:"dateInput"},sM.registerRenderer("dateInput",n_);let nG=class extends nY{getInputType(){return"datetime-local"}convertToInputValue(){return this.cell.column.viewport.grid.time.dateFormat("%Y-%m-%dT%H:%M:%S",Number(this.cell.value||0))}},{merge:nZ}=q;class nJ extends nr{constructor(e,t){super(e),this.options=nZ(nJ.defaultOptions,t)}render(e,t){return new nG(e,this,t)}}nJ.defaultEditingRenderer="dateTimeInput",nJ.defaultOptions={type:"dateTimeInput"},sM.registerRenderer("dateTimeInput",nJ);let nX=class extends nY{getInputType(){return"time"}get value(){return new Date(`1970-01-01T${this.input.value}Z`).getTime()}convertToInputValue(){return this.cell.column.viewport.grid.time.dateFormat("%H:%M:%S",Number(this.cell.value||0))}},{merge:nQ}=q;class n0 extends nr{constructor(e,t){super(e),this.options=nQ(n0.defaultOptions,t)}render(e,t){return new nX(e,this,t)}}n0.defaultEditingRenderer="timeInput",n0.defaultOptions={type:"timeInput"},sM.registerRenderer("timeInput",n0);let{defined:n1,merge:n3}=q;class n6 extends nn{constructor(e,t,i){super(e,t),this.onKeyDown=()=>{this.cell.htmlElement.focus()},this.add(i)}add(e=this.cell.htmlElement){let t=n6.H;t&&n1(this.cell.value)&&(this.chartContainer=document.createElement("div"),e.classList.add(tA.getClassName("noPadding")),e.appendChild(this.chartContainer),this.chart=t.Chart.chart(this.chartContainer,n3(n6.defaultChartOptions,this.getProcessedOptions())),this.chartContainer.addEventListener("click",this.onKeyDown))}update(){let e=this.getProcessedOptions();this.chart?.update(e,!0,!1,e.chart?.animation)}destroy(){this.chartContainer?.removeEventListener("keydown",this.onKeyDown),this.chart?.destroy(),this.chartContainer?.remove(),delete this.chart,delete this.chartContainer,this.cell.htmlElement.classList.remove(tA.getClassName("noPadding"))}getProcessedOptions(){let e,{chartOptions:t}=this.renderer.options;e="function"==typeof t?t.call(this.cell,this.cell.value):n3(t)||{};let i=(""+this.cell.value).trim();return i.startsWith("[")||i.startsWith("{")||(i=`[${i}]`),e.series||(e.series=[{data:JSON.parse(i)}]),e}}n6.defaultChartOptions={chart:{height:40,margin:[5,8,5,8],backgroundColor:"transparent",skipClone:!0},accessibility:{enabled:!1},tooltip:{enabled:!1},title:{text:""},credits:{enabled:!1},xAxis:{visible:!1},yAxis:{visible:!1},legend:{enabled:!1},plotOptions:{series:{borderWidth:0,marker:{enabled:!1},states:{hover:{enabled:!1},inactive:{enabled:!1}},animation:!1,dataLabels:{enabled:!1}},pie:{slicedOffset:0,borderRadius:0}}},n6||(n6={});let n2=n6,{merge:n5}=q;class n7 extends nr{constructor(e){if(super(e),!n2.H)throw Error("Sparkline Renderer: Highcharts is not loaded. Please ensure that Highcharts namespace is registered before the Sparkline Renderer is used.");this.options=n5(n7.defaultOptions,this.column.options.cells?.renderer||{})}render(e){return new n2(e,this)}}n7.defaultEditingRenderer="textInput",n7.defaultOptions={type:"sparkline"},(n7||(n7={})).useHighcharts=function(e){e&&!n2.H&&(n2.H=e)},sM.registerRenderer("sparkline",n7);let{defined:n4}=q,n9=class extends nn{constructor(e,t,i){super(e,t),this.finishAfterChange=!1,this.dblClickHandler=e=>{e.stopPropagation(),this.input.focus()},this.onChange=e=>{if(this.changeHandler)return void this.changeHandler(e);this.cell.setValue(this.value,!0)},this.onKeyDown=e=>{if(e.stopPropagation(),this.keyDownHandler)return void this.keyDownHandler(e);if("Escape"===e.key){this.input.value=this.convertToInputValue(),this.cell.htmlElement.focus();return}"Enter"===e.key&&this.cell.htmlElement.focus()},this.onBlur=e=>{this.blurHandler?.(e)},this.onCellKeyDown=e=>{" "===e.key&&(this.input.focus(),e.preventDefault())},this.input=this.add(i)}add(e=this.cell.htmlElement){let t=this.cell,i=this.input=document.createElement("input"),{options:s}=this.renderer;return i.type="number",i.tabIndex=-1,i.name=t.column.id+"-"+t.row.id,s.attributes&&Object.entries(s.attributes).forEach(([e,t])=>{i.setAttribute(e,t)}),this.update(),e.appendChild(this.input),i.addEventListener("change",this.onChange),i.addEventListener("keydown",this.onKeyDown),i.addEventListener("blur",this.onBlur),i.addEventListener("dblclick",this.dblClickHandler),this.cell.htmlElement.addEventListener("keydown",this.onCellKeyDown),i}update(){let{options:e}=this.renderer;this.input.value=this.convertToInputValue(),this.input.disabled=!!e.disabled}get rawValue(){return this.input.value}get value(){return+this.input.value}convertToInputValue(){let e=this.cell.value;return n4(e)?""+e:""}getMainElement(){return this.input}destroy(){let e=this.input;this.cell.htmlElement.removeEventListener("keydown",this.onCellKeyDown),e.removeEventListener("blur",this.onBlur),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("change",this.onChange),e.remove()}},{merge:n8}=q;class re extends nr{constructor(e,t){super(e),this.options=n8(re.defaultOptions,t)}render(e,t){return new n9(e,this,t)}}re.defaultEditingRenderer="numberInput",re.defaultOptions={type:"numberInput"},sM.registerRenderer("numberInput",re),tA.AST=en,tA.classNamePrefix="hcg-",tA.DataConnector=ty,tA.DataCursor=tM,tA.DataConverter=tx,tA.Grid=sm,tA.grid=sm.grid,tA.grids=sm.grids,tA.DataModifier=e5,tA.DataPool=sw,tA.DataTable=tu,tA.ColumnResizing=e0,tA.defaultOptions=tU.defaultOptions,tA.isHighContrastModeActive=tN.isHighContrastModeActive,tA.setOptions=tU.setOptions,tA.Templating=eK,tA.product="Grid Pro",tA.merge=q.merge,tA.Table=tA.Table||iY,tA.Column=tA.Column||tJ,tA.HeaderCell=tA.HeaderCell||iL,tA.TableCell=tA.TableCell||iP,tA.Pagination=tA.Pagination||sr,({compose:function(e,t,i,s){sC(b.composed,"GridEvents")&&(["beforeLoad","afterLoad"].forEach(t=>{sb(e,t,e=>{let i=e.target;i.options?.events?.[t]?.call(i)})}),["mouseOver","mouseOut","dblClick","click","afterRender"].forEach(e=>{sb(s,e,t=>{let i=t.target;i.column.options.cells?.events?.[e]?.call(i),sE["cell_"+e]?.call(i)})}),["afterResize","beforeSort","afterSort","beforeFilter","afterFilter"].forEach(e=>{sb(t,e,t=>{let i=t.target;i.options?.events?.[e]?.call(i)})}),["click","afterRender"].forEach(e=>{sb(i,e,t=>{let{column:i}=t;i?.options?.header?.events?.[e]?.call(i)})}))}}).compose(tA.Grid,tA.Column,tA.HeaderCell,tA.TableCell),sA.compose(tA.Table,tA.TableCell,tA.Column),sj.compose(tA.Grid),sQ.compose(tA.Grid),s4.compose(tA.Table),ne.compose(tA.Column),ns.compose(tA.Pagination),tA.CellRendererRegistry=tA.CellRendererRegistry||sM,tA.CellContentPro=nn,tA.CellRenderer=nr,tA.SvgIcons=t6,tA.win.Grid||(tA.win.Grid=tA),tA.win.Highcharts&&tA.CellRendererRegistry.types.sparkline.useHighcharts(tA.win.Highcharts);let rt=tA;return w.default})());