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