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