cx 24.4.3 → 24.4.4

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