cx 22.7.1 → 22.8.2

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 (780) hide show
  1. package/LICENSE-THIRD-PARTY.md +91 -91
  2. package/LICENSE.md +7 -7
  3. package/README.md +46 -46
  4. package/dist/charts.js +35 -39
  5. package/dist/data.js +2506 -2510
  6. package/dist/manifest.js +569 -569
  7. package/dist/svg.js +55 -63
  8. package/dist/ui.js +5241 -5238
  9. package/dist/widgets.css +2 -2
  10. package/dist/widgets.js +21949 -21924
  11. package/index.js +17 -17
  12. package/locale/de-de.js +69 -69
  13. package/locale/en-us.js +71 -71
  14. package/locale/es-es.js +69 -69
  15. package/locale/fr-fr.js +70 -70
  16. package/locale/nl-nl.js +75 -75
  17. package/locale/pt-pt.js +63 -63
  18. package/locale/sr-latn-ba.js +70 -70
  19. package/package.json +30 -30
  20. package/src/charts/Bar.d.ts +27 -27
  21. package/src/charts/Bar.js +89 -89
  22. package/src/charts/Bar.scss +26 -26
  23. package/src/charts/BarGraph.d.ts +16 -16
  24. package/src/charts/BarGraph.js +110 -110
  25. package/src/charts/BarGraph.scss +27 -27
  26. package/src/charts/BubbleGraph.js +92 -92
  27. package/src/charts/BubbleGraph.scss +29 -29
  28. package/src/charts/Chart.d.ts +12 -12
  29. package/src/charts/Chart.js +77 -77
  30. package/src/charts/ColorMap.d.ts +21 -27
  31. package/src/charts/ColorMap.js +98 -98
  32. package/src/charts/Column.scss +26 -26
  33. package/src/charts/ColumnBarBase.d.ts +61 -61
  34. package/src/charts/ColumnBarBase.js +169 -169
  35. package/src/charts/ColumnBarGraphBase.d.ts +71 -71
  36. package/src/charts/ColumnBarGraphBase.js +119 -119
  37. package/src/charts/ColumnGraph.d.ts +19 -19
  38. package/src/charts/ColumnGraph.js +114 -114
  39. package/src/charts/ColumnGraph.scss +27 -27
  40. package/src/charts/Grid.js +5 -5
  41. package/src/charts/Gridlines.d.ts +24 -24
  42. package/src/charts/Gridlines.js +48 -48
  43. package/src/charts/Gridlines.scss +22 -22
  44. package/src/charts/Legend.d.ts +26 -26
  45. package/src/charts/Legend.js +142 -142
  46. package/src/charts/Legend.scss +41 -41
  47. package/src/charts/LegendEntry.d.ts +37 -37
  48. package/src/charts/LegendEntry.js +117 -117
  49. package/src/charts/LegendEntry.scss +30 -30
  50. package/src/charts/LineGraph.d.ts +90 -90
  51. package/src/charts/LineGraph.js +201 -201
  52. package/src/charts/LineGraph.scss +23 -23
  53. package/src/charts/Marker.d.ts +87 -87
  54. package/src/charts/Marker.js +287 -287
  55. package/src/charts/Marker.scss +41 -41
  56. package/src/charts/MarkerLine.d.ts +57 -57
  57. package/src/charts/MarkerLine.js +128 -128
  58. package/src/charts/MarkerLine.scss +17 -17
  59. package/src/charts/MouseTracker.d.ts +16 -16
  60. package/src/charts/MouseTracker.js +80 -80
  61. package/src/charts/Pie.js +8 -8
  62. package/src/charts/PieChart.d.ts +80 -80
  63. package/src/charts/PieChart.js +370 -370
  64. package/src/charts/PieChart.scss +26 -26
  65. package/src/charts/PieLabel.d.ts +26 -26
  66. package/src/charts/PieLabel.js +65 -65
  67. package/src/charts/PieLabelsContainer.d.ts +3 -3
  68. package/src/charts/PieLabelsContainer.js +55 -55
  69. package/src/charts/Range.d.ts +74 -74
  70. package/src/charts/Range.js +205 -205
  71. package/src/charts/Range.scss +18 -18
  72. package/src/charts/ScatterGraph.d.ts +65 -65
  73. package/src/charts/ScatterGraph.js +155 -155
  74. package/src/charts/ScatterGraph.scss +21 -21
  75. package/src/charts/axis/Axis.d.ts +82 -82
  76. package/src/charts/axis/Axis.js +222 -222
  77. package/src/charts/axis/Axis.scss +22 -22
  78. package/src/charts/axis/CategoryAxis.d.ts +21 -21
  79. package/src/charts/axis/CategoryAxis.js +224 -224
  80. package/src/charts/axis/CategoryAxis.scss +32 -32
  81. package/src/charts/axis/NumericAxis.js +349 -349
  82. package/src/charts/axis/NumericAxis.scss +32 -32
  83. package/src/charts/axis/Stack.d.ts +10 -10
  84. package/src/charts/axis/Stack.js +58 -58
  85. package/src/charts/axis/TimeAxis.d.ts +23 -23
  86. package/src/charts/axis/TimeAxis.js +510 -510
  87. package/src/charts/axis/TimeAxis.scss +32 -32
  88. package/src/charts/axis/index.d.ts +3 -3
  89. package/src/charts/axis/index.js +3 -3
  90. package/src/charts/axis/index.scss +5 -5
  91. package/src/charts/axis/variables.scss +2 -2
  92. package/src/charts/helpers/MinMaxFinder.js +37 -37
  93. package/src/charts/helpers/MinMaxReducer.d.ts +22 -22
  94. package/src/charts/helpers/PointReducer.d.ts +15 -15
  95. package/src/charts/helpers/PointReducer.js +39 -39
  96. package/src/charts/helpers/SnapPointFinder.d.ts +18 -18
  97. package/src/charts/helpers/SnapPointFinder.js +46 -46
  98. package/src/charts/helpers/ValueAtFinder.d.ts +16 -16
  99. package/src/charts/helpers/ValueAtFinder.js +41 -41
  100. package/src/charts/helpers/index.d.ts +4 -4
  101. package/src/charts/helpers/index.js +4 -4
  102. package/src/charts/index.d.ts +23 -23
  103. package/src/charts/index.js +31 -31
  104. package/src/charts/index.scss +20 -20
  105. package/src/charts/palette.scss +95 -95
  106. package/src/charts/shapes.d.ts +22 -22
  107. package/src/charts/shapes.js +79 -79
  108. package/src/charts/variables.scss +14 -14
  109. package/src/core.d.ts +261 -253
  110. package/src/data/AggregateFunction.d.ts +17 -17
  111. package/src/data/AggregateFunction.js +148 -148
  112. package/src/data/ArrayElementView.d.ts +13 -13
  113. package/src/data/ArrayElementView.js +46 -46
  114. package/src/data/ArrayRef.d.ts +14 -14
  115. package/src/data/ArrayRef.js +34 -34
  116. package/src/data/AugmentedViewBase.d.ts +18 -18
  117. package/src/data/AugmentedViewBase.js +67 -67
  118. package/src/data/Binding.d.ts +16 -16
  119. package/src/data/Binding.js +86 -86
  120. package/src/data/Binding.spec.js +51 -51
  121. package/src/data/ExposedRecordView.d.ts +14 -14
  122. package/src/data/ExposedRecordView.js +69 -69
  123. package/src/data/ExposedValueView.d.ts +19 -19
  124. package/src/data/ExposedValueView.js +72 -72
  125. package/src/data/Expression.d.ts +16 -16
  126. package/src/data/Grouper.d.ts +21 -21
  127. package/src/data/Grouper.js +120 -120
  128. package/src/data/Grouper.spec.js +22 -22
  129. package/src/data/NestedDataView.d.ts +19 -19
  130. package/src/data/NestedDataView.js +22 -22
  131. package/src/data/ReadOnlyDataView.d.ts +14 -14
  132. package/src/data/ReadOnlyDataView.js +26 -26
  133. package/src/data/Ref.js +79 -79
  134. package/src/data/Store.d.ts +14 -14
  135. package/src/data/Store.js +46 -46
  136. package/src/data/Store.spec.js +22 -22
  137. package/src/data/StoreProxy.d.ts +4 -4
  138. package/src/data/StoreProxy.js +16 -16
  139. package/src/data/StoreRef.js +54 -54
  140. package/src/data/StringTemplate.d.ts +13 -13
  141. package/src/data/StringTemplate.js +97 -97
  142. package/src/data/StringTemplate.spec.js +82 -82
  143. package/src/data/StructuredSelector.d.ts +16 -16
  144. package/src/data/StructuredSelector.js +131 -131
  145. package/src/data/StructuredSelector.spec.js +113 -113
  146. package/src/data/SubscribableView.d.ts +11 -11
  147. package/src/data/View.d.ts +126 -126
  148. package/src/data/View.js +182 -182
  149. package/src/data/View.spec.js +60 -60
  150. package/src/data/ZoomIntoPropertyView.d.ts +11 -11
  151. package/src/data/ZoomIntoPropertyView.js +33 -33
  152. package/src/data/ZoomIntoPropertyView.spec.js +65 -65
  153. package/src/data/comparer.d.ts +7 -7
  154. package/src/data/comparer.js +51 -51
  155. package/src/data/comparer.spec.js +60 -60
  156. package/src/data/computable.d.ts +45 -45
  157. package/src/data/computable.js +56 -56
  158. package/src/data/computable.spec.js +55 -55
  159. package/src/data/createAccessorModelProxy.d.ts +6 -6
  160. package/src/data/createAccessorModelProxy.js +43 -43
  161. package/src/data/createAccessorModelProxy.spec.tsx +38 -38
  162. package/src/data/createStructuredSelector.d.ts +2 -2
  163. package/src/data/createStructuredSelector.js +43 -43
  164. package/src/data/createStructuredSelector.spec.js +46 -46
  165. package/src/data/defaultCompare.js +14 -14
  166. package/src/data/diff/diffArrays.d.ts +15 -15
  167. package/src/data/diff/diffArrays.js +41 -41
  168. package/src/data/diff/diffs.spec.js +49 -49
  169. package/src/data/diff/index.d.ts +1 -1
  170. package/src/data/diff/index.js +1 -1
  171. package/src/data/enableFatArrowExpansion.d.ts +1 -1
  172. package/src/data/enableFatArrowExpansion.js +6 -6
  173. package/src/data/getAccessor.d.ts +8 -8
  174. package/src/data/getAccessor.js +61 -61
  175. package/src/data/getSelector.d.ts +3 -3
  176. package/src/data/getSelector.js +48 -48
  177. package/src/data/getSelector.spec.js +43 -43
  178. package/src/data/index.d.ts +30 -30
  179. package/src/data/index.js +28 -28
  180. package/src/data/isSelector.d.ts +1 -1
  181. package/src/data/isSelector.js +26 -26
  182. package/src/data/ops/append.d.ts +1 -1
  183. package/src/data/ops/append.js +7 -7
  184. package/src/data/ops/append.spec.js +28 -28
  185. package/src/data/ops/filter.d.ts +1 -1
  186. package/src/data/ops/filter.js +8 -8
  187. package/src/data/ops/filter.spec.js +29 -29
  188. package/src/data/ops/findTreeNode.js +15 -15
  189. package/src/data/ops/findTreeNode.spec.js +24 -24
  190. package/src/data/ops/findTreePath.d.ts +6 -6
  191. package/src/data/ops/findTreePath.js +16 -16
  192. package/src/data/ops/index.d.ts +10 -10
  193. package/src/data/ops/index.js +11 -11
  194. package/src/data/ops/insertElement.js +2 -2
  195. package/src/data/ops/merge.d.ts +3 -3
  196. package/src/data/ops/merge.js +9 -9
  197. package/src/data/ops/merge.spec.js +27 -27
  198. package/src/data/ops/moveElement.js +13 -13
  199. package/src/data/ops/removeTreeNodes.d.ts +1 -1
  200. package/src/data/ops/removeTreeNodes.js +5 -5
  201. package/src/data/ops/removeTreeNodes.spec.js +28 -28
  202. package/src/data/ops/updateArray.d.ts +5 -5
  203. package/src/data/ops/updateArray.js +24 -24
  204. package/src/data/ops/updateArray.spec.js +38 -38
  205. package/src/data/ops/updateTree.d.ts +7 -7
  206. package/src/data/ops/updateTree.js +25 -25
  207. package/src/data/ops/updateTree.spec.js +34 -34
  208. package/src/global.scss +13 -13
  209. package/src/hooks/createLocalStorageRef.d.ts +2 -2
  210. package/src/hooks/createLocalStorageRef.js +22 -22
  211. package/src/hooks/index.d.ts +8 -8
  212. package/src/hooks/index.js +7 -7
  213. package/src/hooks/invokeCallback.d.ts +5 -5
  214. package/src/hooks/invokeCallback.js +6 -6
  215. package/src/hooks/invokeCallback.spec.js +53 -53
  216. package/src/hooks/resolveCallback.d.ts +3 -3
  217. package/src/hooks/resolveCallback.js +11 -11
  218. package/src/hooks/resolveCallback.spec.js +54 -54
  219. package/src/hooks/store.d.ts +7 -7
  220. package/src/hooks/store.js +32 -32
  221. package/src/hooks/store.spec.js +73 -73
  222. package/src/hooks/useEffect.d.ts +2 -2
  223. package/src/hooks/useEffect.js +14 -14
  224. package/src/hooks/useInterval.js +7 -7
  225. package/src/hooks/useState.d.ts +2 -2
  226. package/src/hooks/useState.js +15 -15
  227. package/src/hooks/useTrigger.d.ts +4 -4
  228. package/src/hooks/useTrigger.js +20 -20
  229. package/src/hooks/useTrigger.spec.js +102 -102
  230. package/src/index.js +7 -7
  231. package/src/index.scss +6 -6
  232. package/src/svg/BoundedObject.d.ts +22 -22
  233. package/src/svg/BoundedObject.js +59 -59
  234. package/src/svg/ClipRect.d.ts +4 -4
  235. package/src/svg/ClipRect.js +23 -23
  236. package/src/svg/Ellipse.d.ts +23 -23
  237. package/src/svg/Ellipse.js +36 -36
  238. package/src/svg/Line.d.ts +20 -20
  239. package/src/svg/Line.js +32 -32
  240. package/src/svg/NonOverlappingRect.d.ts +5 -5
  241. package/src/svg/NonOverlappingRect.js +14 -14
  242. package/src/svg/NonOverlappingRectGroup.d.ts +3 -3
  243. package/src/svg/NonOverlappingRectGroup.js +36 -36
  244. package/src/svg/Rectangle.d.ts +23 -23
  245. package/src/svg/Rectangle.js +36 -36
  246. package/src/svg/Svg.d.ts +32 -32
  247. package/src/svg/Svg.js +177 -177
  248. package/src/svg/Svg.scss +26 -26
  249. package/src/svg/Text.d.ts +38 -38
  250. package/src/svg/Text.js +61 -61
  251. package/src/svg/TextualBoundedObject.d.ts +6 -6
  252. package/src/svg/TextualBoundedObject.js +28 -28
  253. package/src/svg/index.d.ts +11 -11
  254. package/src/svg/index.js +17 -17
  255. package/src/svg/index.scss +8 -8
  256. package/src/svg/util/Rect.d.ts +40 -40
  257. package/src/svg/util/Rect.js +108 -108
  258. package/src/ui/CSS.d.ts +19 -19
  259. package/src/ui/CSS.js +79 -79
  260. package/src/ui/CSSHelper.d.ts +10 -10
  261. package/src/ui/CSSHelper.js +17 -17
  262. package/src/ui/Container.d.ts +18 -18
  263. package/src/ui/Container.js +183 -183
  264. package/src/ui/ContentResolver.d.ts +12 -12
  265. package/src/ui/ContentResolver.js +78 -78
  266. package/src/ui/Controller.d.ts +70 -70
  267. package/src/ui/Controller.js +114 -114
  268. package/src/ui/Controller.spec.js +414 -414
  269. package/src/ui/Culture.d.ts +22 -22
  270. package/src/ui/Culture.js +65 -65
  271. package/src/ui/Cx.d.ts +18 -18
  272. package/src/ui/Cx.js +313 -313
  273. package/src/ui/Cx.spec.js +193 -193
  274. package/src/ui/DataProxy.d.ts +10 -10
  275. package/src/ui/DataProxy.js +44 -44
  276. package/src/ui/DataProxy.spec.js +335 -335
  277. package/src/ui/DetachedScope.d.ts +21 -21
  278. package/src/ui/DetachedScope.js +93 -93
  279. package/src/ui/FocusManager.d.ts +29 -29
  280. package/src/ui/FocusManager.js +171 -163
  281. package/src/ui/Format.d.ts +2 -2
  282. package/src/ui/Format.js +88 -88
  283. package/src/ui/HoverSync.d.ts +13 -13
  284. package/src/ui/HoverSync.js +147 -147
  285. package/src/ui/Instance.d.ts +69 -69
  286. package/src/ui/Instance.js +607 -607
  287. package/src/ui/IsolatedScope.d.ts +16 -16
  288. package/src/ui/IsolatedScope.js +29 -29
  289. package/src/ui/IsolatedScope.spec.js +62 -62
  290. package/src/ui/Localization.d.ts +17 -17
  291. package/src/ui/Localization.js +72 -72
  292. package/src/ui/PureContainer.d.ts +16 -16
  293. package/src/ui/PureContainer.js +7 -7
  294. package/src/ui/RenderingContext.d.ts +9 -9
  295. package/src/ui/RenderingContext.js +88 -88
  296. package/src/ui/Repeater.d.ts +49 -49
  297. package/src/ui/Repeater.js +98 -98
  298. package/src/ui/Repeater.spec.js +143 -59
  299. package/src/ui/Rescope.d.ts +10 -10
  300. package/src/ui/Rescope.js +31 -31
  301. package/src/ui/Rescope.spec.js +195 -195
  302. package/src/ui/ResizeManager.d.ts +9 -9
  303. package/src/ui/ResizeManager.js +30 -30
  304. package/src/ui/Restate.d.ts +15 -15
  305. package/src/ui/Restate.js +155 -155
  306. package/src/ui/Restate.spec.js +422 -422
  307. package/src/ui/StaticText.d.ts +8 -8
  308. package/src/ui/StaticText.js +9 -9
  309. package/src/ui/StructuredInstanceDataAccessor.d.ts +16 -16
  310. package/src/ui/StructuredInstanceDataAccessor.js +26 -26
  311. package/src/ui/Text.d.ts +10 -10
  312. package/src/ui/Text.js +27 -27
  313. package/src/ui/VDOM.d.ts +3 -3
  314. package/src/ui/VDOM.js +2 -2
  315. package/src/ui/Widget.d.ts +14 -14
  316. package/src/ui/Widget.js +200 -200
  317. package/src/ui/ZIndexManager.d.ts +7 -7
  318. package/src/ui/ZIndexManager.js +11 -11
  319. package/src/ui/adapter/ArrayAdapter.d.ts +17 -17
  320. package/src/ui/adapter/ArrayAdapter.js +142 -142
  321. package/src/ui/adapter/ArrayAdapter.spec.js +55 -0
  322. package/src/ui/adapter/DataAdapter.d.ts +19 -19
  323. package/src/ui/adapter/DataAdapter.js +19 -19
  324. package/src/ui/adapter/GroupAdapter.d.ts +4 -4
  325. package/src/ui/adapter/GroupAdapter.js +135 -135
  326. package/src/ui/adapter/TreeAdapter.d.ts +4 -4
  327. package/src/ui/adapter/TreeAdapter.js +100 -100
  328. package/src/ui/adapter/TreeAdapter.spec.js +67 -67
  329. package/src/ui/adapter/index.d.ts +4 -4
  330. package/src/ui/adapter/index.js +4 -4
  331. package/src/ui/app/History.d.ts +17 -17
  332. package/src/ui/app/History.js +114 -114
  333. package/src/ui/app/Url.d.ts +21 -21
  334. package/src/ui/app/Url.js +103 -103
  335. package/src/ui/app/Url.spec.js +51 -51
  336. package/src/ui/app/index.d.ts +4 -4
  337. package/src/ui/app/index.js +5 -5
  338. package/src/ui/app/startAppLoop.d.ts +3 -3
  339. package/src/ui/app/startAppLoop.js +57 -57
  340. package/src/ui/app/startHotAppLoop.d.ts +6 -6
  341. package/src/ui/app/startHotAppLoop.js +25 -25
  342. package/src/ui/batchUpdates.d.ts +10 -10
  343. package/src/ui/batchUpdates.js +67 -67
  344. package/src/ui/bind.d.ts +4 -4
  345. package/src/ui/bind.js +7 -7
  346. package/src/ui/createFunctionalComponent.d.ts +1 -1
  347. package/src/ui/createFunctionalComponent.js +68 -68
  348. package/src/ui/createFunctionalComponent.spec.js +400 -400
  349. package/src/ui/expr.d.ts +24 -24
  350. package/src/ui/expr.js +17 -17
  351. package/src/ui/flattenProps.js +21 -21
  352. package/src/ui/index.js +44 -44
  353. package/src/ui/index.scss +2 -2
  354. package/src/ui/keyboardShortcuts.d.ts +4 -4
  355. package/src/ui/keyboardShortcuts.js +32 -32
  356. package/src/ui/layout/Content.d.ts +14 -14
  357. package/src/ui/layout/Content.js +16 -16
  358. package/src/ui/layout/ContentPlaceholder.d.ts +17 -17
  359. package/src/ui/layout/ContentPlaceholder.js +79 -79
  360. package/src/ui/layout/ContentPlaceholder.spec.js +368 -368
  361. package/src/ui/layout/FirstVisibleChildLayout.d.ts +4 -4
  362. package/src/ui/layout/FirstVisibleChildLayout.js +65 -65
  363. package/src/ui/layout/FirstVisibleChildLayout.spec.js +196 -196
  364. package/src/ui/layout/LabelsLeftLayout.d.ts +11 -11
  365. package/src/ui/layout/LabelsLeftLayout.js +59 -59
  366. package/src/ui/layout/LabelsLeftLayout.scss +44 -44
  367. package/src/ui/layout/LabelsTopLayout.d.ts +15 -15
  368. package/src/ui/layout/LabelsTopLayout.js +134 -134
  369. package/src/ui/layout/LabelsTopLayout.scss +63 -63
  370. package/src/ui/layout/UseParentLayout.d.ts +4 -4
  371. package/src/ui/layout/UseParentLayout.js +6 -6
  372. package/src/ui/layout/exploreChildren.d.ts +14 -14
  373. package/src/ui/layout/exploreChildren.js +40 -40
  374. package/src/ui/layout/index.d.ts +10 -10
  375. package/src/ui/layout/index.js +10 -10
  376. package/src/ui/layout/index.scss +3 -3
  377. package/src/ui/layout/variables.scss +2 -2
  378. package/src/ui/selection/KeySelection.d.ts +17 -17
  379. package/src/ui/selection/KeySelection.js +129 -129
  380. package/src/ui/selection/PropertySelection.d.ts +17 -17
  381. package/src/ui/selection/PropertySelection.js +57 -57
  382. package/src/ui/selection/Selection.d.ts +27 -27
  383. package/src/ui/selection/Selection.js +97 -97
  384. package/src/ui/selection/index.d.ts +3 -3
  385. package/src/ui/selection/index.js +3 -3
  386. package/src/ui/tpl.d.ts +2 -2
  387. package/src/ui/tpl.js +4 -4
  388. package/src/ui/variables.scss +1 -1
  389. package/src/util/Component.d.ts +41 -41
  390. package/src/util/Component.js +107 -107
  391. package/src/util/Console.d.ts +9 -9
  392. package/src/util/Console.js +11 -11
  393. package/src/util/DOM.d.ts +33 -33
  394. package/src/util/DOM.js +72 -72
  395. package/src/util/Debug.d.ts +10 -10
  396. package/src/util/Debug.js +45 -45
  397. package/src/util/Format.d.ts +13 -13
  398. package/src/util/Format.js +241 -241
  399. package/src/util/Format.spec.js +69 -69
  400. package/src/util/GlobalCacheIdentifier.js +11 -11
  401. package/src/util/GlobalCacheldentifier.d.ts +6 -6
  402. package/src/util/KeyCode.d.ts +21 -21
  403. package/src/util/KeyCode.js +21 -21
  404. package/src/util/SubscriberList.d.ts +41 -41
  405. package/src/util/SubscriberList.js +57 -57
  406. package/src/util/Timing.d.ts +13 -13
  407. package/src/util/Timing.js +57 -57
  408. package/src/util/TraversalStack.js +42 -42
  409. package/src/util/TraversalStack.spec.js +46 -46
  410. package/src/util/addEventListenerWithOptions.d.ts +6 -6
  411. package/src/util/addEventListenerWithOptions.js +9 -9
  412. package/src/util/browserSupportsPassiveEventHandlers.d.ts +4 -4
  413. package/src/util/browserSupportsPassiveEventHandlers.js +18 -18
  414. package/src/util/calculateNaturalElementHeight.d.ts +1 -1
  415. package/src/util/calculateNaturalElementHeight.js +22 -22
  416. package/src/util/call-once.scss +6 -6
  417. package/src/util/coalesce.d.ts +1 -1
  418. package/src/util/coalesce.js +6 -6
  419. package/src/util/color/hslToRgb.d.ts +8 -8
  420. package/src/util/color/hslToRgb.js +27 -27
  421. package/src/util/color/index.d.ts +3 -3
  422. package/src/util/color/index.js +4 -4
  423. package/src/util/color/parseColor.d.ts +59 -59
  424. package/src/util/color/parseColor.js +119 -119
  425. package/src/util/color/rgbToHex.d.ts +8 -8
  426. package/src/util/color/rgbToHex.js +7 -7
  427. package/src/util/color/rgbToHsl.d.ts +8 -8
  428. package/src/util/color/rgbToHsl.js +27 -27
  429. package/src/util/date/dateDiff.d.ts +7 -7
  430. package/src/util/date/dateDiff.js +3 -3
  431. package/src/util/date/diff.d.ts +7 -7
  432. package/src/util/date/diff.js +7 -7
  433. package/src/util/date/encodeDateWithTimezoneOffset.js +18 -18
  434. package/src/util/date/index.d.ts +8 -8
  435. package/src/util/date/index.js +9 -9
  436. package/src/util/date/lowerBoundCheck.d.ts +7 -7
  437. package/src/util/date/lowerBoundCheck.js +6 -6
  438. package/src/util/date/maxDate.d.ts +5 -5
  439. package/src/util/date/maxDate.js +9 -9
  440. package/src/util/date/minDate.d.ts +5 -5
  441. package/src/util/date/minDate.js +9 -9
  442. package/src/util/date/monthStart.d.ts +5 -5
  443. package/src/util/date/monthStart.js +3 -3
  444. package/src/util/date/sameDate.d.ts +6 -6
  445. package/src/util/date/sameDate.js +5 -5
  446. package/src/util/date/upperBoundCheck.d.ts +7 -7
  447. package/src/util/date/upperBoundCheck.js +6 -6
  448. package/src/util/date/upperBoundCheck.spec.js +30 -30
  449. package/src/util/date/zeroTime.d.ts +6 -6
  450. package/src/util/date/zeroTime.js +3 -3
  451. package/src/util/debounce.d.ts +9 -9
  452. package/src/util/dummyCallback.d.ts +1 -1
  453. package/src/util/dummyCallback.js +1 -1
  454. package/src/util/escapeSpecialRegexCharacters.d.ts +6 -6
  455. package/src/util/escapeSpecialRegexCharacters.js +3 -3
  456. package/src/util/eventCallbacks.d.ts +4 -4
  457. package/src/util/eventCallbacks.js +2 -2
  458. package/src/util/expandFatArrows.js +118 -118
  459. package/src/util/findScrollableParent.js +16 -16
  460. package/src/util/getActiveElement.js +3 -3
  461. package/src/util/getParentFrameBoundingClientRect.js +18 -18
  462. package/src/util/getScrollerBoundingClientRect.js +21 -21
  463. package/src/util/getSearchQueryPredicate.js +58 -58
  464. package/src/util/getSearchQueryPredicate.spec.js +40 -40
  465. package/src/util/getTopLevelBoundingClientRect.js +13 -13
  466. package/src/util/getVendorPrefix.js +26 -26
  467. package/src/util/index.d.ts +50 -50
  468. package/src/util/index.js +52 -52
  469. package/src/util/index.scss +10 -10
  470. package/src/util/innerTextTrim.d.ts +6 -6
  471. package/src/util/innerTextTrim.js +5 -5
  472. package/src/util/isArray.js +3 -3
  473. package/src/util/isDefined.js +3 -3
  474. package/src/util/isDigit.d.ts +6 -6
  475. package/src/util/isDigit.js +3 -3
  476. package/src/util/isFunction.d.ts +1 -1
  477. package/src/util/isFunction.js +3 -3
  478. package/src/util/isNonEmptyArray.d.ts +1 -1
  479. package/src/util/isNonEmptyArray.js +3 -3
  480. package/src/util/isNumber.js +3 -3
  481. package/src/util/isObject.js +3 -3
  482. package/src/util/isPromise.d.ts +1 -1
  483. package/src/util/isPromise.js +6 -6
  484. package/src/util/isString.js +3 -3
  485. package/src/util/isTextInputElement.d.ts +1 -1
  486. package/src/util/isTextInputElement.js +2 -2
  487. package/src/util/isTouchDevice.d.ts +1 -1
  488. package/src/util/isTouchDevice.js +7 -7
  489. package/src/util/isTouchEvent.d.ts +3 -3
  490. package/src/util/isTouchEvent.js +64 -64
  491. package/src/util/isUndefined.js +3 -3
  492. package/src/util/onIdleCallback.js +13 -13
  493. package/src/util/parseStyle.d.ts +3 -3
  494. package/src/util/parseStyle.js +27 -27
  495. package/src/util/quote.d.ts +2 -2
  496. package/src/util/quote.js +5 -5
  497. package/src/util/reverseSlice.js +9 -9
  498. package/src/util/routeAppend.js +15 -15
  499. package/src/util/routeAppend.spec.js +19 -19
  500. package/src/util/scrollElementIntoView.d.ts +7 -7
  501. package/src/util/scrollElementIntoView.js +34 -34
  502. package/src/util/scss/add-rules.scss +39 -39
  503. package/src/util/scss/calc.scss +40 -40
  504. package/src/util/scss/call-once.scss +10 -10
  505. package/src/util/scss/clockwise.scss +47 -47
  506. package/src/util/scss/colors.scss +7 -7
  507. package/src/util/scss/deep-get.scss +9 -9
  508. package/src/util/scss/deep-merge.scss +18 -18
  509. package/src/util/scss/include.scss +47 -47
  510. package/src/util/scss/index.scss +8 -8
  511. package/src/util/shallowEquals.js +43 -43
  512. package/src/util/throttle.d.ts +8 -8
  513. package/src/util/throttle.js +14 -14
  514. package/src/variables.scss +217 -217
  515. package/src/widgets/AccessorBindings.spec.tsx +66 -66
  516. package/src/widgets/Button.d.ts +58 -58
  517. package/src/widgets/Button.scss +36 -28
  518. package/src/widgets/Button.variables.scss +107 -107
  519. package/src/widgets/CxCredit.d.ts +12 -12
  520. package/src/widgets/CxCredit.js +31 -31
  521. package/src/widgets/CxCredit.scss +41 -41
  522. package/src/widgets/DocumentTitle.d.ts +11 -11
  523. package/src/widgets/DocumentTitle.js +68 -68
  524. package/src/widgets/FlexBox.d.ts +69 -69
  525. package/src/widgets/FlexBox.js +92 -92
  526. package/src/widgets/FlexBox.scss +155 -155
  527. package/src/widgets/Heading.d.ts +16 -16
  528. package/src/widgets/Heading.js +32 -32
  529. package/src/widgets/Heading.scss +38 -38
  530. package/src/widgets/HighlightedSearchText.d.ts +9 -9
  531. package/src/widgets/HighlightedSearchText.js +36 -36
  532. package/src/widgets/HighlightedSearchText.scss +18 -18
  533. package/src/widgets/HtmlElement.d.ts +26 -26
  534. package/src/widgets/HtmlElement.js +273 -273
  535. package/src/widgets/HtmlElement.spec.js +57 -57
  536. package/src/widgets/Icon.d.ts +36 -36
  537. package/src/widgets/Icon.js +50 -50
  538. package/src/widgets/Icon.scss +20 -20
  539. package/src/widgets/List.d.ts +87 -87
  540. package/src/widgets/List.js +589 -589
  541. package/src/widgets/List.scss +92 -92
  542. package/src/widgets/ProgressBar.d.ts +17 -17
  543. package/src/widgets/ProgressBar.js +46 -46
  544. package/src/widgets/ProgressBar.scss +49 -49
  545. package/src/widgets/Resizer.d.ts +27 -27
  546. package/src/widgets/Resizer.js +151 -151
  547. package/src/widgets/Resizer.scss +42 -42
  548. package/src/widgets/Sandbox.d.ts +16 -18
  549. package/src/widgets/Sandbox.js +62 -59
  550. package/src/widgets/Section.d.ts +52 -52
  551. package/src/widgets/Section.js +139 -139
  552. package/src/widgets/Section.scss +54 -54
  553. package/src/widgets/animations.scss +10 -10
  554. package/src/widgets/autoFocus.d.ts +1 -1
  555. package/src/widgets/autoFocus.js +11 -11
  556. package/src/widgets/cx.d.ts +1 -1
  557. package/src/widgets/cx.js +71 -71
  558. package/src/widgets/drag-drop/DragClone.scss +33 -33
  559. package/src/widgets/drag-drop/DragHandle.d.ts +10 -10
  560. package/src/widgets/drag-drop/DragHandle.js +37 -37
  561. package/src/widgets/drag-drop/DragHandle.scss +16 -16
  562. package/src/widgets/drag-drop/DragSource.d.ts +34 -34
  563. package/src/widgets/drag-drop/DragSource.js +160 -160
  564. package/src/widgets/drag-drop/DragSource.scss +24 -24
  565. package/src/widgets/drag-drop/DropZone.d.ts +90 -90
  566. package/src/widgets/drag-drop/DropZone.js +213 -213
  567. package/src/widgets/drag-drop/DropZone.scss +74 -74
  568. package/src/widgets/drag-drop/index.d.ts +4 -4
  569. package/src/widgets/drag-drop/index.js +4 -4
  570. package/src/widgets/drag-drop/index.scss +3 -3
  571. package/src/widgets/drag-drop/ops.d.ts +56 -56
  572. package/src/widgets/drag-drop/ops.js +344 -344
  573. package/src/widgets/drag-drop/variables.scss +11 -11
  574. package/src/widgets/enableAllInternalDependencies.d.ts +1 -1
  575. package/src/widgets/enableAllInternalDependencies.js +11 -11
  576. package/src/widgets/form/Calendar.d.ts +60 -60
  577. package/src/widgets/form/Calendar.js +506 -506
  578. package/src/widgets/form/Calendar.scss +164 -164
  579. package/src/widgets/form/Calendar.variables.scss +63 -63
  580. package/src/widgets/form/Checkbox.d.ts +43 -43
  581. package/src/widgets/form/Checkbox.js +200 -200
  582. package/src/widgets/form/Checkbox.scss +122 -122
  583. package/src/widgets/form/Checkbox.variables.scss +39 -39
  584. package/src/widgets/form/ColorField.d.ts +43 -43
  585. package/src/widgets/form/ColorField.js +389 -389
  586. package/src/widgets/form/ColorField.scss +92 -92
  587. package/src/widgets/form/ColorPicker.d.ts +23 -23
  588. package/src/widgets/form/ColorPicker.js +451 -451
  589. package/src/widgets/form/ColorPicker.scss +184 -184
  590. package/src/widgets/form/ColorPicker.variables.scss +20 -20
  591. package/src/widgets/form/DateField.d.ts +6 -6
  592. package/src/widgets/form/DateField.js +12 -12
  593. package/src/widgets/form/DateTimeField.d.ts +83 -83
  594. package/src/widgets/form/DateTimeField.js +571 -571
  595. package/src/widgets/form/DateTimeField.scss +90 -90
  596. package/src/widgets/form/DateTimePicker.js +391 -391
  597. package/src/widgets/form/DateTimePicker.scss +44 -44
  598. package/src/widgets/form/Field.d.ts +112 -112
  599. package/src/widgets/form/Field.js +419 -419
  600. package/src/widgets/form/Field.scss +162 -162
  601. package/src/widgets/form/FieldGroup.d.ts +6 -6
  602. package/src/widgets/form/FieldGroup.js +5 -5
  603. package/src/widgets/form/HelpText.d.ts +10 -10
  604. package/src/widgets/form/HelpText.js +9 -9
  605. package/src/widgets/form/HelpText.scss +23 -23
  606. package/src/widgets/form/Label.d.ts +25 -25
  607. package/src/widgets/form/Label.js +86 -86
  608. package/src/widgets/form/Label.scss +36 -36
  609. package/src/widgets/form/LabeledContainer.d.ts +17 -17
  610. package/src/widgets/form/LabeledContainer.js +57 -57
  611. package/src/widgets/form/LookupField.d.ts +159 -159
  612. package/src/widgets/form/LookupField.js +1118 -1118
  613. package/src/widgets/form/LookupField.scss +210 -210
  614. package/src/widgets/form/MonthField.d.ts +88 -88
  615. package/src/widgets/form/MonthField.js +512 -512
  616. package/src/widgets/form/MonthField.scss +99 -99
  617. package/src/widgets/form/MonthPicker.d.ts +68 -68
  618. package/src/widgets/form/MonthPicker.js +631 -631
  619. package/src/widgets/form/MonthPicker.scss +120 -120
  620. package/src/widgets/form/NumberField.d.ts +94 -94
  621. package/src/widgets/form/NumberField.js +443 -443
  622. package/src/widgets/form/NumberField.scss +65 -65
  623. package/src/widgets/form/Radio.d.ts +37 -37
  624. package/src/widgets/form/Radio.js +188 -188
  625. package/src/widgets/form/Radio.scss +122 -122
  626. package/src/widgets/form/Radio.variables.scss +45 -45
  627. package/src/widgets/form/Select.d.ts +73 -73
  628. package/src/widgets/form/Select.js +274 -274
  629. package/src/widgets/form/Select.scss +98 -98
  630. package/src/widgets/form/Slider.d.ts +62 -62
  631. package/src/widgets/form/Slider.js +345 -339
  632. package/src/widgets/form/Slider.scss +121 -121
  633. package/src/widgets/form/Switch.d.ts +38 -38
  634. package/src/widgets/form/Switch.js +120 -120
  635. package/src/widgets/form/Switch.scss +140 -140
  636. package/src/widgets/form/TextArea.d.ts +17 -17
  637. package/src/widgets/form/TextArea.js +182 -182
  638. package/src/widgets/form/TextArea.scss +60 -60
  639. package/src/widgets/form/TextField.d.ts +75 -75
  640. package/src/widgets/form/TextField.js +285 -285
  641. package/src/widgets/form/TextField.scss +67 -67
  642. package/src/widgets/form/TimeField.d.ts +6 -6
  643. package/src/widgets/form/TimeField.js +11 -11
  644. package/src/widgets/form/TimeList.js +84 -84
  645. package/src/widgets/form/UploadButton.d.ts +31 -31
  646. package/src/widgets/form/UploadButton.js +213 -213
  647. package/src/widgets/form/UploadButton.scss +47 -47
  648. package/src/widgets/form/ValidationError.d.ts +10 -10
  649. package/src/widgets/form/ValidationError.js +37 -37
  650. package/src/widgets/form/ValidationError.scss +21 -21
  651. package/src/widgets/form/ValidationGroup.spec.js +148 -148
  652. package/src/widgets/form/Validator.d.ts +6 -6
  653. package/src/widgets/form/Wheel.js +261 -261
  654. package/src/widgets/form/Wheel.scss +148 -148
  655. package/src/widgets/form/index.d.ts +26 -26
  656. package/src/widgets/form/index.js +29 -29
  657. package/src/widgets/form/index.scss +24 -24
  658. package/src/widgets/form/variables.scss +4 -4
  659. package/src/widgets/grid/Grid.d.ts +369 -369
  660. package/src/widgets/grid/Grid.js +3223 -3223
  661. package/src/widgets/grid/Grid.scss +680 -680
  662. package/src/widgets/grid/GridCell.d.ts +29 -29
  663. package/src/widgets/grid/GridCell.js +70 -70
  664. package/src/widgets/grid/GridCellEditor.js +41 -41
  665. package/src/widgets/grid/GridRow.js +228 -228
  666. package/src/widgets/grid/GridRowLine.js +24 -24
  667. package/src/widgets/grid/Pagination.d.ts +14 -14
  668. package/src/widgets/grid/Pagination.js +94 -94
  669. package/src/widgets/grid/Pagination.scss +113 -113
  670. package/src/widgets/grid/TreeNode.d.ts +25 -25
  671. package/src/widgets/grid/TreeNode.js +102 -102
  672. package/src/widgets/grid/TreeNode.scss +90 -90
  673. package/src/widgets/grid/index.d.ts +3 -3
  674. package/src/widgets/grid/index.js +14 -14
  675. package/src/widgets/grid/index.scss +3 -3
  676. package/src/widgets/grid/variables.scss +88 -88
  677. package/src/widgets/icons/arrow-down.svg +3 -3
  678. package/src/widgets/icons/arrow-right.svg +2 -2
  679. package/src/widgets/icons/base.svg +104 -104
  680. package/src/widgets/icons/calendar-old.svg +169 -169
  681. package/src/widgets/icons/calendar.js +16 -16
  682. package/src/widgets/icons/calendar.svg +187 -187
  683. package/src/widgets/icons/check.js +12 -12
  684. package/src/widgets/icons/clear.js +14 -14
  685. package/src/widgets/icons/clear.svg +74 -74
  686. package/src/widgets/icons/close.js +19 -19
  687. package/src/widgets/icons/close.svg +74 -74
  688. package/src/widgets/icons/cx.js +37 -37
  689. package/src/widgets/icons/drop-down.js +14 -14
  690. package/src/widgets/icons/dropdown-arrow.svg +61 -61
  691. package/src/widgets/icons/file.js +12 -12
  692. package/src/widgets/icons/file.svg +4 -4
  693. package/src/widgets/icons/folder-open.js +14 -14
  694. package/src/widgets/icons/folder-open.svg +5 -5
  695. package/src/widgets/icons/folder.js +12 -12
  696. package/src/widgets/icons/folder.svg +58 -58
  697. package/src/widgets/icons/forward.js +21 -21
  698. package/src/widgets/icons/forward.svg +67 -67
  699. package/src/widgets/icons/index.js +14 -14
  700. package/src/widgets/icons/loading.js +23 -23
  701. package/src/widgets/icons/loading.svg +4 -4
  702. package/src/widgets/icons/menu.js +16 -16
  703. package/src/widgets/icons/registry.js +53 -53
  704. package/src/widgets/icons/search.js +12 -12
  705. package/src/widgets/icons/search.svg +107 -107
  706. package/src/widgets/icons/sort-asc.js +13 -13
  707. package/src/widgets/icons/sort-asc.svg +3 -3
  708. package/src/widgets/icons/square.js +17 -17
  709. package/src/widgets/index.d.ts +55 -55
  710. package/src/widgets/index.js +57 -57
  711. package/src/widgets/index.scss +16 -16
  712. package/src/widgets/nav/Link.d.ts +26 -26
  713. package/src/widgets/nav/Link.js +7 -7
  714. package/src/widgets/nav/Link.scss +18 -18
  715. package/src/widgets/nav/LinkButton.d.ts +31 -31
  716. package/src/widgets/nav/LinkButton.js +127 -127
  717. package/src/widgets/nav/Menu.d.ts +27 -27
  718. package/src/widgets/nav/Menu.js +406 -411
  719. package/src/widgets/nav/Menu.scss +74 -74
  720. package/src/widgets/nav/Menu.variables.scss +17 -17
  721. package/src/widgets/nav/MenuItem.d.ts +35 -35
  722. package/src/widgets/nav/MenuItem.js +445 -444
  723. package/src/widgets/nav/MenuItem.scss +128 -128
  724. package/src/widgets/nav/MenuSpacer.d.ts +5 -5
  725. package/src/widgets/nav/MenuSpacer.js +12 -12
  726. package/src/widgets/nav/RedirectRoute.d.ts +9 -9
  727. package/src/widgets/nav/RedirectRoute.js +40 -40
  728. package/src/widgets/nav/Route.d.ts +21 -21
  729. package/src/widgets/nav/Route.js +105 -105
  730. package/src/widgets/nav/Route.spec.js +27 -27
  731. package/src/widgets/nav/Scroller.d.ts +17 -17
  732. package/src/widgets/nav/Scroller.js +214 -214
  733. package/src/widgets/nav/Scroller.scss +146 -146
  734. package/src/widgets/nav/Submenu.d.ts +6 -6
  735. package/src/widgets/nav/Submenu.js +6 -6
  736. package/src/widgets/nav/Tab.d.ts +33 -33
  737. package/src/widgets/nav/Tab.js +82 -82
  738. package/src/widgets/nav/Tab.scss +81 -81
  739. package/src/widgets/nav/Tab.variables.scss +80 -80
  740. package/src/widgets/nav/cover.scss +21 -21
  741. package/src/widgets/nav/index.d.ts +10 -10
  742. package/src/widgets/nav/index.js +10 -10
  743. package/src/widgets/nav/index.scss +5 -5
  744. package/src/widgets/nav/variables.scss +25 -25
  745. package/src/widgets/overlay/ContextMenu.d.ts +8 -8
  746. package/src/widgets/overlay/ContextMenu.js +28 -28
  747. package/src/widgets/overlay/Dropdown.d.ts +27 -27
  748. package/src/widgets/overlay/Dropdown.js +610 -601
  749. package/src/widgets/overlay/Dropdown.scss +184 -184
  750. package/src/widgets/overlay/FlyweightTooltipTracker.d.ts +8 -8
  751. package/src/widgets/overlay/FlyweightTooltipTracker.js +36 -36
  752. package/src/widgets/overlay/MsgBox.d.ts +16 -16
  753. package/src/widgets/overlay/MsgBox.js +116 -116
  754. package/src/widgets/overlay/Overlay.d.ts +69 -69
  755. package/src/widgets/overlay/Overlay.js +747 -736
  756. package/src/widgets/overlay/Overlay.scss +66 -66
  757. package/src/widgets/overlay/Toast.d.ts +30 -30
  758. package/src/widgets/overlay/Toast.js +92 -92
  759. package/src/widgets/overlay/Toast.scss +162 -162
  760. package/src/widgets/overlay/Tooltip.d.ts +50 -50
  761. package/src/widgets/overlay/Tooltip.js +283 -283
  762. package/src/widgets/overlay/Tooltip.scss +175 -175
  763. package/src/widgets/overlay/Window.d.ts +39 -39
  764. package/src/widgets/overlay/Window.js +195 -195
  765. package/src/widgets/overlay/Window.scss +112 -112
  766. package/src/widgets/overlay/Window.variables.scss +67 -67
  767. package/src/widgets/overlay/alerts.d.ts +7 -7
  768. package/src/widgets/overlay/alerts.js +39 -39
  769. package/src/widgets/overlay/captureMouse.d.ts +53 -53
  770. package/src/widgets/overlay/captureMouse.js +132 -132
  771. package/src/widgets/overlay/captureMouse.scss +13 -13
  772. package/src/widgets/overlay/index.d.ts +10 -10
  773. package/src/widgets/overlay/index.js +10 -10
  774. package/src/widgets/overlay/index.scss +15 -15
  775. package/src/widgets/overlay/tooltip-ops.d.ts +8 -8
  776. package/src/widgets/overlay/tooltip-ops.js +24 -24
  777. package/src/widgets/overlay/variables.scss +82 -82
  778. package/src/widgets/variables.scss +144 -144
  779. package/yarn-error.log +7973 -0
  780. package/dist/reset.js +0 -1
@@ -1,369 +1,369 @@
1
- import * as React from "react";
2
- import { Instance } from "../../ui/Instance";
3
- import { DragEvent } from "../drag-drop/ops";
4
- import { View } from "../../data/View";
5
- import {
6
- BooleanProp,
7
- ClassProp,
8
- CollatorOptions,
9
- Config,
10
- NumberProp,
11
- Prop,
12
- Record,
13
- RecordAlias,
14
- SortDirection,
15
- SortersProp,
16
- StringProp,
17
- StructuredProp,
18
- StyledContainerProps,
19
- StyleProp,
20
- Widget,
21
- } from "../../core";
22
-
23
- type FetchRecordsResult = Record[] | { records: Record[]; lastPage?: boolean; totalRecordCount?: number };
24
-
25
- interface MappedGridRecord {
26
- data: Record;
27
- store: View;
28
- }
29
-
30
- interface GridDragEvent extends DragEvent {
31
- target: {
32
- recordBefore: MappedGridRecord;
33
- recordAfter: MappedGridRecord;
34
- insertionIndex: number;
35
- totalRecordCount: number;
36
- };
37
- }
38
-
39
- interface GridRowDragEvent extends DragEvent {
40
- target: {
41
- record: MappedGridRecord;
42
- index: number;
43
- };
44
- }
45
-
46
- interface GridColumnDropEvent extends DragEvent {
47
- target: {
48
- grid: any;
49
- instance: Instance;
50
- index: number;
51
- };
52
- }
53
-
54
- interface GridGroupingKey {
55
- [key: string]:
56
- | Prop<any>
57
- | {
58
- value: Prop<any>;
59
- direction: SortDirection;
60
- };
61
- }
62
-
63
- type GridColumnAlignment = "left" | "right" | "center";
64
-
65
- interface GridGroupingConfig {
66
- key: GridGroupingKey;
67
- aggregates?: StructuredProp;
68
- showCaption?: boolean;
69
- showFooter?: boolean;
70
- showHeader?: boolean;
71
- caption?: StringProp;
72
- name?: StringProp;
73
- text?: StringProp;
74
- }
75
-
76
- // TODO: Check Column config
77
- // Props are in order based on docs
78
-
79
- interface GridColumnHeaderConfig {
80
- text?: StringProp;
81
- colSpan?: NumberProp;
82
- rowSpan?: NumberProp;
83
- align?: GridColumnAlignment;
84
- allowSorting?: boolean;
85
- items?: React.ReactNode;
86
- children?: React.ReactNode;
87
- tool?: React.ReactNode;
88
- style?: StyleProp;
89
- class?: ClassProp;
90
- className?: ClassProp;
91
- tooltip?: Cx.StringProp | Cx.StructuredProp;
92
- }
93
-
94
- interface GridColumnConfig {
95
- align?: GridColumnAlignment;
96
- field?: string;
97
- format?: StringProp;
98
- header?: StringProp | GridColumnHeaderConfig;
99
- header1?: StringProp | GridColumnHeaderConfig;
100
- header2?: StringProp | GridColumnHeaderConfig;
101
- header3?: StringProp | GridColumnHeaderConfig;
102
- sortable?: boolean;
103
- aggregate?: "min" | "max" | "count" | "sum" | "distinct" | "avg";
104
- aggregateAlias?: string;
105
- aggregateField?: string;
106
- caption?: StringProp;
107
- class?: ClassProp;
108
- className?: ClassProp;
109
- draggable?: boolean;
110
- editable?: boolean;
111
- editor?: React.ReactNode;
112
- footer?: StringProp | false;
113
- items?: React.ReactNode;
114
- children?: React.ReactNode;
115
- key?: string;
116
- pad?: boolean;
117
- sortField?: string;
118
- sortValue?: Prop<any>;
119
- style?: StyleProp;
120
- trimWhitespace?: boolean;
121
- visible?: BooleanProp;
122
- if?: BooleanProp;
123
- weightField?: string;
124
-
125
- // Not in docs
126
- value?: Prop<any>;
127
- defaultWidth?: NumberProp;
128
- width?: NumberProp;
129
- resizable?: boolean;
130
- comparer?: (a: any, b: any) => number;
131
-
132
- /** Options for data sorting. See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator */
133
- sortOptions?: CollatorOptions;
134
- }
135
-
136
- interface GridRowLineConfig {
137
- visible?: BooleanProp;
138
- columns: GridColumnConfig[];
139
- }
140
-
141
- interface GridRowConfig {
142
- invalid?: BooleanProp;
143
- valid?: BooleanProp;
144
- style?: StyleProp;
145
- class?: ClassProp;
146
- className?: ClassProp;
147
- line1?: GridRowLineConfig;
148
- line2?: GridRowLineConfig;
149
- line3?: GridRowLineConfig;
150
- }
151
-
152
- interface GridProps extends StyledContainerProps {
153
- /** An array of records to be displayed in the grid. */
154
- records?: Prop<Record[]>;
155
-
156
- /** Set to true to add a vertical scroll and a fixed header to the grid. */
157
- scrollable?: boolean;
158
-
159
- /** A binding used to store the sorting order list. Commonly used for server-side sorting. */
160
- sorters?: SortersProp;
161
-
162
- /** A list of sorters to be prepended to the actual list of sorters. */
163
- preSorters?: SortersProp;
164
-
165
- /** A binding used to store the name of the field used for sorting grids. Available only if sorters are not used. */
166
- sortField?: StringProp;
167
-
168
- /** A binding used to store the sort direction. Available only if sorters are not used. Possible values are "ASC" and "DESC". Defaults to "ASC". */
169
- sortDirection?: StringProp;
170
-
171
- /** Default sort field. Used if neither sortField or sorters are set. */
172
- defaultSortField?: string;
173
-
174
- /** Default sort direction. */
175
- defaultSortDirection?: "ASC" | "DESC";
176
-
177
- /** Set to true to add vertical gridlines. */
178
- vlines?: boolean;
179
-
180
- /** Text to be displayed instead of an empty table. */
181
- emptyText?: StringProp;
182
-
183
- /** Drag source configuration. Define mode as 'move' or 'copy` and additional data. */
184
- dragSource?: StructuredProp;
185
-
186
- /** Drop zone configuration. Define mode as either preview or insertion. */
187
- dropZone?: StructuredProp;
188
-
189
- /** Row configuration. See grid examples. */
190
- row?: GridRowConfig;
191
-
192
- /**An array of columns. Check column configuration options in the section below. */
193
- columns?: GridColumnConfig[];
194
-
195
- /** Whenever columnParams change, columns are recalculated using the onGetColumn callback. */
196
- columnParams?: Config;
197
-
198
- /** Selection configuration. */
199
- selection?: Config;
200
-
201
- /** An array of grouping level definitions. Check allowed grouping level properties in the section below. */
202
- grouping?: GridGroupingConfig[];
203
-
204
- /** Params for grouping. Whenever params change grouping is recalculated using the onGetGrouping callback. */
205
- groupingParams?: Config;
206
-
207
- /**
208
- * Determines header appearance. Supported values are plain and default. Default mode is used if some of the columns are sortable.
209
- * Plain mode better suits reports and other scenarios in which users do not interact with the grid.
210
- */
211
- headerMode?: StringProp;
212
-
213
- /** Set to true to add default border around the table. Automatically set if grid is scrollable. */
214
- border?: BooleanProp;
215
-
216
- /** Base CSS class to be applied to the element. Default is 'grid'. */
217
- baseClass?: string;
218
-
219
- /** A field used to get the unique identifier of the record. Setting keyField improves grid performance on sort operations as the widget is able to identify row movement inside the grid. */
220
- keyField?: string;
221
-
222
- /** Show grid header within the group. Useful for long report-like (printable) grids. Defaults to false. */
223
- showHeader?: boolean;
224
-
225
- /** Show grid footer. Defaults to false. */
226
- showFooter?: boolean;
227
-
228
- /** Record alias. Default is $record. */
229
- recordName?: RecordAlias;
230
-
231
- /** Record alias. Default is $record. */
232
- recordAlias?: RecordAlias;
233
-
234
- /** Set to true if sorting is done remotely, on the server-side. Default value is false. */
235
- remoteSort?: boolean;
236
-
237
- /** Set to true to enable row caching. This greatly improves grid performance
238
- on subsequent render operations, however, only changes on records
239
- are allowed. If grid rows display any data outside records, changes on that
240
- data will be ignored. */
241
- cached?: boolean;
242
-
243
- /** Render only rows visible on the screen. */
244
- buffered?: boolean;
245
-
246
- /** Specifies how many rows should be visible on the screen */
247
- bufferSize?: number;
248
-
249
- /** Specifies how many rows needs to be scrolled in order to recalculate buffer */
250
- bufferStep?: number;
251
-
252
- /** Used when rows have variable heights to improve buffered rendering by measuring and caching rendered row heights. Default value is false. */
253
- measureRowHeights?: boolean;
254
-
255
- /** Scrolls selection into the view. Default value is false. */
256
- scrollSelectionIntoView?: boolean;
257
-
258
- /**
259
- * Set to true to lock column widths after the first render.
260
- * This is helpful in pagination scenarios to maintain consistent looks across pages.
261
- */
262
- lockColumnWidths?: boolean;
263
-
264
- lockColumnWidthsRequiredRowCount?: number;
265
- focused?: boolean;
266
- showBorder?: boolean;
267
-
268
- /** Data adapter used to convert data in list of records. Used to enable grouping and tree operations. */
269
- dataAdapter?: any;
270
-
271
- /** Additional CSS class to be added to each grid row. */
272
- rowClass?: ClassProp;
273
-
274
- /** Additional CSS styles to be added to each grid row. */
275
- rowStyle?: StyleProp;
276
-
277
- // drag-drop handlers
278
- onDrop?: (e: GridDragEvent, instance: Instance) => void;
279
- onDropTest?: (e: DragEvent, instance: Instance) => boolean;
280
- onDragStart?: (e: DragEvent, instance: Instance) => void;
281
- onDragEnd?: (e: DragEvent, instance: Instance) => void;
282
- onDragOver?: (e: GridDragEvent, instance: Instance) => void | boolean;
283
-
284
- onRowDropTest?: (e: DragEvent, instance: Instance) => boolean;
285
- onRowDragOver?: (e: GridRowDragEvent, instance: Instance) => void | boolean;
286
- onRowDrop?: (e: GridRowDragEvent, instance: Instance) => void | boolean;
287
-
288
- onColumnDrop?: (e: GridColumnDropEvent, instance: Instance) => void;
289
- onColumnDropTest?: (e: DragEvent, instance: Instance) => boolean;
290
-
291
- /** Parameters that affect filtering. */
292
- filterParams?: StructuredProp;
293
-
294
- /** Callback to create a filter function for given filter params. */
295
- onCreateFilter?: (filterParams: any, instance?: Instance) => (record: Record) => boolean;
296
-
297
- /** Enable infinite scrolling */
298
- infinite?: boolean;
299
-
300
- /** If set, clicking on the column header will loop between ASC, DESC and no sorting order, instead of ASC and DESC only. */
301
- clearableSort?: boolean;
302
-
303
- /** A callback to fetch records during infinite loading */
304
- onFetchRecords?: (
305
- pageInfo: {
306
- page: number;
307
- pageSize: number;
308
- sorters?: Record[];
309
- sortField?: string;
310
- sortDirection?: string;
311
- },
312
- instance?: Instance
313
- ) => FetchRecordsResult | Promise<FetchRecordsResult>;
314
-
315
- /** Callback function to be executed when a row is double-clicked. */
316
- onRowDoubleClick?: string | ((e: React.SyntheticEvent<any>, instance: Instance) => void);
317
-
318
- /** Callback function to be executed when a row is clicked. */
319
- onRowClick?: string | ((e: React.SyntheticEvent<any>, instance: Instance) => void);
320
-
321
- /** Set to true to add a fixed footer at the bottom of the grid. */
322
- fixedFooter?: boolean;
323
-
324
- /** Set to true to enable cell editing. Please note that all editable columns should specify the editor field. */
325
- cellEditable?: boolean;
326
-
327
- /** A callback function which is executed before a cell editor is initialized. Return false from the callback to prevent the cell from going into the edit mode. */
328
- onBeforeCellEdit?: (change, record) => any;
329
-
330
- /** A callback function which is executed after a cell has been successfully edited. */
331
- onCellEdited?: (change, record) => void;
332
-
333
- /** A callback function which is executed after a column has been resized. */
334
- onColumnResize?: (data: { width: number; column: Record }, instance: Instance) => void;
335
-
336
- /** Options for data sorting. See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator */
337
- sortOptions?: CollatorOptions;
338
-
339
- onCreateIsRecordSelectable?: (
340
- params: any,
341
- instance: Instance
342
- ) => (record: Record, options?: { range?: boolean; toggle?: boolean }) => boolean;
343
-
344
- /** Parameters whose change will cause scroll to be reset. */
345
- scrollResetParams?: StructuredProp;
346
-
347
- /** Enable precise (sub-pixel) measurements. Useful for grids with many columns. Better behavior at small zoom factors. */
348
- preciseMeasurements?: boolean;
349
-
350
- /** A value used to identify the group of components participating in hover effect synchronization. */
351
- hoverChannel?: string;
352
-
353
- /** A value used to uniquely identify the record within the hover sync group. */
354
- rowHoverId?: StringProp;
355
-
356
- /** Set to true or false to explicitly define if grid is allowed to receive focus. */
357
- focusable?: boolean;
358
-
359
- /** Callback function to retrieve grouping data. */
360
- onGetGrouping?: (params: any, instance: Instance) => GridGroupingConfig[];
361
-
362
- /** Callback function to dynamically calculate columns. */
363
- onGetColumns?: (params: any, instance: Instance) => GridColumnConfig[] | GridRowConfig;
364
-
365
- /** Allow grid to receive drag and drop operations containing files. */
366
- allowsFileDrops?: boolean;
367
- }
368
-
369
- export class Grid extends Widget<GridProps> {}
1
+ import * as React from "react";
2
+ import { Instance } from "../../ui/Instance";
3
+ import { DragEvent } from "../drag-drop/ops";
4
+ import { View } from "../../data/View";
5
+ import {
6
+ BooleanProp,
7
+ ClassProp,
8
+ CollatorOptions,
9
+ Config,
10
+ NumberProp,
11
+ Prop,
12
+ Record,
13
+ RecordAlias,
14
+ SortDirection,
15
+ SortersProp,
16
+ StringProp,
17
+ StructuredProp,
18
+ StyledContainerProps,
19
+ StyleProp,
20
+ Widget,
21
+ } from "../../core";
22
+
23
+ type FetchRecordsResult = Record[] | { records: Record[]; lastPage?: boolean; totalRecordCount?: number };
24
+
25
+ interface MappedGridRecord {
26
+ data: Record;
27
+ store: View;
28
+ }
29
+
30
+ interface GridDragEvent extends DragEvent {
31
+ target: {
32
+ recordBefore: MappedGridRecord;
33
+ recordAfter: MappedGridRecord;
34
+ insertionIndex: number;
35
+ totalRecordCount: number;
36
+ };
37
+ }
38
+
39
+ interface GridRowDragEvent extends DragEvent {
40
+ target: {
41
+ record: MappedGridRecord;
42
+ index: number;
43
+ };
44
+ }
45
+
46
+ interface GridColumnDropEvent extends DragEvent {
47
+ target: {
48
+ grid: any;
49
+ instance: Instance;
50
+ index: number;
51
+ };
52
+ }
53
+
54
+ interface GridGroupingKey {
55
+ [key: string]:
56
+ | Prop<any>
57
+ | {
58
+ value: Prop<any>;
59
+ direction: SortDirection;
60
+ };
61
+ }
62
+
63
+ type GridColumnAlignment = "left" | "right" | "center";
64
+
65
+ interface GridGroupingConfig {
66
+ key: GridGroupingKey;
67
+ aggregates?: StructuredProp;
68
+ showCaption?: boolean;
69
+ showFooter?: boolean;
70
+ showHeader?: boolean;
71
+ caption?: StringProp;
72
+ name?: StringProp;
73
+ text?: StringProp;
74
+ }
75
+
76
+ // TODO: Check Column config
77
+ // Props are in order based on docs
78
+
79
+ interface GridColumnHeaderConfig {
80
+ text?: StringProp;
81
+ colSpan?: NumberProp;
82
+ rowSpan?: NumberProp;
83
+ align?: GridColumnAlignment;
84
+ allowSorting?: boolean;
85
+ items?: React.ReactNode;
86
+ children?: React.ReactNode;
87
+ tool?: React.ReactNode;
88
+ style?: StyleProp;
89
+ class?: ClassProp;
90
+ className?: ClassProp;
91
+ tooltip?: Cx.StringProp | Cx.StructuredProp;
92
+ }
93
+
94
+ interface GridColumnConfig {
95
+ align?: GridColumnAlignment;
96
+ field?: string;
97
+ format?: StringProp;
98
+ header?: StringProp | GridColumnHeaderConfig;
99
+ header1?: StringProp | GridColumnHeaderConfig;
100
+ header2?: StringProp | GridColumnHeaderConfig;
101
+ header3?: StringProp | GridColumnHeaderConfig;
102
+ sortable?: boolean;
103
+ aggregate?: "min" | "max" | "count" | "sum" | "distinct" | "avg";
104
+ aggregateAlias?: string;
105
+ aggregateField?: string;
106
+ caption?: StringProp;
107
+ class?: ClassProp;
108
+ className?: ClassProp;
109
+ draggable?: boolean;
110
+ editable?: boolean;
111
+ editor?: React.ReactNode;
112
+ footer?: StringProp | false;
113
+ items?: React.ReactNode;
114
+ children?: React.ReactNode;
115
+ key?: string;
116
+ pad?: boolean;
117
+ sortField?: string;
118
+ sortValue?: Prop<any>;
119
+ style?: StyleProp;
120
+ trimWhitespace?: boolean;
121
+ visible?: BooleanProp;
122
+ if?: BooleanProp;
123
+ weightField?: string;
124
+
125
+ // Not in docs
126
+ value?: Prop<any>;
127
+ defaultWidth?: NumberProp;
128
+ width?: NumberProp;
129
+ resizable?: boolean;
130
+ comparer?: (a: any, b: any) => number;
131
+
132
+ /** Options for data sorting. See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator */
133
+ sortOptions?: CollatorOptions;
134
+ }
135
+
136
+ interface GridRowLineConfig {
137
+ visible?: BooleanProp;
138
+ columns: GridColumnConfig[];
139
+ }
140
+
141
+ interface GridRowConfig {
142
+ invalid?: BooleanProp;
143
+ valid?: BooleanProp;
144
+ style?: StyleProp;
145
+ class?: ClassProp;
146
+ className?: ClassProp;
147
+ line1?: GridRowLineConfig;
148
+ line2?: GridRowLineConfig;
149
+ line3?: GridRowLineConfig;
150
+ }
151
+
152
+ interface GridProps extends StyledContainerProps {
153
+ /** An array of records to be displayed in the grid. */
154
+ records?: Prop<Record[]>;
155
+
156
+ /** Set to true to add a vertical scroll and a fixed header to the grid. */
157
+ scrollable?: boolean;
158
+
159
+ /** A binding used to store the sorting order list. Commonly used for server-side sorting. */
160
+ sorters?: SortersProp;
161
+
162
+ /** A list of sorters to be prepended to the actual list of sorters. */
163
+ preSorters?: SortersProp;
164
+
165
+ /** A binding used to store the name of the field used for sorting grids. Available only if sorters are not used. */
166
+ sortField?: StringProp;
167
+
168
+ /** A binding used to store the sort direction. Available only if sorters are not used. Possible values are "ASC" and "DESC". Defaults to "ASC". */
169
+ sortDirection?: StringProp;
170
+
171
+ /** Default sort field. Used if neither sortField or sorters are set. */
172
+ defaultSortField?: string;
173
+
174
+ /** Default sort direction. */
175
+ defaultSortDirection?: "ASC" | "DESC";
176
+
177
+ /** Set to true to add vertical gridlines. */
178
+ vlines?: boolean;
179
+
180
+ /** Text to be displayed instead of an empty table. */
181
+ emptyText?: StringProp;
182
+
183
+ /** Drag source configuration. Define mode as 'move' or 'copy` and additional data. */
184
+ dragSource?: StructuredProp;
185
+
186
+ /** Drop zone configuration. Define mode as either preview or insertion. */
187
+ dropZone?: StructuredProp;
188
+
189
+ /** Row configuration. See grid examples. */
190
+ row?: GridRowConfig;
191
+
192
+ /**An array of columns. Check column configuration options in the section below. */
193
+ columns?: GridColumnConfig[];
194
+
195
+ /** Whenever columnParams change, columns are recalculated using the onGetColumn callback. */
196
+ columnParams?: Config;
197
+
198
+ /** Selection configuration. */
199
+ selection?: Config;
200
+
201
+ /** An array of grouping level definitions. Check allowed grouping level properties in the section below. */
202
+ grouping?: GridGroupingConfig[];
203
+
204
+ /** Params for grouping. Whenever params change grouping is recalculated using the onGetGrouping callback. */
205
+ groupingParams?: Config;
206
+
207
+ /**
208
+ * Determines header appearance. Supported values are plain and default. Default mode is used if some of the columns are sortable.
209
+ * Plain mode better suits reports and other scenarios in which users do not interact with the grid.
210
+ */
211
+ headerMode?: StringProp;
212
+
213
+ /** Set to true to add default border around the table. Automatically set if grid is scrollable. */
214
+ border?: BooleanProp;
215
+
216
+ /** Base CSS class to be applied to the element. Default is 'grid'. */
217
+ baseClass?: string;
218
+
219
+ /** A field used to get the unique identifier of the record. Setting keyField improves grid performance on sort operations as the widget is able to identify row movement inside the grid. */
220
+ keyField?: string;
221
+
222
+ /** Show grid header within the group. Useful for long report-like (printable) grids. Defaults to false. */
223
+ showHeader?: boolean;
224
+
225
+ /** Show grid footer. Defaults to false. */
226
+ showFooter?: boolean;
227
+
228
+ /** Record alias. Default is $record. */
229
+ recordName?: RecordAlias;
230
+
231
+ /** Record alias. Default is $record. */
232
+ recordAlias?: RecordAlias;
233
+
234
+ /** Set to true if sorting is done remotely, on the server-side. Default value is false. */
235
+ remoteSort?: boolean;
236
+
237
+ /** Set to true to enable row caching. This greatly improves grid performance
238
+ on subsequent render operations, however, only changes on records
239
+ are allowed. If grid rows display any data outside records, changes on that
240
+ data will be ignored. */
241
+ cached?: boolean;
242
+
243
+ /** Render only rows visible on the screen. */
244
+ buffered?: boolean;
245
+
246
+ /** Specifies how many rows should be visible on the screen */
247
+ bufferSize?: number;
248
+
249
+ /** Specifies how many rows needs to be scrolled in order to recalculate buffer */
250
+ bufferStep?: number;
251
+
252
+ /** Used when rows have variable heights to improve buffered rendering by measuring and caching rendered row heights. Default value is false. */
253
+ measureRowHeights?: boolean;
254
+
255
+ /** Scrolls selection into the view. Default value is false. */
256
+ scrollSelectionIntoView?: boolean;
257
+
258
+ /**
259
+ * Set to true to lock column widths after the first render.
260
+ * This is helpful in pagination scenarios to maintain consistent looks across pages.
261
+ */
262
+ lockColumnWidths?: boolean;
263
+
264
+ lockColumnWidthsRequiredRowCount?: number;
265
+ focused?: boolean;
266
+ showBorder?: boolean;
267
+
268
+ /** Data adapter used to convert data in list of records. Used to enable grouping and tree operations. */
269
+ dataAdapter?: any;
270
+
271
+ /** Additional CSS class to be added to each grid row. */
272
+ rowClass?: ClassProp;
273
+
274
+ /** Additional CSS styles to be added to each grid row. */
275
+ rowStyle?: StyleProp;
276
+
277
+ // drag-drop handlers
278
+ onDrop?: (e: GridDragEvent, instance: Instance) => void;
279
+ onDropTest?: (e: DragEvent, instance: Instance) => boolean;
280
+ onDragStart?: (e: DragEvent, instance: Instance) => void;
281
+ onDragEnd?: (e: DragEvent, instance: Instance) => void;
282
+ onDragOver?: (e: GridDragEvent, instance: Instance) => void | boolean;
283
+
284
+ onRowDropTest?: (e: DragEvent, instance: Instance) => boolean;
285
+ onRowDragOver?: (e: GridRowDragEvent, instance: Instance) => void | boolean;
286
+ onRowDrop?: (e: GridRowDragEvent, instance: Instance) => void | boolean;
287
+
288
+ onColumnDrop?: (e: GridColumnDropEvent, instance: Instance) => void;
289
+ onColumnDropTest?: (e: DragEvent, instance: Instance) => boolean;
290
+
291
+ /** Parameters that affect filtering. */
292
+ filterParams?: StructuredProp;
293
+
294
+ /** Callback to create a filter function for given filter params. */
295
+ onCreateFilter?: (filterParams: any, instance?: Instance) => (record: Record) => boolean;
296
+
297
+ /** Enable infinite scrolling */
298
+ infinite?: boolean;
299
+
300
+ /** If set, clicking on the column header will loop between ASC, DESC and no sorting order, instead of ASC and DESC only. */
301
+ clearableSort?: boolean;
302
+
303
+ /** A callback to fetch records during infinite loading */
304
+ onFetchRecords?: (
305
+ pageInfo: {
306
+ page: number;
307
+ pageSize: number;
308
+ sorters?: Record[];
309
+ sortField?: string;
310
+ sortDirection?: string;
311
+ },
312
+ instance?: Instance
313
+ ) => FetchRecordsResult | Promise<FetchRecordsResult>;
314
+
315
+ /** Callback function to be executed when a row is double-clicked. */
316
+ onRowDoubleClick?: string | ((e: React.SyntheticEvent<any>, instance: Instance) => void);
317
+
318
+ /** Callback function to be executed when a row is clicked. */
319
+ onRowClick?: string | ((e: React.SyntheticEvent<any>, instance: Instance) => void);
320
+
321
+ /** Set to true to add a fixed footer at the bottom of the grid. */
322
+ fixedFooter?: boolean;
323
+
324
+ /** Set to true to enable cell editing. Please note that all editable columns should specify the editor field. */
325
+ cellEditable?: boolean;
326
+
327
+ /** A callback function which is executed before a cell editor is initialized. Return false from the callback to prevent the cell from going into the edit mode. */
328
+ onBeforeCellEdit?: (change, record) => any;
329
+
330
+ /** A callback function which is executed after a cell has been successfully edited. */
331
+ onCellEdited?: (change, record) => void;
332
+
333
+ /** A callback function which is executed after a column has been resized. */
334
+ onColumnResize?: (data: { width: number; column: Record }, instance: Instance) => void;
335
+
336
+ /** Options for data sorting. See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator */
337
+ sortOptions?: CollatorOptions;
338
+
339
+ onCreateIsRecordSelectable?: (
340
+ params: any,
341
+ instance: Instance
342
+ ) => (record: Record, options?: { range?: boolean; toggle?: boolean }) => boolean;
343
+
344
+ /** Parameters whose change will cause scroll to be reset. */
345
+ scrollResetParams?: StructuredProp;
346
+
347
+ /** Enable precise (sub-pixel) measurements. Useful for grids with many columns. Better behavior at small zoom factors. */
348
+ preciseMeasurements?: boolean;
349
+
350
+ /** A value used to identify the group of components participating in hover effect synchronization. */
351
+ hoverChannel?: string;
352
+
353
+ /** A value used to uniquely identify the record within the hover sync group. */
354
+ rowHoverId?: StringProp;
355
+
356
+ /** Set to true or false to explicitly define if grid is allowed to receive focus. */
357
+ focusable?: boolean;
358
+
359
+ /** Callback function to retrieve grouping data. */
360
+ onGetGrouping?: (params: any, instance: Instance) => GridGroupingConfig[];
361
+
362
+ /** Callback function to dynamically calculate columns. */
363
+ onGetColumns?: (params: any, instance: Instance) => GridColumnConfig[] | GridRowConfig;
364
+
365
+ /** Allow grid to receive drag and drop operations containing files. */
366
+ allowsFileDrops?: boolean;
367
+ }
368
+
369
+ export class Grid extends Widget<GridProps> {}