cx 22.3.0 → 22.3.3

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 (773) 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/data.js +2467 -2401
  5. package/dist/manifest.js +703 -697
  6. package/dist/ui.js +5209 -5191
  7. package/dist/widgets.js +21866 -21850
  8. package/index.js +17 -17
  9. package/locale/de-de.js +69 -69
  10. package/locale/en-us.js +71 -71
  11. package/locale/es-es.js +69 -69
  12. package/locale/fr-fr.js +70 -70
  13. package/locale/nl-nl.js +75 -75
  14. package/locale/pt-pt.js +63 -63
  15. package/locale/sr-latn-ba.js +70 -70
  16. package/package.json +30 -30
  17. package/src/charts/Bar.d.ts +27 -27
  18. package/src/charts/Bar.js +89 -89
  19. package/src/charts/Bar.scss +26 -26
  20. package/src/charts/BarGraph.d.ts +16 -16
  21. package/src/charts/BarGraph.js +110 -110
  22. package/src/charts/BarGraph.scss +27 -27
  23. package/src/charts/BubbleGraph.js +92 -92
  24. package/src/charts/BubbleGraph.scss +29 -29
  25. package/src/charts/Chart.d.ts +12 -12
  26. package/src/charts/Chart.js +77 -77
  27. package/src/charts/ColorMap.d.ts +26 -26
  28. package/src/charts/ColorMap.js +98 -98
  29. package/src/charts/Column.scss +26 -26
  30. package/src/charts/ColumnBarBase.d.ts +61 -61
  31. package/src/charts/ColumnBarBase.js +169 -169
  32. package/src/charts/ColumnBarGraphBase.d.ts +71 -71
  33. package/src/charts/ColumnBarGraphBase.js +119 -119
  34. package/src/charts/ColumnGraph.d.ts +19 -19
  35. package/src/charts/ColumnGraph.js +114 -114
  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 +26 -26
  42. package/src/charts/Legend.js +142 -142
  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 +90 -90
  48. package/src/charts/LineGraph.js +201 -201
  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 +80 -80
  60. package/src/charts/PieChart.js +370 -370
  61. package/src/charts/PieChart.scss +26 -26
  62. package/src/charts/PieLabel.d.ts +26 -26
  63. package/src/charts/PieLabel.js +65 -65
  64. package/src/charts/PieLabelsContainer.d.ts +3 -3
  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/ScatterGraph.d.ts +65 -65
  70. package/src/charts/ScatterGraph.js +155 -155
  71. package/src/charts/ScatterGraph.scss +21 -21
  72. package/src/charts/axis/Axis.d.ts +82 -82
  73. package/src/charts/axis/Axis.js +222 -222
  74. package/src/charts/axis/Axis.scss +22 -22
  75. package/src/charts/axis/CategoryAxis.d.ts +21 -21
  76. package/src/charts/axis/CategoryAxis.js +224 -224
  77. package/src/charts/axis/CategoryAxis.scss +32 -32
  78. package/src/charts/axis/NumericAxis.js +349 -349
  79. package/src/charts/axis/NumericAxis.scss +32 -32
  80. package/src/charts/axis/Stack.d.ts +10 -10
  81. package/src/charts/axis/Stack.js +58 -58
  82. package/src/charts/axis/TimeAxis.d.ts +23 -23
  83. package/src/charts/axis/TimeAxis.js +510 -510
  84. package/src/charts/axis/TimeAxis.scss +32 -32
  85. package/src/charts/axis/index.d.ts +3 -3
  86. package/src/charts/axis/index.js +3 -3
  87. package/src/charts/axis/index.scss +5 -5
  88. package/src/charts/axis/variables.scss +2 -2
  89. package/src/charts/helpers/MinMaxFinder.js +37 -37
  90. package/src/charts/helpers/MinMaxReducer.d.ts +22 -22
  91. package/src/charts/helpers/PointReducer.d.ts +15 -15
  92. package/src/charts/helpers/PointReducer.js +39 -39
  93. package/src/charts/helpers/SnapPointFinder.d.ts +18 -18
  94. package/src/charts/helpers/SnapPointFinder.js +46 -46
  95. package/src/charts/helpers/ValueAtFinder.d.ts +16 -16
  96. package/src/charts/helpers/ValueAtFinder.js +41 -41
  97. package/src/charts/helpers/index.d.ts +4 -4
  98. package/src/charts/helpers/index.js +4 -4
  99. package/src/charts/index.d.ts +23 -23
  100. package/src/charts/index.js +31 -31
  101. package/src/charts/index.scss +20 -20
  102. package/src/charts/palette.scss +95 -95
  103. package/src/charts/shapes.d.ts +22 -22
  104. package/src/charts/shapes.js +79 -79
  105. package/src/charts/variables.scss +14 -14
  106. package/src/core.d.ts +231 -196
  107. package/src/data/AggregateFunction.d.ts +17 -17
  108. package/src/data/AggregateFunction.js +148 -148
  109. package/src/data/ArrayElementView.d.ts +13 -13
  110. package/src/data/ArrayElementView.js +46 -46
  111. package/src/data/ArrayRef.d.ts +14 -14
  112. package/src/data/ArrayRef.js +34 -34
  113. package/src/data/AugmentedViewBase.d.ts +18 -18
  114. package/src/data/AugmentedViewBase.js +67 -67
  115. package/src/data/Binding.d.ts +16 -15
  116. package/src/data/Binding.js +12 -8
  117. package/src/data/Binding.spec.js +51 -51
  118. package/src/data/ExposedRecordView.d.ts +14 -14
  119. package/src/data/ExposedRecordView.js +69 -69
  120. package/src/data/ExposedValueView.d.ts +19 -19
  121. package/src/data/ExposedValueView.js +72 -72
  122. package/src/data/Expression.d.ts +16 -16
  123. package/src/data/Grouper.d.ts +21 -21
  124. package/src/data/Grouper.js +120 -120
  125. package/src/data/Grouper.spec.js +22 -22
  126. package/src/data/NestedDataView.d.ts +19 -19
  127. package/src/data/NestedDataView.js +22 -22
  128. package/src/data/ReadOnlyDataView.d.ts +14 -14
  129. package/src/data/ReadOnlyDataView.js +26 -26
  130. package/src/data/Ref.js +79 -79
  131. package/src/data/Store.d.ts +14 -14
  132. package/src/data/Store.js +46 -46
  133. package/src/data/Store.spec.js +22 -22
  134. package/src/data/StoreProxy.d.ts +4 -4
  135. package/src/data/StoreProxy.js +16 -16
  136. package/src/data/StoreRef.js +54 -52
  137. package/src/data/StringTemplate.d.ts +13 -13
  138. package/src/data/StringTemplate.js +97 -97
  139. package/src/data/StringTemplate.spec.js +82 -82
  140. package/src/data/StructuredSelector.d.ts +16 -16
  141. package/src/data/StructuredSelector.js +131 -145
  142. package/src/data/StructuredSelector.spec.js +113 -98
  143. package/src/data/SubscribableView.d.ts +11 -11
  144. package/src/data/View.d.ts +40 -16
  145. package/src/data/View.js +27 -19
  146. package/src/data/View.spec.js +60 -60
  147. package/src/data/ZoomIntoPropertyView.d.ts +11 -11
  148. package/src/data/ZoomIntoPropertyView.js +33 -33
  149. package/src/data/ZoomIntoPropertyView.spec.js +65 -65
  150. package/src/data/comparer.d.ts +7 -7
  151. package/src/data/comparer.js +46 -46
  152. package/src/data/comparer.spec.js +60 -60
  153. package/src/data/computable.d.ts +27 -4
  154. package/src/data/computable.js +56 -55
  155. package/src/data/computable.spec.js +55 -47
  156. package/src/data/createAccessorModelProxy.d.ts +6 -0
  157. package/src/data/createAccessorModelProxy.js +24 -0
  158. package/src/data/createAccessorModelProxy.spec.tsx +23 -0
  159. package/src/data/createStructuredSelector.d.ts +2 -2
  160. package/src/data/createStructuredSelector.js +43 -42
  161. package/src/data/createStructuredSelector.spec.js +46 -46
  162. package/src/data/defaultCompare.js +14 -14
  163. package/src/data/diff/diffArrays.d.ts +15 -15
  164. package/src/data/diff/diffArrays.js +41 -41
  165. package/src/data/diff/diffs.spec.js +49 -49
  166. package/src/data/diff/index.d.ts +1 -1
  167. package/src/data/diff/index.js +1 -1
  168. package/src/data/enableFatArrowExpansion.d.ts +1 -1
  169. package/src/data/enableFatArrowExpansion.js +6 -6
  170. package/src/data/getAccessor.d.ts +8 -8
  171. package/src/data/getAccessor.js +24 -15
  172. package/src/data/getSelector.d.ts +3 -3
  173. package/src/data/getSelector.js +4 -1
  174. package/src/data/getSelector.spec.js +43 -36
  175. package/src/data/index.d.ts +2 -0
  176. package/src/data/index.js +2 -0
  177. package/src/data/isSelector.d.ts +1 -1
  178. package/src/data/isSelector.js +26 -26
  179. package/src/data/ops/append.d.ts +1 -1
  180. package/src/data/ops/append.js +7 -7
  181. package/src/data/ops/append.spec.js +28 -28
  182. package/src/data/ops/filter.d.ts +1 -1
  183. package/src/data/ops/filter.js +8 -8
  184. package/src/data/ops/filter.spec.js +29 -29
  185. package/src/data/ops/findTreeNode.js +15 -15
  186. package/src/data/ops/findTreeNode.spec.js +24 -24
  187. package/src/data/ops/index.d.ts +10 -10
  188. package/src/data/ops/index.js +10 -10
  189. package/src/data/ops/insertElement.js +2 -2
  190. package/src/data/ops/merge.d.ts +3 -3
  191. package/src/data/ops/merge.js +9 -9
  192. package/src/data/ops/merge.spec.js +27 -27
  193. package/src/data/ops/moveElement.js +13 -13
  194. package/src/data/ops/removeTreeNodes.d.ts +1 -1
  195. package/src/data/ops/removeTreeNodes.js +5 -5
  196. package/src/data/ops/removeTreeNodes.spec.js +28 -28
  197. package/src/data/ops/updateArray.d.ts +5 -5
  198. package/src/data/ops/updateArray.js +24 -24
  199. package/src/data/ops/updateArray.spec.js +38 -38
  200. package/src/data/ops/updateTree.d.ts +7 -7
  201. package/src/data/ops/updateTree.js +25 -25
  202. package/src/data/ops/updateTree.spec.js +34 -34
  203. package/src/global.scss +13 -13
  204. package/src/hooks/createLocalStorageRef.d.ts +2 -2
  205. package/src/hooks/createLocalStorageRef.js +22 -22
  206. package/src/hooks/index.d.ts +8 -8
  207. package/src/hooks/index.js +7 -7
  208. package/src/hooks/invokeCallback.d.ts +5 -5
  209. package/src/hooks/invokeCallback.js +6 -6
  210. package/src/hooks/invokeCallback.spec.js +53 -53
  211. package/src/hooks/resolveCallback.d.ts +3 -3
  212. package/src/hooks/resolveCallback.js +11 -11
  213. package/src/hooks/resolveCallback.spec.js +54 -54
  214. package/src/hooks/store.d.ts +7 -7
  215. package/src/hooks/store.js +32 -32
  216. package/src/hooks/store.spec.js +73 -73
  217. package/src/hooks/useEffect.d.ts +2 -2
  218. package/src/hooks/useEffect.js +14 -14
  219. package/src/hooks/useInterval.js +7 -7
  220. package/src/hooks/useState.d.ts +2 -2
  221. package/src/hooks/useState.js +15 -15
  222. package/src/hooks/useTrigger.d.ts +4 -4
  223. package/src/hooks/useTrigger.js +20 -20
  224. package/src/hooks/useTrigger.spec.js +102 -102
  225. package/src/index.js +7 -7
  226. package/src/index.scss +6 -6
  227. package/src/svg/BoundedObject.d.ts +22 -22
  228. package/src/svg/BoundedObject.js +59 -59
  229. package/src/svg/ClipRect.d.ts +4 -4
  230. package/src/svg/ClipRect.js +23 -23
  231. package/src/svg/Ellipse.d.ts +23 -23
  232. package/src/svg/Ellipse.js +36 -36
  233. package/src/svg/Line.d.ts +20 -20
  234. package/src/svg/Line.js +32 -32
  235. package/src/svg/NonOverlappingRect.d.ts +5 -5
  236. package/src/svg/NonOverlappingRect.js +14 -14
  237. package/src/svg/NonOverlappingRectGroup.d.ts +3 -3
  238. package/src/svg/NonOverlappingRectGroup.js +36 -36
  239. package/src/svg/Rectangle.d.ts +23 -23
  240. package/src/svg/Rectangle.js +36 -36
  241. package/src/svg/Svg.d.ts +32 -32
  242. package/src/svg/Svg.js +177 -177
  243. package/src/svg/Svg.scss +26 -26
  244. package/src/svg/Text.d.ts +38 -38
  245. package/src/svg/Text.js +61 -61
  246. package/src/svg/TextualBoundedObject.d.ts +6 -6
  247. package/src/svg/TextualBoundedObject.js +28 -28
  248. package/src/svg/index.d.ts +11 -11
  249. package/src/svg/index.js +17 -17
  250. package/src/svg/index.scss +8 -8
  251. package/src/svg/util/Rect.d.ts +40 -40
  252. package/src/svg/util/Rect.js +108 -108
  253. package/src/ui/CSS.d.ts +19 -19
  254. package/src/ui/CSS.js +79 -79
  255. package/src/ui/CSSHelper.d.ts +10 -10
  256. package/src/ui/CSSHelper.js +17 -17
  257. package/src/ui/Container.d.ts +18 -18
  258. package/src/ui/Container.js +183 -183
  259. package/src/ui/ContentResolver.d.ts +13 -13
  260. package/src/ui/ContentResolver.js +78 -78
  261. package/src/ui/Controller.d.ts +13 -8
  262. package/src/ui/Controller.js +114 -114
  263. package/src/ui/Controller.spec.js +414 -414
  264. package/src/ui/Culture.d.ts +22 -22
  265. package/src/ui/Culture.js +65 -65
  266. package/src/ui/Cx.d.ts +18 -18
  267. package/src/ui/Cx.js +313 -313
  268. package/src/ui/Cx.spec.js +193 -193
  269. package/src/ui/DataProxy.d.ts +10 -10
  270. package/src/ui/DataProxy.js +44 -44
  271. package/src/ui/DataProxy.spec.js +335 -335
  272. package/src/ui/DetachedScope.d.ts +21 -21
  273. package/src/ui/DetachedScope.js +93 -93
  274. package/src/ui/FocusManager.d.ts +29 -29
  275. package/src/ui/FocusManager.js +163 -163
  276. package/src/ui/Format.d.ts +2 -2
  277. package/src/ui/Format.js +88 -88
  278. package/src/ui/HoverSync.d.ts +13 -13
  279. package/src/ui/HoverSync.js +147 -147
  280. package/src/ui/Instance.d.ts +6 -6
  281. package/src/ui/Instance.js +6 -5
  282. package/src/ui/IsolatedScope.d.ts +16 -16
  283. package/src/ui/IsolatedScope.js +29 -29
  284. package/src/ui/IsolatedScope.spec.js +62 -62
  285. package/src/ui/Localization.d.ts +17 -17
  286. package/src/ui/Localization.js +72 -72
  287. package/src/ui/PureContainer.d.ts +16 -16
  288. package/src/ui/PureContainer.js +7 -7
  289. package/src/ui/RenderingContext.d.ts +9 -9
  290. package/src/ui/RenderingContext.js +88 -88
  291. package/src/ui/Repeater.d.ts +46 -36
  292. package/src/ui/Repeater.js +98 -98
  293. package/src/ui/Repeater.spec.js +59 -59
  294. package/src/ui/Rescope.d.ts +9 -9
  295. package/src/ui/Rescope.js +31 -31
  296. package/src/ui/Rescope.spec.js +195 -195
  297. package/src/ui/ResizeManager.d.ts +9 -9
  298. package/src/ui/ResizeManager.js +30 -30
  299. package/src/ui/Restate.d.ts +12 -12
  300. package/src/ui/Restate.js +155 -155
  301. package/src/ui/Restate.spec.js +422 -423
  302. package/src/ui/StaticText.d.ts +8 -8
  303. package/src/ui/StaticText.js +9 -9
  304. package/src/ui/StructuredInstanceDataAccessor.d.ts +16 -16
  305. package/src/ui/StructuredInstanceDataAccessor.js +26 -26
  306. package/src/ui/Text.d.ts +10 -10
  307. package/src/ui/Text.js +27 -27
  308. package/src/ui/VDOM.d.ts +3 -3
  309. package/src/ui/VDOM.js +2 -2
  310. package/src/ui/Widget.d.ts +14 -14
  311. package/src/ui/Widget.js +200 -200
  312. package/src/ui/ZIndexManager.d.ts +7 -7
  313. package/src/ui/ZIndexManager.js +11 -11
  314. package/src/ui/adapter/ArrayAdapter.d.ts +16 -17
  315. package/src/ui/adapter/ArrayAdapter.js +142 -149
  316. package/src/ui/adapter/DataAdapter.d.ts +19 -19
  317. package/src/ui/adapter/DataAdapter.js +19 -19
  318. package/src/ui/adapter/GroupAdapter.d.ts +4 -4
  319. package/src/ui/adapter/GroupAdapter.js +135 -135
  320. package/src/ui/adapter/TreeAdapter.d.ts +4 -4
  321. package/src/ui/adapter/TreeAdapter.js +73 -76
  322. package/src/ui/adapter/TreeAdapter.spec.js +67 -67
  323. package/src/ui/adapter/index.d.ts +4 -4
  324. package/src/ui/adapter/index.js +4 -4
  325. package/src/ui/app/History.d.ts +17 -17
  326. package/src/ui/app/History.js +114 -114
  327. package/src/ui/app/Url.d.ts +21 -21
  328. package/src/ui/app/Url.js +103 -103
  329. package/src/ui/app/Url.spec.js +51 -51
  330. package/src/ui/app/index.d.ts +4 -4
  331. package/src/ui/app/index.js +5 -5
  332. package/src/ui/app/startAppLoop.d.ts +3 -3
  333. package/src/ui/app/startAppLoop.js +57 -57
  334. package/src/ui/app/startHotAppLoop.d.ts +6 -6
  335. package/src/ui/app/startHotAppLoop.js +25 -25
  336. package/src/ui/batchUpdates.d.ts +10 -10
  337. package/src/ui/batchUpdates.js +67 -67
  338. package/src/ui/bind.d.ts +3 -2
  339. package/src/ui/bind.js +7 -6
  340. package/src/ui/createFunctionalComponent.d.ts +1 -1
  341. package/src/ui/createFunctionalComponent.js +68 -68
  342. package/src/ui/createFunctionalComponent.spec.js +400 -400
  343. package/src/ui/expr.d.ts +23 -2
  344. package/src/ui/expr.js +17 -5
  345. package/src/ui/flattenProps.js +21 -21
  346. package/src/ui/index.js +44 -44
  347. package/src/ui/index.scss +2 -2
  348. package/src/ui/keyboardShortcuts.d.ts +4 -4
  349. package/src/ui/keyboardShortcuts.js +32 -32
  350. package/src/ui/layout/Content.d.ts +11 -11
  351. package/src/ui/layout/Content.js +16 -16
  352. package/src/ui/layout/ContentPlaceholder.d.ts +17 -17
  353. package/src/ui/layout/ContentPlaceholder.js +79 -79
  354. package/src/ui/layout/ContentPlaceholder.spec.js +368 -368
  355. package/src/ui/layout/FirstVisibleChildLayout.d.ts +4 -4
  356. package/src/ui/layout/FirstVisibleChildLayout.js +65 -65
  357. package/src/ui/layout/FirstVisibleChildLayout.spec.js +196 -196
  358. package/src/ui/layout/LabelsLeftLayout.d.ts +11 -11
  359. package/src/ui/layout/LabelsLeftLayout.js +59 -59
  360. package/src/ui/layout/LabelsLeftLayout.scss +44 -44
  361. package/src/ui/layout/LabelsTopLayout.d.ts +15 -15
  362. package/src/ui/layout/LabelsTopLayout.js +134 -134
  363. package/src/ui/layout/LabelsTopLayout.scss +63 -63
  364. package/src/ui/layout/UseParentLayout.d.ts +4 -4
  365. package/src/ui/layout/UseParentLayout.js +6 -6
  366. package/src/ui/layout/exploreChildren.d.ts +14 -14
  367. package/src/ui/layout/exploreChildren.js +40 -40
  368. package/src/ui/layout/index.d.ts +10 -10
  369. package/src/ui/layout/index.js +10 -10
  370. package/src/ui/layout/index.scss +3 -3
  371. package/src/ui/layout/variables.scss +2 -2
  372. package/src/ui/selection/KeySelection.d.ts +17 -17
  373. package/src/ui/selection/KeySelection.js +129 -129
  374. package/src/ui/selection/PropertySelection.d.ts +17 -17
  375. package/src/ui/selection/PropertySelection.js +57 -57
  376. package/src/ui/selection/Selection.d.ts +27 -27
  377. package/src/ui/selection/Selection.js +97 -97
  378. package/src/ui/selection/index.d.ts +3 -3
  379. package/src/ui/selection/index.js +3 -3
  380. package/src/ui/tpl.d.ts +2 -2
  381. package/src/ui/tpl.js +4 -4
  382. package/src/ui/variables.scss +1 -1
  383. package/src/util/Component.d.ts +41 -41
  384. package/src/util/Component.js +107 -107
  385. package/src/util/Console.d.ts +9 -9
  386. package/src/util/Console.js +11 -11
  387. package/src/util/DOM.d.ts +33 -33
  388. package/src/util/DOM.js +72 -72
  389. package/src/util/Debug.d.ts +10 -10
  390. package/src/util/Debug.js +45 -45
  391. package/src/util/Format.d.ts +13 -13
  392. package/src/util/Format.js +241 -241
  393. package/src/util/Format.spec.js +69 -69
  394. package/src/util/GlobalCacheIdentifier.js +11 -11
  395. package/src/util/GlobalCacheldentifier.d.ts +6 -6
  396. package/src/util/KeyCode.d.ts +21 -21
  397. package/src/util/KeyCode.js +21 -21
  398. package/src/util/SubscriberList.d.ts +41 -41
  399. package/src/util/SubscriberList.js +57 -57
  400. package/src/util/Timing.d.ts +13 -13
  401. package/src/util/Timing.js +57 -57
  402. package/src/util/TraversalStack.js +42 -42
  403. package/src/util/TraversalStack.spec.js +46 -46
  404. package/src/util/addEventListenerWithOptions.d.ts +6 -6
  405. package/src/util/addEventListenerWithOptions.js +9 -9
  406. package/src/util/browserSupportsPassiveEventHandlers.d.ts +4 -4
  407. package/src/util/browserSupportsPassiveEventHandlers.js +18 -18
  408. package/src/util/calculateNaturalElementHeight.d.ts +1 -1
  409. package/src/util/calculateNaturalElementHeight.js +22 -22
  410. package/src/util/call-once.scss +6 -6
  411. package/src/util/coalesce.d.ts +1 -1
  412. package/src/util/coalesce.js +6 -6
  413. package/src/util/color/hslToRgb.d.ts +8 -8
  414. package/src/util/color/hslToRgb.js +27 -27
  415. package/src/util/color/index.d.ts +3 -3
  416. package/src/util/color/index.js +4 -4
  417. package/src/util/color/parseColor.d.ts +59 -59
  418. package/src/util/color/parseColor.js +119 -119
  419. package/src/util/color/rgbToHex.d.ts +8 -8
  420. package/src/util/color/rgbToHex.js +7 -7
  421. package/src/util/color/rgbToHsl.d.ts +8 -8
  422. package/src/util/color/rgbToHsl.js +27 -27
  423. package/src/util/date/dateDiff.d.ts +7 -7
  424. package/src/util/date/dateDiff.js +3 -3
  425. package/src/util/date/diff.d.ts +7 -7
  426. package/src/util/date/diff.js +7 -7
  427. package/src/util/date/encodeDateWithTimezoneOffset.js +18 -18
  428. package/src/util/date/index.d.ts +8 -8
  429. package/src/util/date/index.js +9 -9
  430. package/src/util/date/lowerBoundCheck.d.ts +7 -7
  431. package/src/util/date/lowerBoundCheck.js +6 -6
  432. package/src/util/date/maxDate.d.ts +5 -5
  433. package/src/util/date/maxDate.js +9 -9
  434. package/src/util/date/minDate.d.ts +5 -5
  435. package/src/util/date/minDate.js +9 -9
  436. package/src/util/date/monthStart.d.ts +5 -5
  437. package/src/util/date/monthStart.js +3 -3
  438. package/src/util/date/sameDate.d.ts +6 -6
  439. package/src/util/date/sameDate.js +5 -5
  440. package/src/util/date/upperBoundCheck.d.ts +7 -7
  441. package/src/util/date/upperBoundCheck.js +6 -6
  442. package/src/util/date/upperBoundCheck.spec.js +30 -30
  443. package/src/util/date/zeroTime.d.ts +6 -6
  444. package/src/util/date/zeroTime.js +3 -3
  445. package/src/util/debounce.d.ts +9 -9
  446. package/src/util/dummyCallback.d.ts +1 -1
  447. package/src/util/dummyCallback.js +1 -1
  448. package/src/util/escapeSpecialRegexCharacters.d.ts +6 -6
  449. package/src/util/escapeSpecialRegexCharacters.js +3 -3
  450. package/src/util/eventCallbacks.d.ts +4 -4
  451. package/src/util/eventCallbacks.js +2 -2
  452. package/src/util/expandFatArrows.js +118 -118
  453. package/src/util/findScrollableParent.js +16 -16
  454. package/src/util/getActiveElement.js +3 -3
  455. package/src/util/getParentFrameBoundingClientRect.js +18 -18
  456. package/src/util/getScrollerBoundingClientRect.js +21 -21
  457. package/src/util/getSearchQueryPredicate.js +58 -58
  458. package/src/util/getSearchQueryPredicate.spec.js +40 -40
  459. package/src/util/getTopLevelBoundingClientRect.js +13 -13
  460. package/src/util/getVendorPrefix.js +26 -26
  461. package/src/util/index.d.ts +50 -50
  462. package/src/util/index.js +52 -52
  463. package/src/util/index.scss +10 -10
  464. package/src/util/innerTextTrim.d.ts +6 -6
  465. package/src/util/innerTextTrim.js +5 -5
  466. package/src/util/isArray.js +3 -3
  467. package/src/util/isDefined.js +3 -3
  468. package/src/util/isDigit.d.ts +6 -6
  469. package/src/util/isDigit.js +3 -3
  470. package/src/util/isFunction.d.ts +1 -1
  471. package/src/util/isFunction.js +3 -3
  472. package/src/util/isNonEmptyArray.d.ts +1 -1
  473. package/src/util/isNonEmptyArray.js +3 -3
  474. package/src/util/isNumber.js +3 -3
  475. package/src/util/isObject.js +3 -3
  476. package/src/util/isPromise.d.ts +1 -1
  477. package/src/util/isPromise.js +6 -6
  478. package/src/util/isString.js +3 -3
  479. package/src/util/isTextInputElement.d.ts +1 -1
  480. package/src/util/isTextInputElement.js +2 -2
  481. package/src/util/isTouchDevice.d.ts +1 -1
  482. package/src/util/isTouchDevice.js +7 -7
  483. package/src/util/isTouchEvent.d.ts +3 -3
  484. package/src/util/isTouchEvent.js +52 -52
  485. package/src/util/isUndefined.js +3 -3
  486. package/src/util/onIdleCallback.js +13 -13
  487. package/src/util/parseStyle.d.ts +3 -3
  488. package/src/util/parseStyle.js +27 -27
  489. package/src/util/quote.d.ts +2 -2
  490. package/src/util/quote.js +5 -5
  491. package/src/util/reverseSlice.js +9 -9
  492. package/src/util/routeAppend.js +15 -15
  493. package/src/util/routeAppend.spec.js +19 -19
  494. package/src/util/scrollElementIntoView.d.ts +6 -6
  495. package/src/util/scrollElementIntoView.js +59 -59
  496. package/src/util/scss/add-rules.scss +39 -39
  497. package/src/util/scss/calc.scss +40 -40
  498. package/src/util/scss/call-once.scss +10 -10
  499. package/src/util/scss/clockwise.scss +47 -47
  500. package/src/util/scss/colors.scss +7 -7
  501. package/src/util/scss/deep-get.scss +9 -9
  502. package/src/util/scss/deep-merge.scss +18 -18
  503. package/src/util/scss/include.scss +47 -47
  504. package/src/util/scss/index.scss +8 -8
  505. package/src/util/shallowEquals.js +43 -43
  506. package/src/util/throttle.d.ts +8 -8
  507. package/src/util/throttle.js +14 -14
  508. package/src/variables.scss +217 -217
  509. package/src/widgets/AccessorBindings.spec.tsx +66 -0
  510. package/src/widgets/Button.d.ts +52 -52
  511. package/src/widgets/Button.scss +108 -108
  512. package/src/widgets/Button.variables.scss +107 -107
  513. package/src/widgets/CxCredit.d.ts +12 -12
  514. package/src/widgets/CxCredit.js +31 -31
  515. package/src/widgets/CxCredit.scss +41 -41
  516. package/src/widgets/DocumentTitle.d.ts +10 -10
  517. package/src/widgets/DocumentTitle.js +68 -68
  518. package/src/widgets/FlexBox.d.ts +69 -69
  519. package/src/widgets/FlexBox.js +92 -92
  520. package/src/widgets/FlexBox.scss +155 -155
  521. package/src/widgets/Heading.d.ts +16 -16
  522. package/src/widgets/Heading.js +32 -32
  523. package/src/widgets/Heading.scss +38 -38
  524. package/src/widgets/HighlightedSearchText.d.ts +9 -9
  525. package/src/widgets/HighlightedSearchText.js +36 -36
  526. package/src/widgets/HighlightedSearchText.scss +18 -18
  527. package/src/widgets/HtmlElement.d.ts +26 -26
  528. package/src/widgets/HtmlElement.js +273 -273
  529. package/src/widgets/HtmlElement.spec.js +57 -57
  530. package/src/widgets/Icon.d.ts +36 -36
  531. package/src/widgets/Icon.js +50 -50
  532. package/src/widgets/Icon.scss +20 -20
  533. package/src/widgets/List.d.ts +84 -72
  534. package/src/widgets/List.js +578 -578
  535. package/src/widgets/List.scss +92 -92
  536. package/src/widgets/ProgressBar.d.ts +17 -17
  537. package/src/widgets/ProgressBar.js +46 -46
  538. package/src/widgets/ProgressBar.scss +49 -49
  539. package/src/widgets/Resizer.d.ts +27 -27
  540. package/src/widgets/Resizer.js +151 -151
  541. package/src/widgets/Resizer.scss +42 -42
  542. package/src/widgets/Sandbox.d.ts +18 -18
  543. package/src/widgets/Sandbox.js +58 -58
  544. package/src/widgets/Section.d.ts +52 -52
  545. package/src/widgets/Section.js +139 -139
  546. package/src/widgets/Section.scss +54 -54
  547. package/src/widgets/animations.scss +10 -10
  548. package/src/widgets/autoFocus.d.ts +1 -1
  549. package/src/widgets/autoFocus.js +11 -11
  550. package/src/widgets/cx.d.ts +1 -1
  551. package/src/widgets/cx.js +71 -71
  552. package/src/widgets/drag-drop/DragClone.scss +33 -33
  553. package/src/widgets/drag-drop/DragHandle.d.ts +10 -10
  554. package/src/widgets/drag-drop/DragHandle.js +37 -37
  555. package/src/widgets/drag-drop/DragHandle.scss +16 -16
  556. package/src/widgets/drag-drop/DragSource.d.ts +34 -34
  557. package/src/widgets/drag-drop/DragSource.js +160 -160
  558. package/src/widgets/drag-drop/DragSource.scss +24 -24
  559. package/src/widgets/drag-drop/DropZone.d.ts +90 -90
  560. package/src/widgets/drag-drop/DropZone.js +213 -213
  561. package/src/widgets/drag-drop/DropZone.scss +74 -74
  562. package/src/widgets/drag-drop/index.d.ts +4 -4
  563. package/src/widgets/drag-drop/index.js +4 -4
  564. package/src/widgets/drag-drop/index.scss +3 -3
  565. package/src/widgets/drag-drop/ops.d.ts +56 -56
  566. package/src/widgets/drag-drop/ops.js +344 -344
  567. package/src/widgets/drag-drop/variables.scss +11 -11
  568. package/src/widgets/enableAllInternalDependencies.d.ts +1 -1
  569. package/src/widgets/enableAllInternalDependencies.js +11 -11
  570. package/src/widgets/form/Calendar.d.ts +57 -57
  571. package/src/widgets/form/Calendar.js +506 -506
  572. package/src/widgets/form/Calendar.scss +164 -164
  573. package/src/widgets/form/Calendar.variables.scss +63 -63
  574. package/src/widgets/form/Checkbox.d.ts +43 -39
  575. package/src/widgets/form/Checkbox.js +200 -194
  576. package/src/widgets/form/Checkbox.scss +122 -122
  577. package/src/widgets/form/Checkbox.variables.scss +39 -39
  578. package/src/widgets/form/ColorField.d.ts +43 -43
  579. package/src/widgets/form/ColorField.js +389 -389
  580. package/src/widgets/form/ColorField.scss +92 -92
  581. package/src/widgets/form/ColorPicker.d.ts +23 -23
  582. package/src/widgets/form/ColorPicker.js +451 -451
  583. package/src/widgets/form/ColorPicker.scss +184 -184
  584. package/src/widgets/form/ColorPicker.variables.scss +20 -20
  585. package/src/widgets/form/DateField.d.ts +6 -6
  586. package/src/widgets/form/DateField.js +12 -12
  587. package/src/widgets/form/DateTimeField.d.ts +83 -83
  588. package/src/widgets/form/DateTimeField.js +571 -571
  589. package/src/widgets/form/DateTimeField.scss +90 -90
  590. package/src/widgets/form/DateTimePicker.js +391 -391
  591. package/src/widgets/form/DateTimePicker.scss +44 -44
  592. package/src/widgets/form/Field.d.ts +112 -112
  593. package/src/widgets/form/Field.js +419 -419
  594. package/src/widgets/form/Field.scss +162 -162
  595. package/src/widgets/form/FieldGroup.d.ts +6 -6
  596. package/src/widgets/form/FieldGroup.js +5 -5
  597. package/src/widgets/form/HelpText.d.ts +10 -10
  598. package/src/widgets/form/HelpText.js +9 -9
  599. package/src/widgets/form/HelpText.scss +23 -23
  600. package/src/widgets/form/Label.d.ts +25 -25
  601. package/src/widgets/form/Label.js +86 -86
  602. package/src/widgets/form/Label.scss +36 -36
  603. package/src/widgets/form/LabeledContainer.d.ts +17 -17
  604. package/src/widgets/form/LabeledContainer.js +57 -57
  605. package/src/widgets/form/LookupField.d.ts +159 -159
  606. package/src/widgets/form/LookupField.js +1109 -1109
  607. package/src/widgets/form/LookupField.scss +210 -210
  608. package/src/widgets/form/MonthField.d.ts +88 -88
  609. package/src/widgets/form/MonthField.js +512 -512
  610. package/src/widgets/form/MonthField.scss +99 -99
  611. package/src/widgets/form/MonthPicker.d.ts +68 -68
  612. package/src/widgets/form/MonthPicker.js +631 -631
  613. package/src/widgets/form/MonthPicker.scss +120 -120
  614. package/src/widgets/form/NumberField.d.ts +94 -94
  615. package/src/widgets/form/NumberField.js +443 -443
  616. package/src/widgets/form/NumberField.scss +65 -65
  617. package/src/widgets/form/Radio.d.ts +37 -37
  618. package/src/widgets/form/Radio.js +188 -188
  619. package/src/widgets/form/Radio.scss +122 -122
  620. package/src/widgets/form/Radio.variables.scss +45 -45
  621. package/src/widgets/form/Select.d.ts +73 -73
  622. package/src/widgets/form/Select.js +274 -274
  623. package/src/widgets/form/Select.scss +98 -98
  624. package/src/widgets/form/Slider.d.ts +62 -62
  625. package/src/widgets/form/Slider.js +339 -339
  626. package/src/widgets/form/Slider.scss +121 -121
  627. package/src/widgets/form/Switch.d.ts +38 -38
  628. package/src/widgets/form/Switch.js +120 -120
  629. package/src/widgets/form/Switch.scss +140 -140
  630. package/src/widgets/form/TextArea.d.ts +17 -17
  631. package/src/widgets/form/TextArea.js +182 -182
  632. package/src/widgets/form/TextArea.scss +60 -60
  633. package/src/widgets/form/TextField.d.ts +75 -75
  634. package/src/widgets/form/TextField.js +286 -286
  635. package/src/widgets/form/TextField.scss +67 -67
  636. package/src/widgets/form/TimeField.d.ts +6 -6
  637. package/src/widgets/form/TimeField.js +11 -11
  638. package/src/widgets/form/TimeList.js +84 -84
  639. package/src/widgets/form/UploadButton.d.ts +31 -31
  640. package/src/widgets/form/UploadButton.js +213 -213
  641. package/src/widgets/form/UploadButton.scss +47 -47
  642. package/src/widgets/form/ValidationError.d.ts +10 -10
  643. package/src/widgets/form/ValidationError.js +37 -37
  644. package/src/widgets/form/ValidationError.scss +21 -21
  645. package/src/widgets/form/ValidationGroup.spec.js +148 -148
  646. package/src/widgets/form/Validator.d.ts +6 -6
  647. package/src/widgets/form/Wheel.js +261 -261
  648. package/src/widgets/form/Wheel.scss +148 -148
  649. package/src/widgets/form/index.d.ts +26 -26
  650. package/src/widgets/form/index.js +29 -29
  651. package/src/widgets/form/index.scss +24 -24
  652. package/src/widgets/form/variables.scss +351 -351
  653. package/src/widgets/grid/Grid.d.ts +368 -350
  654. package/src/widgets/grid/Grid.js +3208 -3202
  655. package/src/widgets/grid/Grid.scss +656 -656
  656. package/src/widgets/grid/GridCell.d.ts +29 -29
  657. package/src/widgets/grid/GridCell.js +70 -70
  658. package/src/widgets/grid/GridCellEditor.js +41 -41
  659. package/src/widgets/grid/GridRow.js +228 -228
  660. package/src/widgets/grid/GridRowLine.js +24 -24
  661. package/src/widgets/grid/Pagination.d.ts +14 -14
  662. package/src/widgets/grid/Pagination.js +94 -94
  663. package/src/widgets/grid/Pagination.scss +113 -113
  664. package/src/widgets/grid/TreeNode.d.ts +25 -25
  665. package/src/widgets/grid/TreeNode.js +102 -102
  666. package/src/widgets/grid/TreeNode.scss +90 -90
  667. package/src/widgets/grid/index.d.ts +3 -3
  668. package/src/widgets/grid/index.js +14 -14
  669. package/src/widgets/grid/index.scss +3 -3
  670. package/src/widgets/grid/variables.scss +88 -88
  671. package/src/widgets/icons/arrow-down.svg +3 -3
  672. package/src/widgets/icons/arrow-right.svg +2 -2
  673. package/src/widgets/icons/base.svg +104 -104
  674. package/src/widgets/icons/calendar-old.svg +169 -169
  675. package/src/widgets/icons/calendar.js +16 -16
  676. package/src/widgets/icons/calendar.svg +187 -187
  677. package/src/widgets/icons/check.js +12 -12
  678. package/src/widgets/icons/clear.js +14 -14
  679. package/src/widgets/icons/clear.svg +74 -74
  680. package/src/widgets/icons/close.js +19 -19
  681. package/src/widgets/icons/close.svg +74 -74
  682. package/src/widgets/icons/cx.js +37 -37
  683. package/src/widgets/icons/drop-down.js +14 -14
  684. package/src/widgets/icons/dropdown-arrow.svg +61 -61
  685. package/src/widgets/icons/file.js +12 -12
  686. package/src/widgets/icons/file.svg +4 -4
  687. package/src/widgets/icons/folder-open.js +14 -14
  688. package/src/widgets/icons/folder-open.svg +5 -5
  689. package/src/widgets/icons/folder.js +12 -12
  690. package/src/widgets/icons/folder.svg +58 -58
  691. package/src/widgets/icons/forward.js +21 -21
  692. package/src/widgets/icons/forward.svg +67 -67
  693. package/src/widgets/icons/index.js +14 -14
  694. package/src/widgets/icons/loading.js +23 -23
  695. package/src/widgets/icons/loading.svg +4 -4
  696. package/src/widgets/icons/menu.js +16 -16
  697. package/src/widgets/icons/registry.js +53 -53
  698. package/src/widgets/icons/search.js +12 -12
  699. package/src/widgets/icons/search.svg +107 -107
  700. package/src/widgets/icons/sort-asc.js +13 -13
  701. package/src/widgets/icons/sort-asc.svg +3 -3
  702. package/src/widgets/icons/square.js +17 -17
  703. package/src/widgets/index.d.ts +55 -55
  704. package/src/widgets/index.js +57 -57
  705. package/src/widgets/index.scss +16 -16
  706. package/src/widgets/nav/Link.d.ts +22 -22
  707. package/src/widgets/nav/Link.js +7 -7
  708. package/src/widgets/nav/LinkButton.d.ts +31 -31
  709. package/src/widgets/nav/LinkButton.js +127 -127
  710. package/src/widgets/nav/Menu.d.ts +27 -27
  711. package/src/widgets/nav/Menu.js +411 -411
  712. package/src/widgets/nav/Menu.scss +74 -74
  713. package/src/widgets/nav/Menu.variables.scss +17 -17
  714. package/src/widgets/nav/MenuItem.d.ts +32 -32
  715. package/src/widgets/nav/MenuItem.js +442 -442
  716. package/src/widgets/nav/MenuItem.scss +128 -128
  717. package/src/widgets/nav/MenuSpacer.d.ts +5 -5
  718. package/src/widgets/nav/MenuSpacer.js +12 -12
  719. package/src/widgets/nav/RedirectRoute.d.ts +9 -9
  720. package/src/widgets/nav/RedirectRoute.js +40 -40
  721. package/src/widgets/nav/Route.d.ts +21 -21
  722. package/src/widgets/nav/Route.js +105 -105
  723. package/src/widgets/nav/Route.spec.js +27 -27
  724. package/src/widgets/nav/Scroller.d.ts +17 -17
  725. package/src/widgets/nav/Scroller.js +214 -214
  726. package/src/widgets/nav/Scroller.scss +146 -146
  727. package/src/widgets/nav/Submenu.d.ts +6 -6
  728. package/src/widgets/nav/Submenu.js +6 -6
  729. package/src/widgets/nav/Tab.d.ts +33 -33
  730. package/src/widgets/nav/Tab.js +82 -82
  731. package/src/widgets/nav/Tab.scss +81 -81
  732. package/src/widgets/nav/Tab.variables.scss +80 -80
  733. package/src/widgets/nav/cover.scss +21 -21
  734. package/src/widgets/nav/index.d.ts +10 -10
  735. package/src/widgets/nav/index.js +10 -10
  736. package/src/widgets/nav/index.scss +5 -5
  737. package/src/widgets/nav/variables.scss +25 -25
  738. package/src/widgets/overlay/ContextMenu.d.ts +8 -8
  739. package/src/widgets/overlay/ContextMenu.js +28 -28
  740. package/src/widgets/overlay/Dropdown.d.ts +27 -27
  741. package/src/widgets/overlay/Dropdown.js +601 -601
  742. package/src/widgets/overlay/Dropdown.scss +184 -184
  743. package/src/widgets/overlay/FlyweightTooltipTracker.d.ts +8 -8
  744. package/src/widgets/overlay/FlyweightTooltipTracker.js +36 -36
  745. package/src/widgets/overlay/MsgBox.d.ts +16 -16
  746. package/src/widgets/overlay/MsgBox.js +116 -116
  747. package/src/widgets/overlay/Overlay.d.ts +69 -69
  748. package/src/widgets/overlay/Overlay.js +737 -737
  749. package/src/widgets/overlay/Overlay.scss +66 -66
  750. package/src/widgets/overlay/Toast.d.ts +30 -30
  751. package/src/widgets/overlay/Toast.js +92 -92
  752. package/src/widgets/overlay/Toast.scss +162 -162
  753. package/src/widgets/overlay/Tooltip.d.ts +50 -50
  754. package/src/widgets/overlay/Tooltip.js +283 -283
  755. package/src/widgets/overlay/Tooltip.scss +175 -175
  756. package/src/widgets/overlay/Window.d.ts +38 -38
  757. package/src/widgets/overlay/Window.js +195 -195
  758. package/src/widgets/overlay/Window.scss +112 -112
  759. package/src/widgets/overlay/Window.variables.scss +67 -67
  760. package/src/widgets/overlay/alerts.d.ts +7 -7
  761. package/src/widgets/overlay/alerts.js +39 -39
  762. package/src/widgets/overlay/captureMouse.d.ts +53 -53
  763. package/src/widgets/overlay/captureMouse.js +132 -132
  764. package/src/widgets/overlay/captureMouse.scss +13 -13
  765. package/src/widgets/overlay/index.d.ts +10 -10
  766. package/src/widgets/overlay/index.js +10 -10
  767. package/src/widgets/overlay/index.scss +15 -15
  768. package/src/widgets/overlay/tooltip-ops.d.ts +8 -8
  769. package/src/widgets/overlay/tooltip-ops.js +24 -24
  770. package/src/widgets/overlay/variables.scss +82 -82
  771. package/src/widgets/variables.scss +144 -144
  772. package/yarn-error.log +7973 -0
  773. package/dist/reset.js +0 -1
@@ -1,8 +1,8 @@
1
- import { Selector } from "../core";
2
- import { ViewMethods, View } from "../data";
3
-
4
- export function useStore(): View;
5
-
6
- export function useStoreMethods(): ViewMethods;
7
-
1
+ import { Selector } from "../core";
2
+ import { ViewMethods, View } from "../data";
3
+
4
+ export function useStore(): View;
5
+
6
+ export function useStoreMethods(): ViewMethods;
7
+
8
8
  export function ref(info: any): Selector<any>;
@@ -1,32 +1,32 @@
1
- import { getCurrentInstance } from "../ui/createFunctionalComponent";
2
- import { getSelector } from "../data/getSelector";
3
- import { isObject } from "../util/isObject";
4
- import { expression } from "../data/Expression";
5
- import { stringTemplate } from "../data/StringTemplate";
6
- import { Ref } from "../data/Ref";
7
-
8
- export function useStore() {
9
- return getCurrentInstance().store;
10
- }
11
-
12
- export function useStoreMethods() {
13
- return getCurrentInstance().store.getMethods();
14
- }
15
-
16
- export function ref(info) {
17
- if (isObject(info)) {
18
- if (info.bind) return useStore().ref(info.bind, info.defaultValue);
19
- if (info.get) return info;
20
- if (info.expr) {
21
- let store = useStore();
22
- let selector = expression(info.expr).memoize();
23
- return new Ref({ get: () => selector(store.getData()), set: info.set });
24
- }
25
- if (info.tpl) {
26
- let store = useStore();
27
- let selector = stringTemplate(info.tpl).memoize();
28
- return new Ref({ get: () => selector(store.getData()), set: info.set });
29
- }
30
- }
31
- return getSelector(info);
32
- }
1
+ import { getCurrentInstance } from "../ui/createFunctionalComponent";
2
+ import { getSelector } from "../data/getSelector";
3
+ import { isObject } from "../util/isObject";
4
+ import { expression } from "../data/Expression";
5
+ import { stringTemplate } from "../data/StringTemplate";
6
+ import { Ref } from "../data/Ref";
7
+
8
+ export function useStore() {
9
+ return getCurrentInstance().store;
10
+ }
11
+
12
+ export function useStoreMethods() {
13
+ return getCurrentInstance().store.getMethods();
14
+ }
15
+
16
+ export function ref(info) {
17
+ if (isObject(info)) {
18
+ if (info.bind) return useStore().ref(info.bind, info.defaultValue);
19
+ if (info.get) return info;
20
+ if (info.expr) {
21
+ let store = useStore();
22
+ let selector = expression(info.expr).memoize();
23
+ return new Ref({ get: () => selector(store.getData()), set: info.set });
24
+ }
25
+ if (info.tpl) {
26
+ let store = useStore();
27
+ let selector = stringTemplate(info.tpl).memoize();
28
+ return new Ref({ get: () => selector(store.getData()), set: info.set });
29
+ }
30
+ }
31
+ return getSelector(info);
32
+ }
@@ -1,73 +1,73 @@
1
- import { ref } from "./store";
2
- import { createFunctionalComponent } from "../ui/createFunctionalComponent";
3
- import { Store } from "../data/Store";
4
- import renderer from "react-test-renderer";
5
- import { HtmlElement } from "../widgets/HtmlElement";
6
- import { VDOM } from "../ui/VDOM";
7
- import { Cx } from "../ui/Cx";
8
- import assert from "assert";
9
- import { computable } from "../data";
10
-
11
- describe("ref", () => {
12
- it("allows store references in functional components", () => {
13
- const FComp = createFunctionalComponent(({}) => {
14
- let testValue = ref({ bind: "x", defaultValue: 10 });
15
- return (
16
- <cx>
17
- <div text={testValue} />
18
- </cx>
19
- );
20
- });
21
-
22
- let store = new Store();
23
-
24
- const component = renderer.create(<Cx widget={FComp} store={store} subscribe immediate />);
25
-
26
- let tree = component.toJSON();
27
- assert.deepEqual(tree, {
28
- type: "div",
29
- children: ["10"],
30
- props: {},
31
- });
32
- });
33
-
34
- it("can be used to adapt any prop passed to a functional component", () => {
35
- const FComp = createFunctionalComponent(({ value }) => {
36
- return (
37
- <cx>
38
- <div text={computable(ref(value), (value) => `x${value}`)} />
39
- </cx>
40
- );
41
- });
42
-
43
- let store = new Store({ data: { value: 100 } });
44
-
45
- function test(value, expectation) {
46
- const component = renderer.create(
47
- <Cx store={store} subscribe immediate>
48
- <FComp value={value} />
49
- </Cx>
50
- );
51
- let tree = component.toJSON();
52
- assert.deepEqual(tree, {
53
- type: "div",
54
- children: [expectation],
55
- props: {},
56
- });
57
- }
58
-
59
- test({ bind: "value" }, "x100");
60
- test({ expr: "{value}" }, "x100");
61
- test({ tpl: "{value:n;2}" }, "x100.00");
62
- test(200, "x200");
63
- test(() => 500, "x500");
64
- test(
65
- computable("value", (value) => value + 100),
66
- "x200"
67
- );
68
- test(null, "xnull");
69
- test(undefined, "xundefined");
70
- test(0, "x0");
71
- test(false, "xfalse");
72
- });
73
- });
1
+ import { ref } from "./store";
2
+ import { createFunctionalComponent } from "../ui/createFunctionalComponent";
3
+ import { Store } from "../data/Store";
4
+ import renderer from "react-test-renderer";
5
+ import { HtmlElement } from "../widgets/HtmlElement";
6
+ import { VDOM } from "../ui/VDOM";
7
+ import { Cx } from "../ui/Cx";
8
+ import assert from "assert";
9
+ import { computable } from "../data";
10
+
11
+ describe("ref", () => {
12
+ it("allows store references in functional components", () => {
13
+ const FComp = createFunctionalComponent(({}) => {
14
+ let testValue = ref({ bind: "x", defaultValue: 10 });
15
+ return (
16
+ <cx>
17
+ <div text={testValue} />
18
+ </cx>
19
+ );
20
+ });
21
+
22
+ let store = new Store();
23
+
24
+ const component = renderer.create(<Cx widget={FComp} store={store} subscribe immediate />);
25
+
26
+ let tree = component.toJSON();
27
+ assert.deepEqual(tree, {
28
+ type: "div",
29
+ children: ["10"],
30
+ props: {},
31
+ });
32
+ });
33
+
34
+ it("can be used to adapt any prop passed to a functional component", () => {
35
+ const FComp = createFunctionalComponent(({ value }) => {
36
+ return (
37
+ <cx>
38
+ <div text={computable(ref(value), (value) => `x${value}`)} />
39
+ </cx>
40
+ );
41
+ });
42
+
43
+ let store = new Store({ data: { value: 100 } });
44
+
45
+ function test(value, expectation) {
46
+ const component = renderer.create(
47
+ <Cx store={store} subscribe immediate>
48
+ <FComp value={value} />
49
+ </Cx>
50
+ );
51
+ let tree = component.toJSON();
52
+ assert.deepEqual(tree, {
53
+ type: "div",
54
+ children: [expectation],
55
+ props: {},
56
+ });
57
+ }
58
+
59
+ test({ bind: "value" }, "x100");
60
+ test({ expr: "{value}" }, "x100");
61
+ test({ tpl: "{value:n;2}" }, "x100.00");
62
+ test(200, "x200");
63
+ test(() => 500, "x500");
64
+ test(
65
+ computable("value", (value) => value + 100),
66
+ "x200"
67
+ );
68
+ test(null, "xnull");
69
+ test(undefined, "xundefined");
70
+ test(0, "x0");
71
+ test(false, "xfalse");
72
+ });
73
+ });
@@ -1,3 +1,3 @@
1
- export function useEffect(callback: () => () => void): void;
2
-
1
+ export function useEffect(callback: () => () => void): void;
2
+
3
3
  export function useCleanup(cleanupCallback: () => void): () => void;
@@ -1,15 +1,15 @@
1
- import {getCurrentInstance} from "../ui/createFunctionalComponent";
2
-
3
- export function useEffect(callback) {
4
- let destroyCallback = callback();
5
- if (destroyCallback)
6
- getCurrentInstance().subscribeOnDestroy(destroyCallback);
7
- }
8
-
9
- export function useCleanup(cleanupCallback) {
10
- let unsubscribe = getCurrentInstance().subscribeOnDestroy(cleanupCallback);
11
- return () => {
12
- unsubscribe();
13
- cleanupCallback();
14
- }
1
+ import {getCurrentInstance} from "../ui/createFunctionalComponent";
2
+
3
+ export function useEffect(callback) {
4
+ let destroyCallback = callback();
5
+ if (destroyCallback)
6
+ getCurrentInstance().subscribeOnDestroy(destroyCallback);
7
+ }
8
+
9
+ export function useCleanup(cleanupCallback) {
10
+ let unsubscribe = getCurrentInstance().subscribeOnDestroy(cleanupCallback);
11
+ return () => {
12
+ unsubscribe();
13
+ cleanupCallback();
14
+ }
15
15
  }
@@ -1,8 +1,8 @@
1
- import {useCleanup} from "./useEffect";
2
-
3
- export function useInterval(callback, timeout) {
4
- let timer = setInterval(callback, timeout);
5
- return useCleanup(() => {
6
- clearInterval(timer);
7
- });
1
+ import {useCleanup} from "./useEffect";
2
+
3
+ export function useInterval(callback, timeout) {
4
+ let timer = setInterval(callback, timeout);
5
+ return useCleanup(() => {
6
+ clearInterval(timer);
7
+ });
8
8
  }
@@ -1,3 +1,3 @@
1
- import { Ref } from "../data";
2
-
1
+ import { Ref } from "../data";
2
+
3
3
  export function useState(defaultValue?: any): Ref<any>
@@ -1,16 +1,16 @@
1
- import { getCurrentInstance } from "../ui/createFunctionalComponent";
2
- import { Ref } from "../data/Ref";
3
-
4
- let key = 0;
5
-
6
- export function useState(defaultValue) {
7
- let instance = getCurrentInstance();
8
- let storeKey = '_state' + (++key);
9
- instance.setState({
10
- [storeKey]: defaultValue
11
- });
12
- return new Ref({
13
- get: () => instance.state[storeKey],
14
- set: value => instance.setState({ [storeKey]: value })
15
- });
1
+ import { getCurrentInstance } from "../ui/createFunctionalComponent";
2
+ import { Ref } from "../data/Ref";
3
+
4
+ let key = 0;
5
+
6
+ export function useState(defaultValue) {
7
+ let instance = getCurrentInstance();
8
+ let storeKey = '_state' + (++key);
9
+ instance.setState({
10
+ [storeKey]: defaultValue
11
+ });
12
+ return new Ref({
13
+ get: () => instance.state[storeKey],
14
+ set: value => instance.setState({ [storeKey]: value })
15
+ });
16
16
  }
@@ -1,5 +1,5 @@
1
- import { Path } from "../data";
2
-
3
- export function addExploreCallback(callback: any): () => void;
4
-
1
+ import { Path } from "../data";
2
+
3
+ export function addExploreCallback(callback: any): () => void;
4
+
5
5
  export function useTrigger(args: Array<Path>, callback: (...args) => void, autoRun?: boolean): () => void;
@@ -1,20 +1,20 @@
1
- import { getCurrentInstance } from "../ui/createFunctionalComponent";
2
- import { isArray } from "../util/isArray";
3
- import { computable } from "../data/computable";
4
- import { useStore } from "./store";
5
-
6
- export function addExploreCallback(callback) {
7
- let instance = getCurrentInstance();
8
- if (!instance.computables) instance.computables = [];
9
- instance.computables.push(callback);
10
- return () => {
11
- instance.computables = instance.computables.filter((cb) => cb !== callback);
12
- };
13
- }
14
-
15
- export function useTrigger(args, callback, autoRun) {
16
- if (!isArray(args)) throw new Error("First argument to addTrigger should be an array.");
17
- let store = useStore();
18
- let selector = computable(...args, callback).memoize(!autoRun && store.getData());
19
- return addExploreCallback(selector);
20
- }
1
+ import { getCurrentInstance } from "../ui/createFunctionalComponent";
2
+ import { isArray } from "../util/isArray";
3
+ import { computable } from "../data/computable";
4
+ import { useStore } from "./store";
5
+
6
+ export function addExploreCallback(callback) {
7
+ let instance = getCurrentInstance();
8
+ if (!instance.computables) instance.computables = [];
9
+ instance.computables.push(callback);
10
+ return () => {
11
+ instance.computables = instance.computables.filter((cb) => cb !== callback);
12
+ };
13
+ }
14
+
15
+ export function useTrigger(args, callback, autoRun) {
16
+ if (!isArray(args)) throw new Error("First argument to addTrigger should be an array.");
17
+ let store = useStore();
18
+ let selector = computable(...args, callback).memoize(!autoRun && store.getData());
19
+ return addExploreCallback(selector);
20
+ }
@@ -1,102 +1,102 @@
1
- import { useTrigger } from "./useTrigger";
2
- import { createFunctionalComponent } from "../ui/createFunctionalComponent";
3
- import { Store } from "../data/Store";
4
- import renderer from "react-test-renderer";
5
- import { HtmlElement } from "../widgets/HtmlElement";
6
- import { VDOM } from "../ui/VDOM";
7
- import { Cx } from "../ui/Cx";
8
- import assert from "assert";
9
-
10
- describe("useTrigger", () => {
11
- it("works", () => {
12
- let last = null;
13
-
14
- const FComp = createFunctionalComponent(({ ...props }) => {
15
- useTrigger(["test"], (test) => {
16
- last = test;
17
- });
18
-
19
- return (
20
- <cx>
21
- <div />
22
- </cx>
23
- );
24
- });
25
-
26
- let store = new Store();
27
- let test = store.ref("test", 1);
28
-
29
- const component = renderer.create(<Cx widget={FComp} store={store} subscribe immediate />);
30
-
31
- component.toJSON();
32
- assert.equal(last, null); //trigger did not fire because it didn't receive true as the last argument
33
-
34
- test.set(2);
35
- component.toJSON();
36
- assert.equal(last, 2);
37
- });
38
-
39
- it("fires immediately if the last argument is true", () => {
40
- let last = null;
41
-
42
- const FComp = createFunctionalComponent(({ ...props }) => {
43
- useTrigger(
44
- ["test"],
45
- (test) => {
46
- last = test;
47
- },
48
- true
49
- );
50
-
51
- return (
52
- <cx>
53
- <div />
54
- </cx>
55
- );
56
- });
57
-
58
- let store = new Store();
59
- let test = store.ref("test", 1);
60
-
61
- const component = renderer.create(<Cx widget={FComp} store={store} subscribe immediate />);
62
-
63
- component.toJSON();
64
- assert.equal(last, 1);
65
-
66
- test.set(2);
67
- component.toJSON();
68
- assert.equal(last, 2);
69
- });
70
-
71
- it("accepts refs as arguments", () => {
72
- let last = null;
73
-
74
- let store = new Store();
75
- let test = store.ref("test", 1);
76
-
77
- const FComp = createFunctionalComponent(({ ...props }) => {
78
- useTrigger(
79
- [test],
80
- (test) => {
81
- last = test;
82
- },
83
- true
84
- );
85
-
86
- return (
87
- <cx>
88
- <div />
89
- </cx>
90
- );
91
- });
92
-
93
- const component = renderer.create(<Cx widget={FComp} store={store} subscribe immediate />);
94
-
95
- component.toJSON();
96
- assert.equal(last, 1);
97
-
98
- test.set(2);
99
- component.toJSON();
100
- assert.equal(last, 2);
101
- });
102
- });
1
+ import { useTrigger } from "./useTrigger";
2
+ import { createFunctionalComponent } from "../ui/createFunctionalComponent";
3
+ import { Store } from "../data/Store";
4
+ import renderer from "react-test-renderer";
5
+ import { HtmlElement } from "../widgets/HtmlElement";
6
+ import { VDOM } from "../ui/VDOM";
7
+ import { Cx } from "../ui/Cx";
8
+ import assert from "assert";
9
+
10
+ describe("useTrigger", () => {
11
+ it("works", () => {
12
+ let last = null;
13
+
14
+ const FComp = createFunctionalComponent(({ ...props }) => {
15
+ useTrigger(["test"], (test) => {
16
+ last = test;
17
+ });
18
+
19
+ return (
20
+ <cx>
21
+ <div />
22
+ </cx>
23
+ );
24
+ });
25
+
26
+ let store = new Store();
27
+ let test = store.ref("test", 1);
28
+
29
+ const component = renderer.create(<Cx widget={FComp} store={store} subscribe immediate />);
30
+
31
+ component.toJSON();
32
+ assert.equal(last, null); //trigger did not fire because it didn't receive true as the last argument
33
+
34
+ test.set(2);
35
+ component.toJSON();
36
+ assert.equal(last, 2);
37
+ });
38
+
39
+ it("fires immediately if the last argument is true", () => {
40
+ let last = null;
41
+
42
+ const FComp = createFunctionalComponent(({ ...props }) => {
43
+ useTrigger(
44
+ ["test"],
45
+ (test) => {
46
+ last = test;
47
+ },
48
+ true
49
+ );
50
+
51
+ return (
52
+ <cx>
53
+ <div />
54
+ </cx>
55
+ );
56
+ });
57
+
58
+ let store = new Store();
59
+ let test = store.ref("test", 1);
60
+
61
+ const component = renderer.create(<Cx widget={FComp} store={store} subscribe immediate />);
62
+
63
+ component.toJSON();
64
+ assert.equal(last, 1);
65
+
66
+ test.set(2);
67
+ component.toJSON();
68
+ assert.equal(last, 2);
69
+ });
70
+
71
+ it("accepts refs as arguments", () => {
72
+ let last = null;
73
+
74
+ let store = new Store();
75
+ let test = store.ref("test", 1);
76
+
77
+ const FComp = createFunctionalComponent(({ ...props }) => {
78
+ useTrigger(
79
+ [test],
80
+ (test) => {
81
+ last = test;
82
+ },
83
+ true
84
+ );
85
+
86
+ return (
87
+ <cx>
88
+ <div />
89
+ </cx>
90
+ );
91
+ });
92
+
93
+ const component = renderer.create(<Cx widget={FComp} store={store} subscribe immediate />);
94
+
95
+ component.toJSON();
96
+ assert.equal(last, 1);
97
+
98
+ test.set(2);
99
+ component.toJSON();
100
+ assert.equal(last, 2);
101
+ });
102
+ });
package/src/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export * as util from './util/';
2
- export * as data from './data/';
3
- export * as ui from './ui/';
4
- export * as widgets from './widgets';
5
- export * as svg from './svg/';
6
- export * as charts from './charts/';
7
- export * as hooks from './hooks/';
1
+ export * as util from './util/';
2
+ export * as data from './data/';
3
+ export * as ui from './ui/';
4
+ export * as widgets from './widgets';
5
+ export * as svg from './svg/';
6
+ export * as charts from './charts/';
7
+ export * as hooks from './hooks/';
package/src/index.scss CHANGED
@@ -1,7 +1,7 @@
1
-
2
- @import 'global';
3
- @import 'util/index';
4
- @import 'ui/index';
5
- @import 'widgets/index';
6
- @import 'svg/index';
1
+
2
+ @import 'global';
3
+ @import 'util/index';
4
+ @import 'ui/index';
5
+ @import 'widgets/index';
6
+ @import 'svg/index';
7
7
  @import 'charts/index';
@@ -1,23 +1,23 @@
1
- import * as Cx from '../core';
2
- //import {PureContainer} from '../ui/PureContainer';
3
- import {IRect} from './util/Rect';
4
-
5
- export interface BoundedObjectProps extends Cx.StyledContainerProps {
6
-
7
- /**
8
- * Anchor defines how child bounds are tied to the parent. Zero aligns with the top/left edge.
9
- * One aligns with the bottom/right edge. See Svg for more information.
10
- */
11
- anchors?: Cx.Prop<string | number | IRect>,
12
-
13
- /** Move boundaries specified by the offset. See Svg for more information. */
14
- offset?: Cx.Prop<string | number | IRect>,
15
-
16
- /** Apply margin to the given boundaries. See Svg for more information. */
17
- margin?: Cx.Prop<string | number | IRect>,
18
-
19
- /** Padding to be applied to the boundaries rectangle before passing to the children. */
20
- padding?: Cx.Prop<string | number | IRect>,
21
- }
22
-
1
+ import * as Cx from '../core';
2
+ //import {PureContainer} from '../ui/PureContainer';
3
+ import {IRect} from './util/Rect';
4
+
5
+ export interface BoundedObjectProps extends Cx.StyledContainerProps {
6
+
7
+ /**
8
+ * Anchor defines how child bounds are tied to the parent. Zero aligns with the top/left edge.
9
+ * One aligns with the bottom/right edge. See Svg for more information.
10
+ */
11
+ anchors?: Cx.Prop<string | number | IRect>,
12
+
13
+ /** Move boundaries specified by the offset. See Svg for more information. */
14
+ offset?: Cx.Prop<string | number | IRect>,
15
+
16
+ /** Apply margin to the given boundaries. See Svg for more information. */
17
+ margin?: Cx.Prop<string | number | IRect>,
18
+
19
+ /** Padding to be applied to the boundaries rectangle before passing to the children. */
20
+ padding?: Cx.Prop<string | number | IRect>,
21
+ }
22
+
23
23
  export class BoundedObject extends Cx.Widget<BoundedObjectProps> {}