@highcharts/grid-pro 2.2.0 → 2.3.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 (266) hide show
  1. package/LICENSE.txt +6 -0
  2. package/README.md +15 -9
  3. package/css/grid-pro.css +1262 -1122
  4. package/css/modules/grid-base-variables.css +131 -0
  5. package/css/modules/grid-button-variables.css +140 -0
  6. package/css/modules/grid-caption-variables.css +11 -0
  7. package/css/modules/grid-description-variables.css +11 -0
  8. package/css/modules/grid-input-variables.css +114 -0
  9. package/css/modules/grid-link-variables.css +18 -0
  10. package/css/modules/grid-menu-variables.css +50 -0
  11. package/css/modules/grid-pagination-variables.css +12 -0
  12. package/css/modules/grid-popup-variables.css +24 -0
  13. package/css/modules/grid-pro.css +234 -0
  14. package/css/modules/grid-table-variables.css +385 -0
  15. package/css/modules/grid-theme-default.css +55 -0
  16. package/es-modules/Accessibility/A11yI18n.js +1 -2
  17. package/es-modules/Accessibility/Accessibility.js +1 -2
  18. package/es-modules/Accessibility/AccessibilityComponent.d.ts +2 -2
  19. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +5 -6
  20. package/es-modules/Accessibility/Components/LegendComponent.js +1 -2
  21. package/es-modules/Accessibility/Components/MenuComponent.js +1 -2
  22. package/es-modules/Accessibility/Components/NavigatorComponent.js +3 -4
  23. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +1 -2
  24. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +1 -2
  25. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +3 -4
  26. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -4
  27. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +1 -2
  28. package/es-modules/Accessibility/Components/ZoomComponent.js +1 -2
  29. package/es-modules/Accessibility/FocusBorder.js +1 -2
  30. package/es-modules/Accessibility/KeyboardNavigation.js +1 -2
  31. package/es-modules/Accessibility/KeyboardNavigationHandler.js +1 -2
  32. package/es-modules/Accessibility/Options/A11yDefaults.d.ts +11 -0
  33. package/es-modules/Accessibility/Options/A11yDefaults.js +11 -0
  34. package/es-modules/Accessibility/Options/DeprecatedOptions.d.ts +58 -0
  35. package/es-modules/Accessibility/Options/DeprecatedOptions.js +7 -2
  36. package/es-modules/Accessibility/Options/LangDefaults.js +9 -0
  37. package/es-modules/Accessibility/ProxyElement.js +2 -5
  38. package/es-modules/Accessibility/ProxyProvider.js +1 -2
  39. package/es-modules/Accessibility/Utils/Announcer.js +2 -3
  40. package/es-modules/Accessibility/Utils/ChartUtilities.js +1 -2
  41. package/es-modules/Accessibility/Utils/EventProvider.d.ts +2 -2
  42. package/es-modules/Accessibility/Utils/EventProvider.js +6 -2
  43. package/es-modules/Accessibility/Utils/HTMLUtilities.js +1 -2
  44. package/es-modules/Core/Animation/AnimationUtilities.js +1 -2
  45. package/es-modules/Core/Animation/Fx.js +1 -2
  46. package/es-modules/Core/Callback.d.ts +9 -2
  47. package/es-modules/Core/Chart/Chart.js +48 -41
  48. package/es-modules/Core/Chart/Chart3D.js +1 -2
  49. package/es-modules/Core/Chart/ChartDefaults.js +11 -0
  50. package/es-modules/Core/Chart/ChartOptions.d.ts +8 -0
  51. package/es-modules/Core/Chart/GanttChart.js +1 -2
  52. package/es-modules/Core/Chart/MapChart.js +1 -2
  53. package/es-modules/Core/Chart/StockChart.js +2 -3
  54. package/es-modules/Core/Color/Color.js +1 -2
  55. package/es-modules/Core/Defaults.js +36 -9
  56. package/es-modules/Core/Delaunay.d.ts +52 -0
  57. package/es-modules/Core/Delaunay.js +310 -0
  58. package/es-modules/Core/Foundation.js +1 -2
  59. package/es-modules/Core/Geometry/CircleUtilities.js +1 -2
  60. package/es-modules/Core/Globals.js +1 -1
  61. package/es-modules/Core/HttpUtilities.js +1 -2
  62. package/es-modules/Core/MSPointer.js +1 -2
  63. package/es-modules/Core/Math3D.js +1 -2
  64. package/es-modules/Core/Options.d.ts +6 -2
  65. package/es-modules/Core/Pointer.js +23 -4
  66. package/es-modules/Core/PointerEvent.d.ts +2 -0
  67. package/es-modules/Core/Renderer/HTML/AST.js +2 -2
  68. package/es-modules/Core/Renderer/HTML/HTMLElement.js +1 -2
  69. package/es-modules/Core/Renderer/RendererUtilities.js +34 -19
  70. package/es-modules/Core/Responsive.d.ts +4 -2
  71. package/es-modules/Core/Responsive.js +10 -4
  72. package/es-modules/Core/Templating.d.ts +1 -1
  73. package/es-modules/Core/Templating.js +3 -4
  74. package/es-modules/Core/Time.d.ts +8 -0
  75. package/es-modules/Core/Time.js +2 -2
  76. package/es-modules/Core/Tooltip.d.ts +4 -8
  77. package/es-modules/Core/Tooltip.js +100 -81
  78. package/es-modules/Core/TooltipOptions.d.ts +44 -1
  79. package/es-modules/Core/Utilities.d.ts +25 -665
  80. package/es-modules/Core/Utilities.js +17 -1398
  81. package/es-modules/Data/ColumnUtils.d.ts +83 -80
  82. package/es-modules/Data/ColumnUtils.js +103 -113
  83. package/es-modules/Data/Connectors/CSVConnector.d.ts +9 -14
  84. package/es-modules/Data/Connectors/CSVConnector.js +3 -4
  85. package/es-modules/Data/Connectors/DataConnector.d.ts +52 -54
  86. package/es-modules/Data/Connectors/DataConnector.js +33 -52
  87. package/es-modules/Data/Connectors/GoogleSheetsConnector.d.ts +40 -42
  88. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +73 -88
  89. package/es-modules/Data/Connectors/GoogleSheetsConnectorOptions.d.ts +4 -2
  90. package/es-modules/Data/Connectors/HTMLTableConnector.d.ts +23 -28
  91. package/es-modules/Data/Connectors/HTMLTableConnector.js +3 -4
  92. package/es-modules/Data/Connectors/JSONConnector.d.ts +9 -14
  93. package/es-modules/Data/Connectors/JSONConnector.js +3 -4
  94. package/es-modules/Data/Converters/CSVConverter.d.ts +5 -5
  95. package/es-modules/Data/Converters/CSVConverter.js +3 -4
  96. package/es-modules/Data/Converters/CSVConverterOptions.d.ts +2 -2
  97. package/es-modules/Data/Converters/DataConverter.d.ts +76 -78
  98. package/es-modules/Data/Converters/DataConverter.js +26 -53
  99. package/es-modules/Data/Converters/DataConverterUtils.d.ts +88 -81
  100. package/es-modules/Data/Converters/DataConverterUtils.js +169 -181
  101. package/es-modules/Data/Converters/GoogleSheetsConverter.d.ts +4 -4
  102. package/es-modules/Data/Converters/GoogleSheetsConverter.js +3 -3
  103. package/es-modules/Data/Converters/GoogleSheetsConverterOptions.d.ts +2 -2
  104. package/es-modules/Data/Converters/HTMLTableConverter.d.ts +4 -4
  105. package/es-modules/Data/Converters/HTMLTableConverter.js +2 -3
  106. package/es-modules/Data/Converters/HTMLTableConverterOptions.d.ts +2 -2
  107. package/es-modules/Data/Converters/JSONConverter.d.ts +7 -7
  108. package/es-modules/Data/Converters/JSONConverter.js +6 -6
  109. package/es-modules/Data/Converters/JSONConverterOptions.d.ts +2 -2
  110. package/es-modules/Data/DataCursor.d.ts +65 -70
  111. package/es-modules/Data/DataCursor.js +119 -139
  112. package/es-modules/Data/DataEvent.d.ts +55 -57
  113. package/es-modules/Data/DataPool.d.ts +10 -17
  114. package/es-modules/Data/DataPool.js +20 -9
  115. package/es-modules/Data/DataTable.d.ts +111 -113
  116. package/es-modules/Data/DataTable.js +3 -3
  117. package/es-modules/Data/DataTableCore.d.ts +9 -9
  118. package/es-modules/Data/DataTableCore.js +2 -2
  119. package/es-modules/Data/Formula/FormulaParser.js +1 -2
  120. package/es-modules/Data/Formula/FormulaProcessor.js +1 -2
  121. package/es-modules/Data/Modifiers/ChainModifier.d.ts +29 -34
  122. package/es-modules/Data/Modifiers/ChainModifier.js +7 -8
  123. package/es-modules/Data/Modifiers/DataModifier.d.ts +36 -41
  124. package/es-modules/Data/Modifiers/DataModifier.js +31 -53
  125. package/es-modules/Data/Modifiers/FilterModifier.d.ts +4 -4
  126. package/es-modules/Data/Modifiers/FilterModifier.js +3 -4
  127. package/es-modules/Data/Modifiers/FilterModifierOptions.d.ts +3 -2
  128. package/es-modules/Data/Modifiers/InvertModifier.d.ts +4 -4
  129. package/es-modules/Data/Modifiers/InvertModifier.js +3 -4
  130. package/es-modules/Data/Modifiers/MathModifier.d.ts +5 -4
  131. package/es-modules/Data/Modifiers/RangeModifier.d.ts +4 -4
  132. package/es-modules/Data/Modifiers/RangeModifier.js +3 -4
  133. package/es-modules/Data/Modifiers/SortModifier.d.ts +6 -11
  134. package/es-modules/Data/Modifiers/SortModifier.js +3 -4
  135. package/es-modules/Data/Modifiers/SortModifierOptions.d.ts +3 -3
  136. package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +1 -1
  137. package/es-modules/Grid/Core/Accessibility/Accessibility.js +5 -6
  138. package/es-modules/Grid/Core/Data/DataProvider.d.ts +97 -0
  139. package/es-modules/Grid/Core/Data/DataProvider.js +89 -0
  140. package/es-modules/Grid/Core/Data/DataProviderRegistry.d.ts +20 -0
  141. package/es-modules/Grid/Core/Data/DataProviderRegistry.js +52 -0
  142. package/es-modules/Grid/Core/Data/DataProviderType.d.ts +19 -0
  143. package/es-modules/Grid/Core/Data/DataProviderType.js +15 -0
  144. package/es-modules/Grid/Core/Data/LocalDataProvider.d.ts +165 -0
  145. package/es-modules/Grid/Core/Data/LocalDataProvider.js +341 -0
  146. package/es-modules/Grid/Core/Defaults.js +4 -2
  147. package/es-modules/Grid/Core/Globals.d.ts +20 -16
  148. package/es-modules/Grid/Core/Globals.js +10 -8
  149. package/es-modules/Grid/Core/Grid.d.ts +31 -22
  150. package/es-modules/Grid/Core/Grid.js +214 -136
  151. package/es-modules/Grid/Core/GridUtils.d.ts +33 -0
  152. package/es-modules/Grid/Core/GridUtils.js +50 -3
  153. package/es-modules/Grid/Core/Options.d.ts +145 -4
  154. package/es-modules/Grid/Core/Pagination/Pagination.d.ts +3 -0
  155. package/es-modules/Grid/Core/Pagination/Pagination.js +63 -23
  156. package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +4 -0
  157. package/es-modules/Grid/Core/Querying/FilteringController.js +1 -2
  158. package/es-modules/Grid/Core/Querying/PaginationController.d.ts +2 -2
  159. package/es-modules/Grid/Core/Querying/PaginationController.js +3 -3
  160. package/es-modules/Grid/Core/Querying/QueryingController.d.ts +1 -1
  161. package/es-modules/Grid/Core/Querying/QueryingController.js +2 -26
  162. package/es-modules/Grid/Core/Responsive/ResponsiveComposition.d.ts +53 -0
  163. package/es-modules/Grid/Core/Responsive/ResponsiveComposition.js +229 -0
  164. package/es-modules/Grid/Core/Responsive/ResponsiveOptions.d.ts +58 -0
  165. package/es-modules/Grid/Core/Responsive/ResponsiveOptions.js +15 -0
  166. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +2 -3
  167. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.d.ts +1 -1
  168. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.js +3 -4
  169. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.d.ts +1 -1
  170. package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.js +2 -2
  171. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +17 -1
  172. package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +58 -15
  173. package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.js +1 -3
  174. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.d.ts +57 -3
  175. package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.js +397 -118
  176. package/es-modules/Grid/Core/Table/Body/CellContextMenu.d.ts +11 -0
  177. package/es-modules/Grid/Core/Table/Body/CellContextMenu.js +84 -0
  178. package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +27 -13
  179. package/es-modules/Grid/Core/Table/Body/TableCell.js +74 -25
  180. package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +7 -15
  181. package/es-modules/Grid/Core/Table/Body/TableRow.js +24 -19
  182. package/es-modules/Grid/Core/Table/Cell.d.ts +16 -3
  183. package/es-modules/Grid/Core/Table/Cell.js +36 -3
  184. package/es-modules/Grid/Core/Table/CellContent/TextContent.js +3 -8
  185. package/es-modules/Grid/Core/Table/Column.d.ts +10 -4
  186. package/es-modules/Grid/Core/Table/Column.js +23 -34
  187. package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +9 -8
  188. package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.js +4 -3
  189. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.d.ts +5 -0
  190. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +7 -2
  191. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.js +1 -2
  192. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.js +1 -2
  193. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.js +2 -3
  194. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.js +1 -2
  195. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.js +1 -2
  196. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +0 -1
  197. package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.js +4 -14
  198. package/es-modules/Grid/Core/Table/Header/HeaderCell.d.ts +6 -1
  199. package/es-modules/Grid/Core/Table/Header/HeaderCell.js +33 -13
  200. package/es-modules/Grid/Core/Table/Header/HeaderRow.js +4 -5
  201. package/es-modules/Grid/Core/Table/Header/TableHeader.d.ts +1 -1
  202. package/es-modules/Grid/Core/Table/Header/TableHeader.js +3 -3
  203. package/es-modules/Grid/Core/Table/Row.d.ts +1 -1
  204. package/es-modules/Grid/Core/Table/Row.js +2 -2
  205. package/es-modules/Grid/Core/Table/Table.d.ts +38 -12
  206. package/es-modules/Grid/Core/Table/Table.js +184 -91
  207. package/es-modules/Grid/Core/UI/ContextMenuButton.d.ts +6 -7
  208. package/es-modules/Grid/Core/UI/ContextMenuButton.js +5 -3
  209. package/es-modules/Grid/Core/UI/Popup.js +7 -9
  210. package/es-modules/Grid/Core/UI/SvgIcons.d.ts +42 -7
  211. package/es-modules/Grid/Core/UI/SvgIcons.js +206 -33
  212. package/es-modules/Grid/Core/UI/Toolbar.d.ts +5 -0
  213. package/es-modules/Grid/Core/UI/ToolbarButton.d.ts +4 -12
  214. package/es-modules/Grid/Core/UI/ToolbarButton.js +8 -26
  215. package/es-modules/Grid/Pro/CellEditing/CellEditMode.d.ts +2 -2
  216. package/es-modules/Grid/Pro/CellEditing/CellEditing.js +10 -10
  217. package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +1 -2
  218. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.d.ts +1 -1
  219. package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +4 -2
  220. package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.d.ts +2 -2
  221. package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +1 -2
  222. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.d.ts +2 -2
  223. package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +1 -2
  224. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.d.ts +2 -2
  225. package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +1 -2
  226. package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +1 -2
  227. package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +1 -2
  228. package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +1 -2
  229. package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +1 -2
  230. package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +1 -2
  231. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +2 -2
  232. package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +1 -2
  233. package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +1 -2
  234. package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +1 -2
  235. package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +1 -2
  236. package/es-modules/Grid/Pro/ColumnTypes/Validator.js +34 -32
  237. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.d.ts +1 -1
  238. package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +3 -4
  239. package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +1 -3
  240. package/es-modules/Grid/Pro/Data/DataSourceHelper.d.ts +74 -0
  241. package/es-modules/Grid/Pro/Data/DataSourceHelper.js +246 -0
  242. package/es-modules/Grid/Pro/Data/QuerySerializer.d.ts +46 -0
  243. package/es-modules/Grid/Pro/Data/QuerySerializer.js +169 -0
  244. package/es-modules/Grid/Pro/Data/RemoteDataProvider.d.ts +187 -0
  245. package/es-modules/Grid/Pro/Data/RemoteDataProvider.js +500 -0
  246. package/es-modules/Grid/Pro/Export/Exporting.js +1 -2
  247. package/es-modules/Grid/Pro/Export/ExportingComposition.js +1 -2
  248. package/es-modules/Grid/Pro/GridEvents.js +1 -2
  249. package/es-modules/Grid/Pro/Pagination/PaginationComposition.d.ts +0 -1
  250. package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +1 -2
  251. package/es-modules/Shared/BaseForm.js +1 -2
  252. package/es-modules/Shared/DownloadURL.js +1 -2
  253. package/es-modules/Shared/TimeBase.js +3 -3
  254. package/es-modules/Shared/Types.d.ts +7 -0
  255. package/es-modules/Shared/Utilities.d.ts +576 -0
  256. package/es-modules/Shared/Utilities.js +1368 -0
  257. package/es-modules/masters/grid-pro.src.d.ts +15 -11
  258. package/es-modules/masters/grid-pro.src.js +12 -5
  259. package/grid-pro.d.ts +15 -11
  260. package/grid-pro.js +3 -3
  261. package/grid-pro.js.map +1 -1
  262. package/grid-pro.src.d.ts +15 -11
  263. package/grid-pro.src.js +10408 -8009
  264. package/package.json +1 -1
  265. package/es-modules/Grid/Core/Pagination/Icons.d.ts +0 -7
  266. package/es-modules/Grid/Core/Pagination/Icons.js +0 -7
@@ -21,20 +21,23 @@
21
21
  *
22
22
  * */
23
23
  import Globals from '../Globals.js';
24
+ import { setHTMLContent } from '../GridUtils.js';
25
+ import { defined } from '../../../Shared/Utilities.js';
24
26
  /**
25
27
  * The registry of all Grid Svg icons with their SVG path data.
26
28
  */
27
29
  export const icons = {
28
30
  filter: {
29
- width: 16,
30
- height: 14,
31
+ width: 12,
32
+ height: 12,
31
33
  children: [{
32
- 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'
34
+ d: 'M 1.69283 2.38107 C 1.31465 1.89803 1.12557 1.65651 1.11844 1.45125 C 1.11224 1.27293 1.17929 1.10156 1.29969 0.98793 C 1.4383 0.85714 1.72187 0.85714 2.28902 0.85714 H 9.71048 C 10.27763 0.85714 10.5612 0.85714 10.6998 0.98793 C 10.82025 1.10156 10.88722 1.27293 10.88108 1.45125 C 10.87395 1.65651 10.68487 1.89803 10.30665 2.38107 L 7.45356 6.02539 C 7.37817 6.12168 7.34048 6.16983 7.3136 6.22461 C 7.28977 6.27321 7.27228 6.32553 7.26169 6.37991 C 7.24975 6.44122 7.24975 6.50583 7.24975 6.63503 V 9.69051 C 7.24975 9.80229 7.24975 9.85809 7.23398 9.90643 C 7.22005 9.94911 7.19738 9.98734 7.16788 10.01803 C 7.13449 10.05266 7.0891 10.07349 6.99831 10.11497 L 5.29831 10.89206 C 5.11454 10.97606 5.02265 11.01814 4.94889 11.00057 C 4.88438 10.98523 4.82778 10.94143 4.79137 10.87869 C 4.74975 10.80694 4.74975 10.69389 4.74975 10.4676 V 6.63503 C 4.74975 6.50583 4.74975 6.44122 4.73781 6.37991 C 4.72722 6.32553 4.70973 6.27321 4.6859 6.22461 C 4.65902 6.16983 4.62133 6.12168 4.54594 6.02539 L 1.69283 2.38107 Z'
33
35
  }]
34
36
  },
35
37
  menu: {
36
- width: 4,
38
+ width: 8,
37
39
  height: 12,
40
+ viewBox: '0 0 4 12',
38
41
  children: [{
39
42
  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'
40
43
  }, {
@@ -43,47 +46,145 @@ export const icons = {
43
46
  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'
44
47
  }]
45
48
  },
46
- chevronRight: {
47
- width: 6,
48
- height: 10,
49
- children: [{
50
- d: 'M1 9L5 5L1 1',
51
- 'stroke-width': 1.34
52
- }]
53
- },
54
49
  checkmark: {
55
50
  width: 12,
56
- height: 9,
51
+ height: 12,
57
52
  children: [{
58
- d: 'M11.3332 1L3.99984 8.33333L0.666504 5'
53
+ d: 'M 11.3332 1.33333 L 3.99984 11.11111 L 0.6665 6.66667'
59
54
  }]
60
55
  },
61
- upDownArrows: {
62
- width: 14,
56
+ arrowUpDown: {
57
+ width: 12,
63
58
  height: 12,
64
59
  children: [{
65
- 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'
60
+ d: 'M 3.14286 0.66675 V 11.3334 M 3.14286 11.3334 L 0.85714 8.66675 M 3.14286 11.3334 L 5.42857 8.66675 M 8.85711 11.3334 V 0.66675 M 8.85711 0.66675 L 6.57143 3.33341 M 8.85711 0.66675 L 11.14286 3.33341'
66
61
  }]
67
62
  },
68
- sortAsc: {
69
- width: 14,
63
+ arrowUp: {
64
+ width: 12,
70
65
  height: 12,
71
66
  children: [{
72
- d: 'M3.66667 0.666748V11.3334M3.66667 11.3334L1 8.66675M3.66667 11.3334L6.33333 8.66675',
67
+ d: 'M 3.14286 0.66675 V 11.3334 M 3.14286 11.3334 L 0.85714 8.66675 M 3.14286 11.3334 L 5.42857 8.66675',
73
68
  opacity: 0.2
74
69
  }, {
75
- 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'
70
+ d: 'M 8.85711 11.3334 V 0.6667 M 8.85711 0.6667 L 6.57146 3.3334 M 8.85711 0.6667 L 11.14286 3.3334'
76
71
  }]
77
72
  },
78
- sortDesc: {
79
- width: 14,
73
+ arrowDown: {
74
+ width: 12,
80
75
  height: 12,
81
76
  children: [{
82
- d: 'M3.66667 0.666748V11.3334M3.66667 11.3334L1 8.66675M3.66667 11.3334L6.33333 8.66675'
77
+ d: 'M 3.14286 0.66675 V 11.3334 M 3.14286 11.3334 L 0.85714 8.66675 M 3.14286 11.3334 L 5.42857 8.66675'
83
78
  }, {
84
- 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',
79
+ d: 'M 8.85711 11.3334 V 0.6667 M 8.85711 0.6667 L 6.57146 3.3334 M 8.85711 0.6667 L 11.14286 3.3334',
85
80
  opacity: 0.2
86
81
  }]
82
+ },
83
+ doubleChevronLeft: {
84
+ width: 12,
85
+ height: 12,
86
+ children: [{
87
+ d: 'M 6 10.8 L 1.2 6 L 6 1.2 M 10.8 10.8 L 6 6 L 10.8 1.2',
88
+ 'stroke-width': 1.34
89
+ }]
90
+ },
91
+ chevronLeft: {
92
+ width: 12,
93
+ height: 12,
94
+ children: [{
95
+ d: 'M 7.5 10.8 L 1.5 6 L 7.5 1.2',
96
+ 'stroke-width': 1.34
97
+ }]
98
+ },
99
+ doubleChevronRight: {
100
+ width: 12,
101
+ height: 12,
102
+ children: [{
103
+ d: 'M 6 1.2 L 10.8 6 L 6 10.8 M 1.2 1.2 L 6 6 L 1.2 10.8',
104
+ 'stroke-width': 1.34
105
+ }]
106
+ },
107
+ chevronRight: {
108
+ width: 12,
109
+ height: 12,
110
+ children: [{
111
+ d: 'M 4.5 1.2 L 10.5 6 L 4.5 10.8',
112
+ 'stroke-width': 1.34
113
+ }]
114
+ },
115
+ copy: {
116
+ // Imported from a 24x24 source icon and scaled down via viewBox.
117
+ width: 16,
118
+ height: 16,
119
+ viewBox: '0 0 24 24',
120
+ children: [{
121
+ d: 'M5 15C4.06812 15 3.60218 15 3.23463 14.8478C2.74458 14.6448 2.35523 14.2554 2.15224 13.7654C2 13.3978 2 12.9319 2 12V5.2C2 4.0799 2 3.51984 2.21799 3.09202C2.40973 2.71569 2.71569 2.40973 3.09202 2.21799C3.51984 2 4.0799 2 5.2 2H12C12.9319 2 13.3978 2 13.7654 2.15224C14.2554 2.35523 14.6448 2.74458 14.8478 3.23463C15 3.60218 15 4.06812 15 5M12.2 22H18.8C19.9201 22 20.4802 22 20.908 21.782C21.2843 21.5903 21.5903 21.2843 21.782 20.908C22 20.4802 22 19.9201 22 18.8V12.2C22 11.0799 22 10.5198 21.782 10.092C21.5903 9.71569 21.2843 9.40973 20.908 9.21799C20.4802 9 19.9201 9 18.8 9H12.2C11.0799 9 10.5198 9 10.092 9.21799C9.71569 9.40973 9.40973 9.71569 9.21799 10.092C9 10.5198 9 11.0799 9 12.2V18.8C9 19.9201 9 20.4802 9.21799 20.908C9.40973 21.2843 9.71569 21.5903 10.092 21.782C10.5198 22 11.0799 22 12.2 22Z',
122
+ 'stroke-width': 2
123
+ }]
124
+ },
125
+ clipboard: {
126
+ // Imported from a 24x24 source icon and scaled down via viewBox.
127
+ width: 16,
128
+ height: 16,
129
+ viewBox: '0 0 24 24',
130
+ children: [{
131
+ d: 'M16 4C16.93 4 17.395 4 17.7765 4.10222C18.8117 4.37962 19.6204 5.18827 19.8978 6.22354C20 6.60504 20 7.07003 20 8V17.2C20 18.8802 20 19.7202 19.673 20.362C19.3854 20.9265 18.9265 21.3854 18.362 21.673C17.7202 22 16.8802 22 15.2 22H8.8C7.11984 22 6.27976 22 5.63803 21.673C5.07354 21.3854 4.6146 20.9265 4.32698 20.362C4 19.7202 4 18.8802 4 17.2V8C4 7.07003 4 6.60504 4.10222 6.22354C4.37962 5.18827 5.18827 4.37962 6.22354 4.10222C6.60504 4 7.07003 4 8 4M9.6 6H14.4C14.9601 6 15.2401 6 15.454 5.89101C15.6422 5.79513 15.7951 5.64215 15.891 5.45399C16 5.24008 16 4.96005 16 4.4V3.6C16 3.03995 16 2.75992 15.891 2.54601C15.7951 2.35785 15.6422 2.20487 15.454 2.10899C15.2401 2 14.9601 2 14.4 2H9.6C9.03995 2 8.75992 2 8.54601 2.10899C8.35785 2.20487 8.20487 2.35785 8.10899 2.54601C8 2.75992 8 3.03995 8 3.6V4.4C8 4.96005 8 5.24008 8.10899 5.45399C8.20487 5.64215 8.35785 5.79513 8.54601 5.89101C8.75992 6 9.03995 6 9.6 6Z',
132
+ 'stroke-width': 2
133
+ }]
134
+ },
135
+ plus: {
136
+ width: 16,
137
+ height: 16,
138
+ viewBox: '0 0 24 24',
139
+ children: [{
140
+ d: 'M12 5V19M5 12H19',
141
+ 'stroke-width': 2
142
+ }]
143
+ },
144
+ trash: {
145
+ width: 16,
146
+ height: 16,
147
+ viewBox: '0 0 24 24',
148
+ children: [{
149
+ d: 'M16 6V5.2C16 4.0799 16 3.51984 15.782 3.09202C15.5903 2.71569 15.2843 2.40973 14.908 2.21799C14.4802 2 13.9201 2 12.8 2H11.2C10.0799 2 9.51984 2 9.09202 2.21799C8.71569 2.40973 8.40973 2.71569 8.21799 3.09202C8 3.51984 8 4.0799 8 5.2V6M10 11.5V16.5M14 11.5V16.5M3 6H21M19 6V17.2C19 18.8802 19 19.7202 18.673 20.362C18.3854 20.9265 17.9265 21.3854 17.362 21.673C16.7202 22 15.8802 22 14.2 22H9.8C8.11984 22 7.27976 22 6.63803 21.673C6.07354 21.3854 5.6146 20.9265 5.32698 20.362C5 19.7202 5 18.8802 5 17.2V6',
150
+ 'stroke-width': 2
151
+ }]
152
+ },
153
+ addRowAbove: {
154
+ width: 16,
155
+ height: 16,
156
+ viewBox: '0 0 24 24',
157
+ children: [{
158
+ d: 'M22.654 16.657H1m21.654-6.048H1m0-6.143v12.433c0 2.033 0 3.05.393 3.825a3.619 3.619 0 0 0 1.577 1.587c.772.395 1.783.395 3.804.395H16.88c2.021 0 3.032 0 3.804-.395a3.619 3.619 0 0 0 1.577-1.587c.394-.776.394-1.792.394-3.825V4.466m-14.068-.24h6.462M11.822 1v6.462',
159
+ 'stroke-width': 1.34
160
+ }]
161
+ },
162
+ addRowBelow: {
163
+ width: 16,
164
+ height: 16,
165
+ viewBox: '0 0 24 24',
166
+ children: [{
167
+ d: 'M1 7.049h21.654M1 13.097h21.654m0 6.143V6.807c0-2.033 0-3.05-.394-3.825a3.619 3.619 0 0 0-1.577-1.586C19.911 1 18.901 1 16.88 1H6.774c-2.02 0-3.031 0-3.803.396a3.62 3.62 0 0 0-1.578 1.586C1 3.758 1 4.774 1 6.807V19.24m14.068.24H8.606m3.226 3.226v-6.462',
168
+ 'stroke-width': 1.34
169
+ }]
170
+ },
171
+ addColumnLeft: {
172
+ width: 16,
173
+ height: 16,
174
+ viewBox: '0 0 24 24',
175
+ children: [{
176
+ d: 'M16.657 1v21.654M10.61 1v21.654m-6.143 0h12.433c2.033 0 3.05 0 3.825-.394a3.62 3.62 0 0 0 1.587-1.577c.395-.772.395-1.782.395-3.804V6.774c0-2.02 0-3.031-.395-3.803a3.62 3.62 0 0 0-1.587-1.578C19.948 1 18.932 1 16.9 1H4.466m-.24 14.068V8.606M1 11.832h6.462',
177
+ 'stroke-width': 1.34
178
+ }]
179
+ },
180
+ addColumnRight: {
181
+ width: 16,
182
+ height: 16,
183
+ viewBox: '0 0 24 24',
184
+ children: [{
185
+ d: 'M7.049 22.654V1m6.048 21.654V1m6.143 0H6.807c-2.033 0-3.05 0-3.825.393a3.62 3.62 0 0 0-1.586 1.578C1 3.743 1 4.753 1 6.774V16.88c0 2.021 0 3.032.396 3.804.348.68.903 1.231 1.586 1.577.776.394 1.792.394 3.825.394H19.24m.24-14.068v6.462m3.226-3.226h-6.462',
186
+ 'stroke-width': 1.34
187
+ }]
87
188
  }
88
189
  };
89
190
  /**
@@ -101,20 +202,43 @@ export const pathDefaults = {
101
202
  *
102
203
  * */
103
204
  /**
104
- * Creates an SVG icon element from the SvgIcons registry.
105
- *
106
- * @param name
107
- * The name of the icon from SvgIcons registry
205
+ * Parses a raw SVG markup string into an SVG element and applies a class.
108
206
  *
207
+ * @param svgString
208
+ * Raw SVG markup
109
209
  * @param className
110
- * CSS class name for the SVG element (default: 'hcg-icon')
210
+ * CSS class name for the SVG element
211
+ * @returns
212
+ * SVG element, or a fallback empty SVG if parsing fails
213
+ */
214
+ function parseSvgString(svgString, className) {
215
+ const div = document.createElement('div');
216
+ setHTMLContent(div, svgString);
217
+ const svg = div.firstElementChild;
218
+ if (!svg || svg.namespaceURI !== 'http://www.w3.org/2000/svg') {
219
+ const fallback = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
220
+ fallback.setAttribute('width', '16');
221
+ fallback.setAttribute('height', '16');
222
+ fallback.classList.add(className);
223
+ return fallback;
224
+ }
225
+ const clone = svg.cloneNode(true);
226
+ clone.classList.add(className);
227
+ return clone;
228
+ }
229
+ /**
230
+ * Builds an SVG element from an SVG definition object.
111
231
  *
232
+ * @param def
233
+ * SVG definition from the registry
234
+ * @param className
235
+ * CSS class name for the SVG element
112
236
  * @returns
113
- * SVG element with the specified icon
237
+ * SVG element
114
238
  */
115
- export function createGridIcon(name, className = Globals.getClassName('icon')) {
239
+ function createSvgFromDefinition(def, className) {
116
240
  const createElement = (type) => document.createElementNS('http://www.w3.org/2000/svg', type);
117
- const { width = 16, height = 16, viewBox, fill, children } = icons[name];
241
+ const { width = 16, height = 16, viewBox, fill, children } = def;
118
242
  const svg = createElement('svg');
119
243
  svg.setAttribute('width', width.toString());
120
244
  svg.setAttribute('height', height.toString());
@@ -137,6 +261,54 @@ export function createGridIcon(name, className = Globals.getClassName('icon')) {
137
261
  svg.classList.add(className);
138
262
  return svg;
139
263
  }
264
+ /**
265
+ * Looks up an icon by name, checking custom icons first and then falling
266
+ * back to the built-in registry.
267
+ *
268
+ * @param name
269
+ * Icon name to look up.
270
+ *
271
+ * @param customIcons
272
+ * Optional map of icon names provided via `rendering.icons`.
273
+ *
274
+ * @returns
275
+ * Icon registry value (definition or raw SVG string), or `undefined` if
276
+ * neither a custom nor a built-in icon exists for the given name.
277
+ */
278
+ export function getIconFromRegistry(name, customIcons) {
279
+ if (customIcons && Object.prototype.hasOwnProperty.call(customIcons, name)) {
280
+ return customIcons[name];
281
+ }
282
+ return icons[name];
283
+ }
284
+ /**
285
+ * Creates an SVG icon element from the SvgIcons registry or a custom
286
+ * registry. When `customIcons` is provided, `name` can be any registered
287
+ * name (built-in or custom). When omitted, only built-in `GridIconName`
288
+ * values are allowed. The SVG element always receives the default icon
289
+ * class name from `Globals`.
290
+ *
291
+ * @param name
292
+ * The name of the icon (built-in or from registry)
293
+ *
294
+ * @param customIcons
295
+ * Optional custom icons map from `rendering.icons`. When provided, custom
296
+ * and override icons are used and arbitrary names are allowed.
297
+ *
298
+ * @returns
299
+ * SVG element with the specified icon
300
+ */
301
+ export function createGridIcon(name, customIcons) {
302
+ const className = Globals.getClassName('icon');
303
+ const value = getIconFromRegistry(name, customIcons);
304
+ if (!defined(value)) {
305
+ return createSvgFromDefinition(icons.filter, className);
306
+ }
307
+ if (typeof value === 'string') {
308
+ return parseSvgString(value, className);
309
+ }
310
+ return createSvgFromDefinition(value, className);
311
+ }
140
312
  /* *
141
313
  *
142
314
  * Default Export
@@ -144,6 +316,7 @@ export function createGridIcon(name, className = Globals.getClassName('icon')) {
144
316
  * */
145
317
  export default {
146
318
  createGridIcon,
319
+ getIconFromRegistry,
147
320
  icons,
148
321
  pathDefaults
149
322
  };
@@ -1,3 +1,4 @@
1
+ import type Grid from '../Grid';
1
2
  import type ToolbarButton from './ToolbarButton.js';
2
3
  interface Toolbar {
3
4
  /**
@@ -12,5 +13,9 @@ interface Toolbar {
12
13
  * The index of the focused button in the toolbar.
13
14
  */
14
15
  focusCursor: number;
16
+ /**
17
+ * Optional reference to the Grid instance (e.g. for icon registry).
18
+ */
19
+ grid?: Grid;
15
20
  }
16
21
  export default Toolbar;
@@ -1,7 +1,6 @@
1
1
  import type Toolbar from './Toolbar';
2
2
  import type Button from './Button';
3
3
  import type Popup from './Popup';
4
- import { GridIconName } from './SvgIcons.js';
5
4
  import { ClassNameKey } from '../Globals.js';
6
5
  declare class ToolbarButton implements Button {
7
6
  /**
@@ -51,9 +50,9 @@ declare class ToolbarButton implements Button {
51
50
  * Sets the icon for the button.
52
51
  *
53
52
  * @param icon
54
- * The icon to set.
53
+ * The icon to set (built-in name or custom name from rendering.icons).
55
54
  */
56
- setIcon(icon: GridIconName): void;
55
+ setIcon(icon: string): void;
57
56
  setActive(active: boolean): void;
58
57
  setHighlighted(highlighted: boolean): void;
59
58
  /**
@@ -67,13 +66,6 @@ declare class ToolbarButton implements Button {
67
66
  * The mouse event.
68
67
  */
69
68
  protected clickHandler(event: MouseEvent): void;
70
- /**
71
- * Renders the active indicator for the button.
72
- *
73
- * @param render
74
- * Whether the active indicator should be rendered.
75
- */
76
- protected renderActiveIndicator(render: boolean): void;
77
69
  /**
78
70
  * Adds event listeners to the button.
79
71
  */
@@ -88,9 +80,9 @@ declare class ToolbarButton implements Button {
88
80
  */
89
81
  export interface ToolbarButtonOptions {
90
82
  /**
91
- * The icon for the button.
83
+ * The icon for the button (built-in name or custom from rendering.icons).
92
84
  */
93
- icon: GridIconName;
85
+ icon: string;
94
86
  /**
95
87
  * The class name key for the button.
96
88
  */
@@ -60,7 +60,9 @@ class ToolbarButton {
60
60
  this.wrapper = wrapper;
61
61
  const button = this.buttonEl = makeHTMLElement('button', {
62
62
  className: (Globals.getClassName('button') +
63
- (this.isActive ? ' active' : ''))
63
+ (this.isActive ?
64
+ ' ' + Globals.getClassName('buttonSelected') :
65
+ ''))
64
66
  }, wrapper);
65
67
  button.setAttribute('type', 'button');
66
68
  button.setAttribute('tabindex', '-1');
@@ -97,20 +99,20 @@ class ToolbarButton {
97
99
  * Sets the icon for the button.
98
100
  *
99
101
  * @param icon
100
- * The icon to set.
102
+ * The icon to set (built-in name or custom name from rendering.icons).
101
103
  */
102
104
  setIcon(icon) {
103
105
  this.icon?.remove();
104
- this.icon = createGridIcon(icon);
106
+ const grid = this.toolbar?.grid;
107
+ this.icon = createGridIcon(icon, grid?.options?.rendering?.icons);
105
108
  this.buttonEl?.appendChild(this.icon);
106
109
  }
107
110
  setActive(active) {
108
111
  this.isActive = active;
109
- this.buttonEl?.classList.toggle('active', active);
110
- this.renderActiveIndicator(active);
112
+ this.buttonEl?.classList.toggle(Globals.getClassName('buttonSelected'), active);
111
113
  }
112
114
  setHighlighted(highlighted) {
113
- this.buttonEl?.classList.toggle('highlighted', highlighted);
115
+ this.buttonEl?.classList.toggle(Globals.getClassName('buttonHighlighted'), highlighted);
114
116
  const ariaExpanded = this.options.accessibility?.ariaExpanded;
115
117
  if (typeof ariaExpanded === 'boolean') {
116
118
  this.buttonEl?.setAttribute('aria-expanded', highlighted);
@@ -142,26 +144,6 @@ class ToolbarButton {
142
144
  clickHandler(event) {
143
145
  this.options.onClick?.(event, this);
144
146
  }
145
- /**
146
- * Renders the active indicator for the button.
147
- *
148
- * @param render
149
- * Whether the active indicator should be rendered.
150
- */
151
- renderActiveIndicator(render) {
152
- const button = this.buttonEl;
153
- if (!button) {
154
- return;
155
- }
156
- this.activeIndicator?.remove();
157
- if (!render) {
158
- delete this.activeIndicator;
159
- return;
160
- }
161
- this.activeIndicator = makeHTMLElement('div', {
162
- className: Globals.getClassName('toolbarButtonActiveIndicator')
163
- }, button);
164
- }
165
147
  /**
166
148
  * Adds event listeners to the button.
167
149
  */
@@ -1,4 +1,4 @@
1
- import type DataTable from '../../../Data/DataTable';
1
+ import type { CellType as DataTableCellType } from '../../../Data/DataTable';
2
2
  import type TableCell from '../../Core/Table/Body/TableCell';
3
3
  /**
4
4
  * Interface for the edit mode content in a cell. It can be implemented by
@@ -13,7 +13,7 @@ export interface EditModeContent<E extends HTMLElement = HTMLElement> {
13
13
  /**
14
14
  * Value of the edit mode cell content, parsed according to the column type.
15
15
  */
16
- readonly value: DataTable.CellType;
16
+ readonly value: DataTableCellType;
17
17
  /**
18
18
  * Raw value of the edit mode cell content, in a string format.
19
19
  */
@@ -15,8 +15,7 @@
15
15
  * */
16
16
  'use strict';
17
17
  import Globals from '../../Core/Globals.js';
18
- import U from '../../../Core/Utilities.js';
19
- const { fireEvent } = U;
18
+ import { fireEvent } from '../../../Shared/Utilities.js';
20
19
  /* *
21
20
  *
22
21
  * Class
@@ -115,8 +114,8 @@ class CellEditing {
115
114
  const newValue = emContent.value;
116
115
  if (submit) {
117
116
  const validationErrors = [];
118
- if (!vp.validator.validate(cell, validationErrors)) {
119
- vp.validator.initErrorBox(cell, validationErrors);
117
+ if (!vp.validator?.validate(cell, validationErrors)) {
118
+ vp.validator?.initErrorBox(cell, validationErrors);
120
119
  this.setA11yAttributes(false);
121
120
  return false;
122
121
  }
@@ -125,17 +124,18 @@ class CellEditing {
125
124
  vp.validator.errorCell = void 0;
126
125
  }
127
126
  // Hide notification
128
- this.viewport.validator.hide();
127
+ this.viewport.validator?.hide();
129
128
  // Hide input
130
129
  this.destroy();
131
130
  cell.htmlElement.classList.remove(Globals.getClassName('editedCell'));
132
131
  cell.htmlElement.focus();
133
132
  const isValueChanged = cell.value !== newValue;
134
- void cell.setValue(submit ? newValue : cell.value, submit && isValueChanged);
135
- if (isValueChanged) {
136
- fireEvent(cell, 'stoppedEditing', { submit });
137
- }
138
- delete this.editedCell;
133
+ void cell.setValue(submit ? newValue : cell.value, submit && isValueChanged).then(() => {
134
+ if (isValueChanged) {
135
+ fireEvent(cell, 'stoppedEditing', { submit });
136
+ }
137
+ delete this.editedCell;
138
+ });
139
139
  return true;
140
140
  }
141
141
  setA11yAttributes(valid) {
@@ -19,9 +19,8 @@ import Globals from '../../Core/Globals.js';
19
19
  import CellEditing from './CellEditing.js';
20
20
  import CellRendererRegistry from '../CellRendering/CellRendererRegistry.js';
21
21
  import GU from '../../Core/GridUtils.js';
22
- import U from '../../../Core/Utilities.js';
22
+ import { addEvent, merge, pushUnique } from '../../../Shared/Utilities.js';
23
23
  const { makeHTMLElement } = GU;
24
- const { addEvent, merge, pushUnique } = U;
25
24
  /* *
26
25
  *
27
26
  * Composition
@@ -20,7 +20,7 @@ declare module '../../Core/Table/Column' {
20
20
  /**
21
21
  * The cell view renderer instance for the column.
22
22
  */
23
- cellRenderer: CellRendererType;
23
+ cellRenderer?: CellRendererType;
24
24
  }
25
25
  }
26
26
  declare const _default: {
@@ -15,8 +15,7 @@
15
15
  'use strict';
16
16
  import CellRendererRegistry from './CellRendererRegistry.js';
17
17
  import Globals from '../../Core/Globals.js';
18
- import U from '../../../Core/Utilities.js';
19
- const { addEvent, pushUnique } = U;
18
+ import { addEvent, pushUnique } from '../../../Shared/Utilities.js';
20
19
  /* *
21
20
  *
22
21
  * Composition
@@ -62,6 +61,9 @@ function afterColumnInit() {
62
61
  * Formatted cell content.
63
62
  */
64
63
  function createCellContent(cell) {
64
+ if (!this.cellRenderer) {
65
+ throw new Error('Called cell renderer on uninitialized column.');
66
+ }
65
67
  return this.cellRenderer.render(cell);
66
68
  }
67
69
  /* *
@@ -1,5 +1,5 @@
1
1
  import type CheckboxRenderer from '../Renderers/CheckboxRenderer';
2
- import type DataTable from '../../../../Data/DataTable';
2
+ import type { CellType as DataTableCellType } from '../../../../Data/DataTable';
3
3
  import type { EditModeContent } from '../../CellEditing/CellEditMode';
4
4
  import type TableCell from '../../../Core/Table/Body/TableCell';
5
5
  import CellContentPro from '../CellContentPro.js';
@@ -19,7 +19,7 @@ declare class CheckboxContent extends CellContentPro implements EditModeContent
19
19
  protected add(parentElement?: HTMLElement): HTMLInputElement;
20
20
  update(): void;
21
21
  get rawValue(): string;
22
- get value(): DataTable.CellType;
22
+ get value(): DataTableCellType;
23
23
  getMainElement(): HTMLInputElement;
24
24
  destroy(): void;
25
25
  private readonly onChange;
@@ -14,9 +14,8 @@
14
14
  * */
15
15
  'use strict';
16
16
  import CellContentPro from '../CellContentPro.js';
17
- import U from '../../../../Core/Utilities.js';
18
17
  import Globals from '../../../Core/Globals.js';
19
- const { defined } = U;
18
+ import { defined } from '../../../../Shared/Utilities.js';
20
19
  /* *
21
20
  *
22
21
  * Class
@@ -1,4 +1,4 @@
1
- import type DataTable from '../../../../Data/DataTable';
1
+ import type { CellType as DataTableCellType } from '../../../../Data/DataTable';
2
2
  import type { EditModeContent } from '../../CellEditing/CellEditMode';
3
3
  import type SelectRenderer from '../Renderers/SelectRenderer';
4
4
  import type TableCell from '../../../Core/Table/Body/TableCell';
@@ -44,7 +44,7 @@ declare class SelectContent extends CellContentPro implements EditModeContent {
44
44
  /**
45
45
  * Gets the value of the select element.
46
46
  */
47
- get value(): DataTable.CellType;
47
+ get value(): DataTableCellType;
48
48
  /**
49
49
  * Gets the main element (select) of the content.
50
50
  * @returns The select element.
@@ -16,8 +16,7 @@
16
16
  'use strict';
17
17
  import CellContentPro from '../CellContentPro.js';
18
18
  import Globals from '../../../Core/Globals.js';
19
- import U from '../../../../Core/Utilities.js';
20
- const { defined, merge } = U;
19
+ import { defined, merge } from '../../../../Shared/Utilities.js';
21
20
  /* *
22
21
  *
23
22
  * Class
@@ -1,4 +1,4 @@
1
- import type DataTable from '../../../../Data/DataTable';
1
+ import type { CellType as DataTableCellType } from '../../../../Data/DataTable';
2
2
  import type { EditModeContent } from '../../CellEditing/CellEditMode';
3
3
  import type TableCell from '../../../Core/Table/Body/TableCell';
4
4
  import type TextInputRenderer from '../Renderers/TextInputRenderer';
@@ -36,7 +36,7 @@ declare class TextInputContent extends CellContentPro implements EditModeContent
36
36
  /**
37
37
  * Gets the value of the input element.
38
38
  */
39
- get value(): DataTable.CellType;
39
+ get value(): DataTableCellType;
40
40
  /**
41
41
  * Converts the cell value to a string for the input.
42
42
  */
@@ -15,9 +15,8 @@
15
15
  * */
16
16
  'use strict';
17
17
  import CellContentPro from '../CellContentPro.js';
18
- import U from '../../../../Core/Utilities.js';
19
18
  import Globals from '../../../Core/Globals.js';
20
- const { defined } = U;
19
+ import { defined } from '../../../../Shared/Utilities.js';
21
20
  /* *
22
21
  *
23
22
  * Class
@@ -17,8 +17,7 @@
17
17
  import { CellRenderer } from '../CellRenderer.js';
18
18
  import { registerRenderer } from '../CellRendererRegistry.js';
19
19
  import CheckboxContent from '../ContentTypes/CheckboxContent.js';
20
- import U from '../../../../Core/Utilities.js';
21
- const { merge } = U;
20
+ import { merge } from '../../../../Shared/Utilities.js';
22
21
  /* *
23
22
  *
24
23
  * Class
@@ -17,8 +17,7 @@
17
17
  import { CellRenderer } from '../CellRenderer.js';
18
18
  import { registerRenderer } from '../CellRendererRegistry.js';
19
19
  import DateInputContent from '../ContentTypes/DateInputContent.js';
20
- import U from '../../../../Core/Utilities.js';
21
- const { merge } = U;
20
+ import { merge } from '../../../../Shared/Utilities.js';
22
21
  /* *
23
22
  *
24
23
  * Class