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