cx 24.4.4 → 24.4.5

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