cx 24.6.1 → 24.6.3

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