cx 24.4.6 → 24.4.8

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