cx 24.6.2 → 24.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (780) 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 +15 -7
  5. package/dist/manifest.js +773 -773
  6. package/dist/widgets.css +31 -2
  7. package/dist/widgets.js +197 -91
  8. package/index.js +17 -17
  9. package/locale/de-de.js +74 -74
  10. package/locale/en-us.js +74 -74
  11. package/locale/es-es.js +74 -74
  12. package/locale/fr-fr.js +74 -74
  13. package/locale/nl-nl.js +74 -74
  14. package/locale/pt-pt.js +74 -74
  15. package/locale/sr-latn-ba.js +74 -74
  16. package/package.json +1 -1
  17. package/src/charts/Bar.js +89 -89
  18. package/src/charts/Bar.scss +26 -26
  19. package/src/charts/BarGraph.d.ts +15 -15
  20. package/src/charts/BarGraph.js +112 -112
  21. package/src/charts/BarGraph.scss +27 -27
  22. package/src/charts/BubbleGraph.js +92 -92
  23. package/src/charts/BubbleGraph.scss +29 -29
  24. package/src/charts/Chart.d.ts +12 -12
  25. package/src/charts/Chart.js +75 -75
  26. package/src/charts/ColorMap.d.ts +21 -21
  27. package/src/charts/ColorMap.js +96 -96
  28. package/src/charts/Column.d.ts +27 -27
  29. package/src/charts/Column.js +88 -88
  30. package/src/charts/Column.scss +26 -26
  31. package/src/charts/ColumnBarBase.d.ts +64 -64
  32. package/src/charts/ColumnBarBase.js +172 -172
  33. package/src/charts/ColumnBarGraphBase.d.ts +73 -73
  34. package/src/charts/ColumnBarGraphBase.js +114 -114
  35. package/src/charts/ColumnGraph.d.ts +18 -18
  36. package/src/charts/ColumnGraph.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 +37 -37
  44. package/src/charts/LegendEntry.js +117 -117
  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 +96 -96
  49. package/src/charts/Marker.js +299 -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 +16 -19
  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.d.ts +22 -22
  97. package/src/charts/helpers/MinMaxFinder.js +36 -36
  98. package/src/charts/helpers/PointReducer.d.ts +15 -15
  99. package/src/charts/helpers/PointReducer.js +39 -39
  100. package/src/charts/helpers/index.d.ts +4 -4
  101. package/src/charts/helpers/index.js +4 -4
  102. package/src/charts/index.d.ts +27 -27
  103. package/src/charts/index.js +34 -34
  104. package/src/charts/index.scss +22 -22
  105. package/src/charts/palette.scss +95 -95
  106. package/src/charts/shapes.d.ts +22 -22
  107. package/src/charts/shapes.js +79 -79
  108. package/src/charts/variables.scss +21 -21
  109. package/src/core.d.ts +271 -271
  110. package/src/data/AggregateFunction.d.ts +20 -20
  111. package/src/data/AggregateFunction.js +145 -145
  112. package/src/data/ArrayElementView.d.ts +13 -13
  113. package/src/data/ArrayElementView.js +46 -46
  114. package/src/data/ArrayElementView.spec.js +70 -70
  115. package/src/data/ArrayRef.d.ts +14 -14
  116. package/src/data/ArrayRef.js +34 -34
  117. package/src/data/AugmentedViewBase.d.ts +18 -18
  118. package/src/data/AugmentedViewBase.js +67 -67
  119. package/src/data/Binding.d.ts +19 -19
  120. package/src/data/Binding.js +76 -76
  121. package/src/data/Binding.spec.js +69 -69
  122. package/src/data/ExposedRecordView.d.ts +14 -14
  123. package/src/data/ExposedRecordView.js +69 -69
  124. package/src/data/ExposedValueView.d.ts +19 -19
  125. package/src/data/ExposedValueView.js +72 -72
  126. package/src/data/Expression.d.ts +17 -17
  127. package/src/data/Expression.js +220 -220
  128. package/src/data/Expression.spec.js +174 -174
  129. package/src/data/Grouper.d.ts +21 -21
  130. package/src/data/Grouper.js +144 -144
  131. package/src/data/Grouper.spec.js +57 -57
  132. package/src/data/NestedDataView.d.ts +19 -19
  133. package/src/data/NestedDataView.js +22 -22
  134. package/src/data/ReadOnlyDataView.d.ts +14 -14
  135. package/src/data/ReadOnlyDataView.js +26 -26
  136. package/src/data/Ref.d.ts +24 -24
  137. package/src/data/Ref.js +79 -79
  138. package/src/data/Ref.spec.js +79 -79
  139. package/src/data/Store.d.ts +14 -14
  140. package/src/data/Store.js +46 -46
  141. package/src/data/Store.spec.js +22 -22
  142. package/src/data/StoreProxy.d.ts +4 -4
  143. package/src/data/StoreProxy.js +16 -16
  144. package/src/data/StoreRef.js +54 -54
  145. package/src/data/StoreRef.spec.js +24 -24
  146. package/src/data/StringTemplate.d.ts +15 -15
  147. package/src/data/StringTemplate.js +92 -92
  148. package/src/data/StructuredDataAccessor.d.ts +7 -7
  149. package/src/data/StructuredSelector.d.ts +17 -17
  150. package/src/data/StructuredSelector.js +131 -131
  151. package/src/data/StructuredSelector.spec.js +113 -113
  152. package/src/data/SubscribableView.d.ts +11 -11
  153. package/src/data/SubscribableView.js +54 -54
  154. package/src/data/View.d.ts +131 -131
  155. package/src/data/View.js +182 -182
  156. package/src/data/View.spec.js +60 -60
  157. package/src/data/ZoomIntoPropertyView.d.ts +11 -11
  158. package/src/data/ZoomIntoPropertyView.js +33 -33
  159. package/src/data/ZoomIntoPropertyView.spec.js +65 -65
  160. package/src/data/comparer.d.ts +7 -7
  161. package/src/data/comparer.js +54 -54
  162. package/src/data/comparer.spec.js +60 -60
  163. package/src/data/computable.d.ts +125 -125
  164. package/src/data/computable.js +56 -56
  165. package/src/data/computable.spec.js +55 -55
  166. package/src/data/createAccessorModelProxy.d.ts +6 -6
  167. package/src/data/createAccessorModelProxy.js +43 -43
  168. package/src/data/createAccessorModelProxy.spec.tsx +44 -44
  169. package/src/data/createStructuredSelector.d.ts +2 -2
  170. package/src/data/createStructuredSelector.js +43 -43
  171. package/src/data/createStructuredSelector.spec.js +46 -46
  172. package/src/data/defaultCompare.js +14 -14
  173. package/src/data/diff/diffArrays.d.ts +15 -15
  174. package/src/data/diff/diffArrays.js +41 -41
  175. package/src/data/diff/diffs.spec.js +49 -49
  176. package/src/data/diff/index.d.ts +1 -1
  177. package/src/data/diff/index.js +1 -1
  178. package/src/data/enableFatArrowExpansion.d.ts +1 -1
  179. package/src/data/enableFatArrowExpansion.js +6 -6
  180. package/src/data/getAccessor.d.ts +8 -8
  181. package/src/data/getAccessor.js +61 -61
  182. package/src/data/getSelector.d.ts +3 -3
  183. package/src/data/getSelector.js +48 -48
  184. package/src/data/getSelector.spec.js +43 -43
  185. package/src/data/index.d.ts +30 -30
  186. package/src/data/index.js +28 -28
  187. package/src/data/isSelector.d.ts +1 -1
  188. package/src/data/isSelector.js +26 -26
  189. package/src/data/ops/append.d.ts +1 -1
  190. package/src/data/ops/append.js +7 -7
  191. package/src/data/ops/append.spec.js +28 -28
  192. package/src/data/ops/filter.d.ts +1 -1
  193. package/src/data/ops/filter.js +8 -8
  194. package/src/data/ops/filter.spec.js +29 -29
  195. package/src/data/ops/findTreeNode.d.ts +1 -1
  196. package/src/data/ops/findTreeNode.js +15 -15
  197. package/src/data/ops/findTreeNode.spec.js +24 -24
  198. package/src/data/ops/findTreePath.d.ts +6 -6
  199. package/src/data/ops/findTreePath.js +16 -16
  200. package/src/data/ops/index.d.ts +10 -10
  201. package/src/data/ops/index.js +11 -11
  202. package/src/data/ops/insertElement.d.ts +1 -1
  203. package/src/data/ops/insertElement.js +2 -2
  204. package/src/data/ops/merge.d.ts +3 -3
  205. package/src/data/ops/merge.js +9 -9
  206. package/src/data/ops/merge.spec.js +27 -27
  207. package/src/data/ops/moveElement.d.ts +1 -1
  208. package/src/data/ops/moveElement.js +13 -13
  209. package/src/data/ops/removeTreeNodes.d.ts +5 -5
  210. package/src/data/ops/removeTreeNodes.js +5 -5
  211. package/src/data/ops/removeTreeNodes.spec.js +28 -28
  212. package/src/data/ops/updateArray.d.ts +5 -5
  213. package/src/data/ops/updateArray.js +24 -24
  214. package/src/data/ops/updateArray.spec.js +38 -38
  215. package/src/data/ops/updateTree.d.ts +7 -7
  216. package/src/data/ops/updateTree.js +25 -25
  217. package/src/data/ops/updateTree.spec.js +36 -36
  218. package/src/global.scss +13 -13
  219. package/src/hooks/createLocalStorageRef.d.ts +2 -2
  220. package/src/hooks/createLocalStorageRef.js +22 -22
  221. package/src/hooks/index.d.ts +8 -8
  222. package/src/hooks/index.js +7 -7
  223. package/src/hooks/invokeCallback.d.ts +5 -5
  224. package/src/hooks/invokeCallback.js +6 -6
  225. package/src/hooks/invokeCallback.spec.js +53 -53
  226. package/src/hooks/resolveCallback.d.ts +3 -3
  227. package/src/hooks/resolveCallback.js +11 -11
  228. package/src/hooks/resolveCallback.spec.js +54 -54
  229. package/src/hooks/store.d.ts +7 -7
  230. package/src/hooks/store.js +32 -32
  231. package/src/hooks/store.spec.js +73 -73
  232. package/src/hooks/useEffect.d.ts +2 -2
  233. package/src/hooks/useEffect.js +14 -14
  234. package/src/hooks/useInterval.js +7 -7
  235. package/src/hooks/useState.d.ts +2 -2
  236. package/src/hooks/useState.js +15 -15
  237. package/src/hooks/useTrigger.d.ts +4 -4
  238. package/src/hooks/useTrigger.js +20 -20
  239. package/src/hooks/useTrigger.spec.js +102 -102
  240. package/src/index.js +7 -7
  241. package/src/index.scss +6 -6
  242. package/src/svg/BoundedObject.d.ts +22 -22
  243. package/src/svg/BoundedObject.js +59 -59
  244. package/src/svg/ClipRect.d.ts +4 -4
  245. package/src/svg/ClipRect.js +23 -23
  246. package/src/svg/Ellipse.d.ts +23 -23
  247. package/src/svg/Ellipse.js +36 -36
  248. package/src/svg/Line.d.ts +20 -20
  249. package/src/svg/Line.js +32 -32
  250. package/src/svg/NonOverlappingRect.d.ts +5 -5
  251. package/src/svg/NonOverlappingRect.js +14 -14
  252. package/src/svg/NonOverlappingRectGroup.d.ts +3 -3
  253. package/src/svg/NonOverlappingRectGroup.js +36 -36
  254. package/src/svg/Rectangle.d.ts +23 -23
  255. package/src/svg/Rectangle.js +36 -36
  256. package/src/svg/Svg.d.ts +32 -32
  257. package/src/svg/Svg.js +177 -177
  258. package/src/svg/Svg.scss +26 -26
  259. package/src/svg/Text.d.ts +40 -40
  260. package/src/svg/Text.js +78 -78
  261. package/src/svg/TextualBoundedObject.d.ts +6 -6
  262. package/src/svg/TextualBoundedObject.js +28 -28
  263. package/src/svg/index.d.ts +11 -11
  264. package/src/svg/index.js +17 -17
  265. package/src/svg/index.scss +8 -8
  266. package/src/svg/util/Rect.d.ts +40 -40
  267. package/src/svg/util/Rect.js +108 -108
  268. package/src/ui/CSS.d.ts +19 -19
  269. package/src/ui/CSS.js +79 -79
  270. package/src/ui/CSSHelper.d.ts +10 -10
  271. package/src/ui/CSSHelper.js +17 -17
  272. package/src/ui/Container.d.ts +18 -18
  273. package/src/ui/Container.js +183 -183
  274. package/src/ui/ContentResolver.d.ts +12 -12
  275. package/src/ui/ContentResolver.js +78 -78
  276. package/src/ui/Controller.js +114 -114
  277. package/src/ui/Controller.spec.js +414 -414
  278. package/src/ui/Culture.d.ts +51 -51
  279. package/src/ui/Culture.js +129 -129
  280. package/src/ui/Cx.d.ts +18 -18
  281. package/src/ui/Cx.js +313 -313
  282. package/src/ui/Cx.spec.js +193 -193
  283. package/src/ui/DataProxy.d.ts +12 -12
  284. package/src/ui/DataProxy.js +44 -44
  285. package/src/ui/DataProxy.spec.js +335 -335
  286. package/src/ui/DetachedScope.d.ts +21 -21
  287. package/src/ui/DetachedScope.js +93 -93
  288. package/src/ui/FocusManager.d.ts +29 -29
  289. package/src/ui/Format.d.ts +2 -2
  290. package/src/ui/Format.js +107 -107
  291. package/src/ui/HoverSync.d.ts +13 -13
  292. package/src/ui/HoverSync.js +147 -147
  293. package/src/ui/Instance.js +610 -610
  294. package/src/ui/IsolatedScope.d.ts +16 -16
  295. package/src/ui/IsolatedScope.js +29 -29
  296. package/src/ui/IsolatedScope.spec.js +62 -62
  297. package/src/ui/Localization.d.ts +17 -17
  298. package/src/ui/Localization.js +70 -70
  299. package/src/ui/PureContainer.d.ts +16 -16
  300. package/src/ui/PureContainer.js +7 -7
  301. package/src/ui/RenderingContext.d.ts +9 -9
  302. package/src/ui/RenderingContext.js +88 -88
  303. package/src/ui/Repeater.d.ts +60 -60
  304. package/src/ui/Repeater.js +102 -102
  305. package/src/ui/Repeater.spec.js +143 -143
  306. package/src/ui/Rescope.d.ts +10 -10
  307. package/src/ui/Rescope.js +31 -31
  308. package/src/ui/Rescope.spec.js +195 -195
  309. package/src/ui/ResizeManager.d.ts +9 -9
  310. package/src/ui/ResizeManager.js +30 -30
  311. package/src/ui/Restate.d.ts +21 -21
  312. package/src/ui/Restate.js +163 -163
  313. package/src/ui/Restate.spec.js +422 -422
  314. package/src/ui/StaticText.d.ts +8 -8
  315. package/src/ui/StaticText.js +9 -9
  316. package/src/ui/StructuredInstanceDataAccessor.d.ts +16 -16
  317. package/src/ui/StructuredInstanceDataAccessor.js +26 -26
  318. package/src/ui/Text.d.ts +10 -10
  319. package/src/ui/Text.js +25 -25
  320. package/src/ui/VDOM.d.ts +3 -3
  321. package/src/ui/VDOM.js +2 -2
  322. package/src/ui/Widget.d.ts +14 -14
  323. package/src/ui/Widget.js +200 -200
  324. package/src/ui/ZIndexManager.d.ts +7 -7
  325. package/src/ui/ZIndexManager.js +11 -11
  326. package/src/ui/adapter/ArrayAdapter.d.ts +17 -17
  327. package/src/ui/adapter/ArrayAdapter.js +142 -142
  328. package/src/ui/adapter/ArrayAdapter.spec.js +55 -55
  329. package/src/ui/adapter/DataAdapter.js +15 -15
  330. package/src/ui/adapter/GroupAdapter.d.ts +23 -23
  331. package/src/ui/adapter/TreeAdapter.d.ts +24 -24
  332. package/src/ui/adapter/TreeAdapter.js +100 -100
  333. package/src/ui/adapter/TreeAdapter.spec.js +67 -67
  334. package/src/ui/adapter/index.d.ts +4 -4
  335. package/src/ui/adapter/index.js +4 -4
  336. package/src/ui/app/History.d.ts +17 -17
  337. package/src/ui/app/History.js +114 -114
  338. package/src/ui/app/Url.d.ts +21 -21
  339. package/src/ui/app/Url.js +103 -103
  340. package/src/ui/app/Url.spec.js +51 -51
  341. package/src/ui/app/index.d.ts +4 -4
  342. package/src/ui/app/index.js +5 -5
  343. package/src/ui/app/startAppLoop.d.ts +3 -3
  344. package/src/ui/app/startAppLoop.js +57 -57
  345. package/src/ui/app/startHotAppLoop.d.ts +6 -6
  346. package/src/ui/app/startHotAppLoop.js +25 -25
  347. package/src/ui/batchUpdates.d.ts +10 -10
  348. package/src/ui/batchUpdates.js +67 -67
  349. package/src/ui/bind.d.ts +4 -4
  350. package/src/ui/bind.js +7 -7
  351. package/src/ui/createFunctionalComponent.d.ts +1 -1
  352. package/src/ui/createFunctionalComponent.js +68 -68
  353. package/src/ui/createFunctionalComponent.spec.js +400 -400
  354. package/src/ui/expr.d.ts +24 -24
  355. package/src/ui/expr.js +17 -17
  356. package/src/ui/flattenProps.js +21 -21
  357. package/src/ui/index.js +44 -44
  358. package/src/ui/index.scss +2 -2
  359. package/src/ui/keyboardShortcuts.d.ts +4 -4
  360. package/src/ui/keyboardShortcuts.js +31 -31
  361. package/src/ui/layout/Content.d.ts +14 -14
  362. package/src/ui/layout/Content.js +16 -16
  363. package/src/ui/layout/ContentPlaceholder.d.ts +17 -17
  364. package/src/ui/layout/ContentPlaceholder.js +79 -79
  365. package/src/ui/layout/ContentPlaceholder.spec.js +368 -368
  366. package/src/ui/layout/FirstVisibleChildLayout.d.ts +4 -4
  367. package/src/ui/layout/FirstVisibleChildLayout.js +65 -65
  368. package/src/ui/layout/FirstVisibleChildLayout.spec.js +196 -196
  369. package/src/ui/layout/LabelsLeftLayout.d.ts +11 -11
  370. package/src/ui/layout/LabelsLeftLayout.js +59 -59
  371. package/src/ui/layout/LabelsLeftLayout.scss +44 -44
  372. package/src/ui/layout/LabelsTopLayout.d.ts +15 -15
  373. package/src/ui/layout/LabelsTopLayout.js +134 -134
  374. package/src/ui/layout/LabelsTopLayout.scss +63 -63
  375. package/src/ui/layout/UseParentLayout.d.ts +4 -4
  376. package/src/ui/layout/UseParentLayout.js +6 -6
  377. package/src/ui/layout/exploreChildren.d.ts +14 -14
  378. package/src/ui/layout/exploreChildren.js +40 -40
  379. package/src/ui/layout/index.d.ts +10 -10
  380. package/src/ui/layout/index.js +10 -10
  381. package/src/ui/layout/index.scss +3 -3
  382. package/src/ui/layout/variables.scss +2 -2
  383. package/src/ui/selection/KeySelection.d.ts +17 -17
  384. package/src/ui/selection/KeySelection.js +129 -129
  385. package/src/ui/selection/PropertySelection.d.ts +17 -17
  386. package/src/ui/selection/PropertySelection.js +55 -55
  387. package/src/ui/selection/Selection.d.ts +27 -27
  388. package/src/ui/selection/Selection.js +93 -93
  389. package/src/ui/selection/index.d.ts +3 -3
  390. package/src/ui/selection/index.js +3 -3
  391. package/src/ui/tpl.d.ts +2 -2
  392. package/src/ui/tpl.js +4 -4
  393. package/src/ui/variables.scss +1 -1
  394. package/src/util/Component.d.ts +41 -41
  395. package/src/util/Component.js +107 -107
  396. package/src/util/Console.d.ts +4 -4
  397. package/src/util/Console.js +11 -11
  398. package/src/util/DOM.d.ts +33 -33
  399. package/src/util/DOM.js +72 -72
  400. package/src/util/Debug.d.ts +10 -10
  401. package/src/util/Debug.js +45 -45
  402. package/src/util/Format.d.ts +18 -18
  403. package/src/util/Format.spec.js +69 -69
  404. package/src/util/GlobalCacheIdentifier.js +11 -11
  405. package/src/util/GlobalCacheldentifier.d.ts +6 -6
  406. package/src/util/KeyCode.d.ts +21 -21
  407. package/src/util/KeyCode.js +21 -21
  408. package/src/util/SubscriberList.d.ts +41 -41
  409. package/src/util/SubscriberList.js +57 -57
  410. package/src/util/Timing.d.ts +13 -13
  411. package/src/util/Timing.js +57 -57
  412. package/src/util/TraversalStack.js +42 -42
  413. package/src/util/TraversalStack.spec.js +46 -46
  414. package/src/util/addEventListenerWithOptions.d.ts +6 -6
  415. package/src/util/addEventListenerWithOptions.js +9 -9
  416. package/src/util/browserSupportsPassiveEventHandlers.d.ts +4 -4
  417. package/src/util/browserSupportsPassiveEventHandlers.js +18 -18
  418. package/src/util/calculateNaturalElementHeight.d.ts +1 -1
  419. package/src/util/calculateNaturalElementHeight.js +22 -22
  420. package/src/util/call-once.scss +6 -6
  421. package/src/util/coalesce.d.ts +1 -1
  422. package/src/util/coalesce.js +6 -6
  423. package/src/util/color/hslToRgb.d.ts +8 -8
  424. package/src/util/color/hslToRgb.js +27 -27
  425. package/src/util/color/index.d.ts +3 -3
  426. package/src/util/color/index.js +4 -4
  427. package/src/util/color/parseColor.d.ts +59 -59
  428. package/src/util/color/parseColor.js +119 -119
  429. package/src/util/color/rgbToHex.d.ts +8 -8
  430. package/src/util/color/rgbToHex.js +7 -7
  431. package/src/util/color/rgbToHsl.d.ts +8 -8
  432. package/src/util/color/rgbToHsl.js +27 -27
  433. package/src/util/date/dateDiff.d.ts +7 -7
  434. package/src/util/date/dateDiff.js +3 -3
  435. package/src/util/date/diff.d.ts +7 -7
  436. package/src/util/date/diff.js +7 -7
  437. package/src/util/date/encodeDateWithTimezoneOffset.js +18 -18
  438. package/src/util/date/index.d.ts +8 -8
  439. package/src/util/date/index.js +9 -9
  440. package/src/util/date/lowerBoundCheck.d.ts +7 -7
  441. package/src/util/date/lowerBoundCheck.js +6 -6
  442. package/src/util/date/maxDate.d.ts +5 -5
  443. package/src/util/date/maxDate.js +9 -9
  444. package/src/util/date/minDate.d.ts +5 -5
  445. package/src/util/date/minDate.js +9 -9
  446. package/src/util/date/monthStart.d.ts +5 -5
  447. package/src/util/date/monthStart.js +3 -3
  448. package/src/util/date/sameDate.d.ts +6 -6
  449. package/src/util/date/sameDate.js +5 -5
  450. package/src/util/date/upperBoundCheck.d.ts +7 -7
  451. package/src/util/date/upperBoundCheck.js +6 -6
  452. package/src/util/date/upperBoundCheck.spec.js +30 -30
  453. package/src/util/date/zeroTime.d.ts +6 -6
  454. package/src/util/date/zeroTime.js +3 -3
  455. package/src/util/debounce.d.ts +9 -9
  456. package/src/util/debounce.js +18 -18
  457. package/src/util/dummyCallback.d.ts +1 -1
  458. package/src/util/dummyCallback.js +1 -1
  459. package/src/util/escapeSpecialRegexCharacters.d.ts +6 -6
  460. package/src/util/escapeSpecialRegexCharacters.js +3 -3
  461. package/src/util/eventCallbacks.d.ts +4 -4
  462. package/src/util/eventCallbacks.js +2 -2
  463. package/src/util/expandFatArrows.js +118 -118
  464. package/src/util/findScrollableParent.js +16 -16
  465. package/src/util/getActiveElement.js +3 -3
  466. package/src/util/getParentFrameBoundingClientRect.js +21 -21
  467. package/src/util/getScrollerBoundingClientRect.js +21 -21
  468. package/src/util/getSearchQueryPredicate.js +58 -58
  469. package/src/util/getSearchQueryPredicate.spec.js +40 -40
  470. package/src/util/getTopLevelBoundingClientRect.js +13 -13
  471. package/src/util/getVendorPrefix.js +26 -26
  472. package/src/util/index.d.ts +50 -50
  473. package/src/util/index.js +52 -52
  474. package/src/util/index.scss +10 -10
  475. package/src/util/innerTextTrim.d.ts +6 -6
  476. package/src/util/innerTextTrim.js +5 -5
  477. package/src/util/isArray.d.ts +1 -1
  478. package/src/util/isArray.js +3 -3
  479. package/src/util/isDefined.js +3 -3
  480. package/src/util/isDigit.d.ts +6 -6
  481. package/src/util/isDigit.js +3 -3
  482. package/src/util/isFunction.d.ts +1 -1
  483. package/src/util/isFunction.js +3 -3
  484. package/src/util/isNonEmptyArray.d.ts +1 -1
  485. package/src/util/isNonEmptyArray.js +3 -3
  486. package/src/util/isNumber.d.ts +1 -1
  487. package/src/util/isNumber.js +3 -3
  488. package/src/util/isObject.d.ts +1 -1
  489. package/src/util/isObject.js +3 -3
  490. package/src/util/isPromise.d.ts +1 -1
  491. package/src/util/isPromise.js +6 -6
  492. package/src/util/isString.d.ts +1 -1
  493. package/src/util/isString.js +3 -3
  494. package/src/util/isTextInputElement.d.ts +1 -1
  495. package/src/util/isTextInputElement.js +2 -2
  496. package/src/util/isTouchDevice.d.ts +1 -1
  497. package/src/util/isTouchDevice.js +7 -7
  498. package/src/util/isTouchEvent.d.ts +3 -3
  499. package/src/util/isTouchEvent.js +64 -64
  500. package/src/util/isUndefined.d.ts +1 -1
  501. package/src/util/isUndefined.js +3 -3
  502. package/src/util/onIdleCallback.js +13 -13
  503. package/src/util/parseStyle.d.ts +3 -3
  504. package/src/util/parseStyle.js +27 -27
  505. package/src/util/quote.d.ts +2 -2
  506. package/src/util/quote.js +4 -4
  507. package/src/util/reverseSlice.js +9 -9
  508. package/src/util/routeAppend.js +15 -15
  509. package/src/util/routeAppend.spec.js +19 -19
  510. package/src/util/scrollElementIntoView.d.ts +7 -7
  511. package/src/util/scrollElementIntoView.js +34 -34
  512. package/src/util/scss/add-rules.scss +39 -39
  513. package/src/util/scss/calc.scss +40 -40
  514. package/src/util/scss/call-once.scss +10 -10
  515. package/src/util/scss/clockwise.scss +47 -47
  516. package/src/util/scss/colors.scss +7 -7
  517. package/src/util/scss/deep-get.scss +9 -9
  518. package/src/util/scss/deep-merge.scss +18 -18
  519. package/src/util/scss/include.scss +47 -47
  520. package/src/util/scss/index.scss +9 -9
  521. package/src/util/shallowEquals.js +43 -43
  522. package/src/util/throttle.d.ts +8 -8
  523. package/src/util/throttle.js +14 -14
  524. package/src/util/validatedDebounce.js +19 -19
  525. package/src/variables.scss +217 -217
  526. package/src/widgets/AccessorBindings.spec.tsx +66 -66
  527. package/src/widgets/Button.d.ts +58 -58
  528. package/src/widgets/Button.js +118 -118
  529. package/src/widgets/Button.scss +117 -117
  530. package/src/widgets/CxCredit.d.ts +12 -12
  531. package/src/widgets/CxCredit.js +31 -31
  532. package/src/widgets/CxCredit.scss +41 -41
  533. package/src/widgets/DocumentTitle.d.ts +11 -11
  534. package/src/widgets/DocumentTitle.js +68 -68
  535. package/src/widgets/FlexBox.d.ts +69 -69
  536. package/src/widgets/FlexBox.js +92 -92
  537. package/src/widgets/FlexBox.scss +146 -146
  538. package/src/widgets/Heading.d.ts +16 -16
  539. package/src/widgets/Heading.js +32 -32
  540. package/src/widgets/Heading.scss +38 -38
  541. package/src/widgets/HighlightedSearchText.d.ts +9 -9
  542. package/src/widgets/HighlightedSearchText.js +36 -36
  543. package/src/widgets/HighlightedSearchText.scss +18 -18
  544. package/src/widgets/HtmlElement.d.ts +26 -26
  545. package/src/widgets/HtmlElement.js +273 -273
  546. package/src/widgets/HtmlElement.spec.js +57 -57
  547. package/src/widgets/Icon.d.ts +34 -34
  548. package/src/widgets/Icon.js +50 -50
  549. package/src/widgets/Icon.scss +20 -20
  550. package/src/widgets/List.d.ts +96 -96
  551. package/src/widgets/List.js +587 -587
  552. package/src/widgets/List.scss +92 -92
  553. package/src/widgets/ProgressBar.d.ts +17 -17
  554. package/src/widgets/ProgressBar.js +46 -46
  555. package/src/widgets/ProgressBar.scss +49 -49
  556. package/src/widgets/Resizer.d.ts +27 -27
  557. package/src/widgets/Resizer.js +151 -151
  558. package/src/widgets/Resizer.scss +42 -42
  559. package/src/widgets/Sandbox.d.ts +16 -16
  560. package/src/widgets/Sandbox.js +62 -62
  561. package/src/widgets/Section.d.ts +52 -52
  562. package/src/widgets/Section.js +139 -139
  563. package/src/widgets/Section.scss +54 -54
  564. package/src/widgets/animations.scss +10 -10
  565. package/src/widgets/autoFocus.d.ts +1 -1
  566. package/src/widgets/autoFocus.js +9 -9
  567. package/src/widgets/cx.d.ts +1 -1
  568. package/src/widgets/cx.js +71 -71
  569. package/src/widgets/drag-drop/DragClone.scss +33 -33
  570. package/src/widgets/drag-drop/DragHandle.d.ts +10 -10
  571. package/src/widgets/drag-drop/DragHandle.js +37 -37
  572. package/src/widgets/drag-drop/DragHandle.scss +16 -16
  573. package/src/widgets/drag-drop/DragSource.d.ts +45 -45
  574. package/src/widgets/drag-drop/DragSource.js +160 -160
  575. package/src/widgets/drag-drop/DragSource.scss +24 -24
  576. package/src/widgets/drag-drop/DropZone.d.ts +98 -98
  577. package/src/widgets/drag-drop/DropZone.scss +74 -74
  578. package/src/widgets/drag-drop/index.d.ts +4 -4
  579. package/src/widgets/drag-drop/index.js +4 -4
  580. package/src/widgets/drag-drop/index.scss +3 -3
  581. package/src/widgets/drag-drop/ops.d.ts +56 -56
  582. package/src/widgets/drag-drop/ops.js +344 -344
  583. package/src/widgets/drag-drop/variables.scss +11 -11
  584. package/src/widgets/enableAllInternalDependencies.d.ts +1 -1
  585. package/src/widgets/enableAllInternalDependencies.js +11 -11
  586. package/src/widgets/form/Calendar.d.ts +86 -86
  587. package/src/widgets/form/Calendar.js +145 -55
  588. package/src/widgets/form/Calendar.scss +34 -2
  589. package/src/widgets/form/Calendar.variables.scss +63 -63
  590. package/src/widgets/form/Checkbox.d.ts +43 -43
  591. package/src/widgets/form/Checkbox.js +200 -200
  592. package/src/widgets/form/Checkbox.scss +125 -125
  593. package/src/widgets/form/Checkbox.variables.scss +39 -39
  594. package/src/widgets/form/ColorField.d.ts +43 -43
  595. package/src/widgets/form/ColorField.js +397 -397
  596. package/src/widgets/form/ColorField.scss +92 -92
  597. package/src/widgets/form/ColorPicker.d.ts +23 -23
  598. package/src/widgets/form/ColorPicker.js +480 -480
  599. package/src/widgets/form/ColorPicker.scss +275 -275
  600. package/src/widgets/form/ColorPicker.variables.scss +22 -22
  601. package/src/widgets/form/DateField.d.ts +6 -6
  602. package/src/widgets/form/DateField.js +12 -12
  603. package/src/widgets/form/DateTimeField.d.ts +86 -86
  604. package/src/widgets/form/DateTimeField.js +573 -573
  605. package/src/widgets/form/DateTimeField.scss +90 -90
  606. package/src/widgets/form/DateTimePicker.js +391 -391
  607. package/src/widgets/form/DateTimePicker.scss +44 -44
  608. package/src/widgets/form/Field.d.ts +112 -112
  609. package/src/widgets/form/Field.scss +162 -162
  610. package/src/widgets/form/FieldGroup.d.ts +6 -6
  611. package/src/widgets/form/FieldGroup.js +5 -5
  612. package/src/widgets/form/FieldIcon.js +42 -42
  613. package/src/widgets/form/HelpText.d.ts +10 -10
  614. package/src/widgets/form/HelpText.js +9 -9
  615. package/src/widgets/form/HelpText.scss +23 -23
  616. package/src/widgets/form/Label.d.ts +23 -23
  617. package/src/widgets/form/Label.js +89 -89
  618. package/src/widgets/form/Label.scss +36 -36
  619. package/src/widgets/form/LabeledContainer.d.ts +9 -9
  620. package/src/widgets/form/LabeledContainer.js +59 -59
  621. package/src/widgets/form/LookupField.d.ts +173 -173
  622. package/src/widgets/form/LookupField.scss +219 -219
  623. package/src/widgets/form/MonthField.d.ts +92 -92
  624. package/src/widgets/form/MonthField.js +516 -516
  625. package/src/widgets/form/MonthField.scss +99 -99
  626. package/src/widgets/form/MonthPicker.d.ts +74 -74
  627. package/src/widgets/form/MonthPicker.js +632 -632
  628. package/src/widgets/form/MonthPicker.scss +120 -120
  629. package/src/widgets/form/NumberField.d.ts +96 -96
  630. package/src/widgets/form/NumberField.js +459 -459
  631. package/src/widgets/form/NumberField.scss +65 -65
  632. package/src/widgets/form/Radio.d.ts +37 -37
  633. package/src/widgets/form/Radio.js +188 -188
  634. package/src/widgets/form/Radio.scss +122 -122
  635. package/src/widgets/form/Radio.variables.scss +45 -45
  636. package/src/widgets/form/Select.d.ts +69 -69
  637. package/src/widgets/form/Select.js +269 -269
  638. package/src/widgets/form/Select.scss +98 -98
  639. package/src/widgets/form/Slider.d.ts +65 -65
  640. package/src/widgets/form/Slider.js +351 -351
  641. package/src/widgets/form/Slider.scss +119 -119
  642. package/src/widgets/form/Switch.d.ts +38 -38
  643. package/src/widgets/form/Switch.js +118 -118
  644. package/src/widgets/form/Switch.scss +140 -140
  645. package/src/widgets/form/TextArea.d.ts +17 -17
  646. package/src/widgets/form/TextArea.js +186 -186
  647. package/src/widgets/form/TextArea.scss +60 -60
  648. package/src/widgets/form/TextField.d.ts +78 -78
  649. package/src/widgets/form/TextField.js +288 -288
  650. package/src/widgets/form/TextField.scss +55 -55
  651. package/src/widgets/form/TimeField.d.ts +6 -6
  652. package/src/widgets/form/TimeField.js +11 -11
  653. package/src/widgets/form/TimeList.js +84 -84
  654. package/src/widgets/form/UploadButton.js +213 -213
  655. package/src/widgets/form/UploadButton.scss +47 -47
  656. package/src/widgets/form/ValidationError.d.ts +10 -10
  657. package/src/widgets/form/ValidationError.js +44 -44
  658. package/src/widgets/form/ValidationError.scss +21 -21
  659. package/src/widgets/form/ValidationGroup.d.ts +41 -41
  660. package/src/widgets/form/ValidationGroup.js +68 -68
  661. package/src/widgets/form/ValidationGroup.spec.js +148 -148
  662. package/src/widgets/form/Validator.d.ts +8 -8
  663. package/src/widgets/form/Validator.js +21 -21
  664. package/src/widgets/form/Wheel.js +261 -261
  665. package/src/widgets/form/Wheel.scss +150 -150
  666. package/src/widgets/form/index.d.ts +26 -26
  667. package/src/widgets/form/index.js +28 -28
  668. package/src/widgets/form/index.scss +24 -24
  669. package/src/widgets/form/variables.scss +352 -352
  670. package/src/widgets/grid/Grid.d.ts +1 -0
  671. package/src/widgets/grid/Grid.js +5 -3
  672. package/src/widgets/grid/Grid.scss +680 -680
  673. package/src/widgets/grid/GridCell.d.ts +38 -38
  674. package/src/widgets/grid/GridCell.js +71 -71
  675. package/src/widgets/grid/GridCellEditor.js +41 -41
  676. package/src/widgets/grid/GridRow.js +228 -228
  677. package/src/widgets/grid/GridRowLine.js +24 -24
  678. package/src/widgets/grid/Pagination.d.ts +14 -14
  679. package/src/widgets/grid/Pagination.js +94 -94
  680. package/src/widgets/grid/Pagination.scss +113 -113
  681. package/src/widgets/grid/TreeNode.d.ts +25 -25
  682. package/src/widgets/grid/TreeNode.js +102 -102
  683. package/src/widgets/grid/TreeNode.scss +89 -89
  684. package/src/widgets/grid/index.d.ts +3 -3
  685. package/src/widgets/grid/index.js +14 -14
  686. package/src/widgets/grid/index.scss +3 -3
  687. package/src/widgets/icons/arrow-down.svg +3 -3
  688. package/src/widgets/icons/arrow-right.svg +2 -2
  689. package/src/widgets/icons/base.svg +104 -104
  690. package/src/widgets/icons/calendar-old.svg +169 -169
  691. package/src/widgets/icons/calendar.js +16 -16
  692. package/src/widgets/icons/calendar.svg +187 -187
  693. package/src/widgets/icons/check.js +12 -12
  694. package/src/widgets/icons/clear.js +14 -14
  695. package/src/widgets/icons/clear.svg +74 -74
  696. package/src/widgets/icons/close.js +19 -19
  697. package/src/widgets/icons/close.svg +74 -74
  698. package/src/widgets/icons/cx.js +37 -37
  699. package/src/widgets/icons/drop-down.js +14 -14
  700. package/src/widgets/icons/dropdown-arrow.svg +61 -61
  701. package/src/widgets/icons/file.js +12 -12
  702. package/src/widgets/icons/file.svg +4 -4
  703. package/src/widgets/icons/folder-open.js +14 -14
  704. package/src/widgets/icons/folder-open.svg +5 -5
  705. package/src/widgets/icons/folder.js +12 -12
  706. package/src/widgets/icons/folder.svg +58 -58
  707. package/src/widgets/icons/forward.js +21 -21
  708. package/src/widgets/icons/forward.svg +67 -67
  709. package/src/widgets/icons/index.js +14 -14
  710. package/src/widgets/icons/loading.js +23 -23
  711. package/src/widgets/icons/loading.svg +4 -4
  712. package/src/widgets/icons/menu.js +16 -16
  713. package/src/widgets/icons/pixel-picker.js +17 -17
  714. package/src/widgets/icons/registry.js +53 -53
  715. package/src/widgets/icons/search.js +12 -12
  716. package/src/widgets/icons/search.svg +107 -107
  717. package/src/widgets/icons/sort-asc.js +13 -13
  718. package/src/widgets/icons/sort-asc.svg +3 -3
  719. package/src/widgets/icons/square.js +17 -17
  720. package/src/widgets/index.d.ts +55 -55
  721. package/src/widgets/index.js +57 -57
  722. package/src/widgets/index.scss +16 -16
  723. package/src/widgets/nav/Link.d.ts +26 -26
  724. package/src/widgets/nav/Link.js +7 -7
  725. package/src/widgets/nav/Link.scss +18 -18
  726. package/src/widgets/nav/LinkButton.d.ts +31 -31
  727. package/src/widgets/nav/Menu.d.ts +27 -27
  728. package/src/widgets/nav/Menu.js +406 -406
  729. package/src/widgets/nav/Menu.scss +74 -74
  730. package/src/widgets/nav/MenuItem.d.ts +31 -31
  731. package/src/widgets/nav/MenuItem.js +445 -445
  732. package/src/widgets/nav/MenuSpacer.d.ts +5 -5
  733. package/src/widgets/nav/MenuSpacer.js +12 -12
  734. package/src/widgets/nav/RedirectRoute.d.ts +9 -9
  735. package/src/widgets/nav/RedirectRoute.js +40 -40
  736. package/src/widgets/nav/Route.d.ts +21 -21
  737. package/src/widgets/nav/Route.js +105 -105
  738. package/src/widgets/nav/Route.spec.js +27 -27
  739. package/src/widgets/nav/Scroller.d.ts +17 -17
  740. package/src/widgets/nav/Scroller.js +214 -214
  741. package/src/widgets/nav/Scroller.scss +146 -146
  742. package/src/widgets/nav/Submenu.d.ts +6 -6
  743. package/src/widgets/nav/Submenu.js +6 -6
  744. package/src/widgets/nav/Tab.d.ts +33 -33
  745. package/src/widgets/nav/Tab.js +82 -82
  746. package/src/widgets/nav/Tab.scss +81 -81
  747. package/src/widgets/nav/cover.scss +21 -21
  748. package/src/widgets/nav/index.d.ts +10 -10
  749. package/src/widgets/nav/index.js +10 -10
  750. package/src/widgets/nav/index.scss +5 -5
  751. package/src/widgets/nav/variables.scss +25 -25
  752. package/src/widgets/overlay/ContextMenu.d.ts +10 -10
  753. package/src/widgets/overlay/ContextMenu.js +29 -29
  754. package/src/widgets/overlay/Dropdown.d.ts +32 -32
  755. package/src/widgets/overlay/Dropdown.js +612 -612
  756. package/src/widgets/overlay/Dropdown.scss +184 -184
  757. package/src/widgets/overlay/FlyweightTooltipTracker.d.ts +8 -8
  758. package/src/widgets/overlay/FlyweightTooltipTracker.js +36 -36
  759. package/src/widgets/overlay/MsgBox.d.ts +16 -16
  760. package/src/widgets/overlay/MsgBox.js +116 -116
  761. package/src/widgets/overlay/Overlay.d.ts +69 -69
  762. package/src/widgets/overlay/Overlay.js +747 -747
  763. package/src/widgets/overlay/Overlay.scss +66 -66
  764. package/src/widgets/overlay/Toast.d.ts +30 -30
  765. package/src/widgets/overlay/Toast.js +92 -92
  766. package/src/widgets/overlay/Toast.scss +162 -162
  767. package/src/widgets/overlay/Tooltip.d.ts +50 -50
  768. package/src/widgets/overlay/Tooltip.js +288 -288
  769. package/src/widgets/overlay/Tooltip.scss +175 -175
  770. package/src/widgets/overlay/alerts.d.ts +7 -7
  771. package/src/widgets/overlay/alerts.js +39 -39
  772. package/src/widgets/overlay/captureMouse.d.ts +53 -53
  773. package/src/widgets/overlay/captureMouse.js +124 -124
  774. package/src/widgets/overlay/captureMouse.scss +13 -13
  775. package/src/widgets/overlay/index.d.ts +10 -10
  776. package/src/widgets/overlay/index.js +10 -10
  777. package/src/widgets/overlay/index.scss +15 -15
  778. package/src/widgets/overlay/tooltip-ops.d.ts +8 -8
  779. package/src/widgets/overlay/tooltip-ops.js +24 -24
  780. package/src/widgets/variables.scss +144 -144
package/dist/widgets.css CHANGED
@@ -1049,6 +1049,7 @@
1049
1049
  display: inline-block;
1050
1050
  vertical-align: middle;
1051
1051
  width: 18em;
1052
+ overflow-y: auto;
1052
1053
  box-sizing: border-box;
1053
1054
  }
1054
1055
  .cxb-calendar:focus {
@@ -1116,8 +1117,8 @@
1116
1117
  .cxb-calendar:not(.cxs-disabled) td {
1117
1118
  cursor: pointer;
1118
1119
  }
1119
- .cxb-calendar td:first-child,
1120
- .cxb-calendar td:last-child {
1120
+ .cxb-calendar td:not(.cxe-calendar-year-option):first-child,
1121
+ .cxb-calendar td:not(.cxe-calendar-year-option):last-child {
1121
1122
  display: none;
1122
1123
  pointer-events: none;
1123
1124
  }
@@ -1145,6 +1146,34 @@
1145
1146
  user-select: none;
1146
1147
  }
1147
1148
 
1149
+ .cxe-calendar-year-name {
1150
+ cursor: pointer;
1151
+ }
1152
+ .cxe-calendar-year-picker {
1153
+ user-select: none;
1154
+ overflow-y: scroll;
1155
+ width: 100%;
1156
+ max-height: 24em;
1157
+ height: auto;
1158
+ }
1159
+ .cxe-calendar-year-option {
1160
+ cursor: pointer;
1161
+ font-size: 13px;
1162
+ background-color: transparent;
1163
+ border-radius: 0;
1164
+ }
1165
+ .cxe-calendar-year-option.cxs-active {
1166
+ background-color: rgba(220, 250, 183, 0.5);
1167
+ }
1168
+ .cxe-calendar-year-option:hover {
1169
+ background-color: rgba(128, 128, 128, 0.1);
1170
+ outline: none;
1171
+ cursor: pointer;
1172
+ }
1173
+ .cxe-calendar-year-option.cxs-selected {
1174
+ background-color: rgba(123, 190, 255, 0.4);
1175
+ }
1176
+
1148
1177
  .cxe-calendar-icon-prev-year {
1149
1178
  transform: rotate(180deg);
1150
1179
  }
package/dist/widgets.js CHANGED
@@ -8101,6 +8101,7 @@ var CalendarCmp = /*#__PURE__*/ (function (_VDOM$Component) {
8101
8101
  hover: false,
8102
8102
  focus: false,
8103
8103
  cursor: zeroTime(data.date || refDate),
8104
+ activeView: "calendar",
8104
8105
  },
8105
8106
  _this2.getPage(refDate),
8106
8107
  );
@@ -8269,9 +8270,13 @@ var CalendarCmp = /*#__PURE__*/ (function (_VDOM$Component) {
8269
8270
  this.props.handleSelect(e, readDate(e.target.dataset));
8270
8271
  };
8271
8272
  _proto2.componentDidMount = function componentDidMount() {
8273
+ var _this3 = this;
8272
8274
  //calendar doesn't bring up keyboard so it's ok to focus it even on mobile
8273
8275
  if (this.props.instance.widget.autoFocus) this.el.focus();
8274
8276
  tooltipParentDidMount$1.apply(void 0, [this.el].concat(getFieldTooltip(this.props.instance)));
8277
+ this.el.addEventListener("wheel", function (e) {
8278
+ return _this3.handleWheel(e);
8279
+ });
8275
8280
  };
8276
8281
  _proto2.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(props) {
8277
8282
  var data = props.instance.data;
@@ -8287,11 +8292,99 @@ var CalendarCmp = /*#__PURE__*/ (function (_VDOM$Component) {
8287
8292
  offFocusOut(this);
8288
8293
  tooltipParentWillUnmount$1(this.props.instance);
8289
8294
  };
8290
- _proto2.render = function render() {
8291
- var _this3 = this;
8295
+ _proto2.showYearDropdown = function showYearDropdown() {
8296
+ this.setState({
8297
+ activeView: "year-picker",
8298
+ yearPickerHeight: this.el.firstChild.offsetHeight,
8299
+ });
8300
+ };
8301
+ _proto2.handleYearSelect = function handleYearSelect(e, year) {
8302
+ e.preventDefault();
8303
+ e.stopPropagation();
8304
+ var refDate = new Date(this.state.refDate);
8305
+ refDate.setFullYear(year);
8306
+ this.setState(
8307
+ _extends({}, this.getPage(refDate), {
8308
+ refDate: refDate,
8309
+ activeView: "calendar",
8310
+ }),
8311
+ );
8312
+ };
8313
+ _proto2.renderYearPicker = function renderYearPicker() {
8314
+ var _data$minValue,
8315
+ _data$maxValue,
8316
+ _this4 = this;
8292
8317
  var _this$props$instance = this.props.instance,
8293
8318
  data = _this$props$instance.data,
8294
8319
  widget = _this$props$instance.widget;
8320
+ var minYear = (_data$minValue = data.minValue) == null ? void 0 : _data$minValue.getFullYear();
8321
+ var maxYear = (_data$maxValue = data.maxValue) == null ? void 0 : _data$maxValue.getFullYear();
8322
+ var CSS = this.props.instance.widget.CSS;
8323
+ var years = [];
8324
+ var currentYear = new Date().getFullYear();
8325
+ var midYear = currentYear - (currentYear % 5);
8326
+ var refYear = new Date(this.state.refDate).getFullYear();
8327
+ for (var i = midYear - 100; i <= midYear + 100; i++) {
8328
+ years.push(i);
8329
+ }
8330
+ var rows = [];
8331
+ for (var _i = 0; _i < years.length; _i += 5) {
8332
+ rows.push(years.slice(_i, _i + 5));
8333
+ }
8334
+ return /*#__PURE__*/ jsx("div", {
8335
+ className: CSS.element(widget.baseClass, "year-picker"),
8336
+ style: {
8337
+ height: this.state.yearPickerHeight,
8338
+ },
8339
+ ref: function ref(el) {
8340
+ if (el) {
8341
+ el.addEventListener("wheel", function (e) {
8342
+ e.stopPropagation();
8343
+ });
8344
+ var activeYear = el.querySelector("." + CSS.state("selected"));
8345
+ if (activeYear)
8346
+ activeYear.scrollIntoView({
8347
+ block: "center",
8348
+ behavior: "instant",
8349
+ });
8350
+ }
8351
+ },
8352
+ children: /*#__PURE__*/ jsx("table", {
8353
+ children: /*#__PURE__*/ jsx("tbody", {
8354
+ children: rows.map(function (row, rowIndex) {
8355
+ return /*#__PURE__*/ jsx(
8356
+ "tr",
8357
+ {
8358
+ children: row.map(function (year) {
8359
+ return /*#__PURE__*/ jsx(
8360
+ "td",
8361
+ {
8362
+ className: CSS.element(_this4.props.instance.widget.baseClass, "year-option", {
8363
+ unselectable: (minYear && year < minYear) || (maxYear && year > maxYear),
8364
+ selected: year === refYear,
8365
+ active: year === currentYear,
8366
+ }),
8367
+ onClick: function onClick(e) {
8368
+ return _this4.handleYearSelect(e, year);
8369
+ },
8370
+ children: year,
8371
+ },
8372
+ year,
8373
+ );
8374
+ }),
8375
+ },
8376
+ rowIndex,
8377
+ );
8378
+ }),
8379
+ }),
8380
+ }),
8381
+ });
8382
+ };
8383
+ _proto2.render = function render() {
8384
+ var _this5 = this;
8385
+ var _this$props$instance2 = this.props.instance,
8386
+ data = _this$props$instance2.data,
8387
+ widget = _this$props$instance2.widget;
8295
8388
  var CSS = widget.CSS,
8296
8389
  baseClass = widget.baseClass,
8297
8390
  disabledDaysOfWeek = widget.disabledDaysOfWeek,
@@ -8362,7 +8455,7 @@ var CalendarCmp = /*#__PURE__*/ (function (_VDOM$Component) {
8362
8455
  className: data.classNames,
8363
8456
  tabIndex: data.disabled || !data.focusable ? null : data.tabIndex || 0,
8364
8457
  onKeyDown: function onKeyDown(e) {
8365
- return _this3.handleKeyPress(e);
8458
+ return _this5.handleKeyPress(e);
8366
8459
  },
8367
8460
  onMouseDown: function onMouseDown(e) {
8368
8461
  // prevent losing focus from the input field
@@ -8372,107 +8465,117 @@ var CalendarCmp = /*#__PURE__*/ (function (_VDOM$Component) {
8372
8465
  e.stopPropagation();
8373
8466
  },
8374
8467
  ref: function ref(el) {
8375
- _this3.el = el;
8468
+ _this5.el = el;
8376
8469
  },
8377
8470
  onMouseMove: function onMouseMove(e) {
8378
- return tooltipMouseMove$1.apply(void 0, [e].concat(getFieldTooltip(_this3.props.instance)));
8471
+ return tooltipMouseMove$1.apply(void 0, [e].concat(getFieldTooltip(_this5.props.instance)));
8379
8472
  },
8380
8473
  onMouseLeave: function onMouseLeave(e) {
8381
- return _this3.handleMouseLeave(e);
8474
+ return _this5.handleMouseLeave(e);
8382
8475
  },
8383
8476
  onMouseEnter: function onMouseEnter(e) {
8384
- return _this3.handleMouseEnter(e);
8385
- },
8386
- onWheel: function onWheel(e) {
8387
- return _this3.handleWheel(e);
8477
+ return _this5.handleMouseEnter(e);
8388
8478
  },
8479
+ // onWheel={(e) => this.handleWheel(e)}
8389
8480
  onFocus: function onFocus(e) {
8390
- return _this3.handleFocus(e);
8481
+ return _this5.handleFocus(e);
8391
8482
  },
8392
8483
  onBlur: function onBlur(e) {
8393
- return _this3.handleBlur(e);
8484
+ return _this5.handleBlur(e);
8394
8485
  },
8395
8486
  children: [
8396
- /*#__PURE__*/ jsxs("table", {
8397
- children: [
8398
- /*#__PURE__*/ jsxs("thead", {
8399
- children: [
8400
- /*#__PURE__*/ jsxs(
8401
- "tr",
8402
- {
8403
- className: CSS.element(baseClass, "header"),
8404
- children: [
8405
- /*#__PURE__*/ jsx("td", {}),
8406
- /*#__PURE__*/ jsx("td", {
8407
- onClick: function onClick(e) {
8408
- return _this3.move(e, "y", -1);
8409
- },
8410
- children: /*#__PURE__*/ jsx(ForwardIcon, {
8411
- className: CSS.element(baseClass, "icon-prev-year"),
8487
+ this.state.activeView == "calendar" &&
8488
+ /*#__PURE__*/ jsxs("table", {
8489
+ children: [
8490
+ /*#__PURE__*/ jsxs("thead", {
8491
+ children: [
8492
+ /*#__PURE__*/ jsxs(
8493
+ "tr",
8494
+ {
8495
+ className: CSS.element(baseClass, "header"),
8496
+ children: [
8497
+ /*#__PURE__*/ jsx("td", {}),
8498
+ /*#__PURE__*/ jsx("td", {
8499
+ onClick: function onClick(e) {
8500
+ return _this5.move(e, "y", -1);
8501
+ },
8502
+ children: /*#__PURE__*/ jsx(ForwardIcon, {
8503
+ className: CSS.element(baseClass, "icon-prev-year"),
8504
+ }),
8412
8505
  }),
8413
- }),
8414
- /*#__PURE__*/ jsx("td", {
8415
- onClick: function onClick(e) {
8416
- return _this3.move(e, "m", -1);
8417
- },
8418
- children: /*#__PURE__*/ jsx(DropdownIcon, {
8419
- className: CSS.element(baseClass, "icon-prev-month"),
8506
+ /*#__PURE__*/ jsx("td", {
8507
+ onClick: function onClick(e) {
8508
+ return _this5.move(e, "m", -1);
8509
+ },
8510
+ children: /*#__PURE__*/ jsx(DropdownIcon, {
8511
+ className: CSS.element(baseClass, "icon-prev-month"),
8512
+ }),
8420
8513
  }),
8421
- }),
8422
- /*#__PURE__*/ jsxs("th", {
8423
- className: CSS.element(baseClass, "display"),
8424
- colSpan: "3",
8425
- children: [monthNames[month], /*#__PURE__*/ jsx("br", {}), year],
8426
- }),
8427
- /*#__PURE__*/ jsx("td", {
8428
- onClick: function onClick(e) {
8429
- return _this3.move(e, "m", +1);
8430
- },
8431
- children: /*#__PURE__*/ jsx(DropdownIcon, {
8432
- className: CSS.element(baseClass, "icon-next-month"),
8514
+ /*#__PURE__*/ jsxs("th", {
8515
+ className: CSS.element(baseClass, "display"),
8516
+ colSpan: "3",
8517
+ children: [
8518
+ monthNames[month],
8519
+ /*#__PURE__*/ jsx("br", {}),
8520
+ /*#__PURE__*/ jsx("span", {
8521
+ onClick: function onClick() {
8522
+ return _this5.showYearDropdown();
8523
+ },
8524
+ className: CSS.element(baseClass, "year-name"),
8525
+ children: year,
8526
+ }),
8527
+ ],
8433
8528
  }),
8434
- }),
8435
- /*#__PURE__*/ jsx("td", {
8436
- onClick: function onClick(e) {
8437
- return _this3.move(e, "y", +1);
8438
- },
8439
- children: /*#__PURE__*/ jsx(ForwardIcon, {
8440
- className: CSS.element(baseClass, "icon-next-year"),
8529
+ /*#__PURE__*/ jsx("td", {
8530
+ onClick: function onClick(e) {
8531
+ return _this5.move(e, "m", +1);
8532
+ },
8533
+ children: /*#__PURE__*/ jsx(DropdownIcon, {
8534
+ className: CSS.element(baseClass, "icon-next-month"),
8535
+ }),
8441
8536
  }),
8442
- }),
8443
- /*#__PURE__*/ jsx("td", {}),
8444
- ],
8445
- },
8446
- "h",
8447
- ),
8448
- /*#__PURE__*/ jsxs(
8449
- "tr",
8450
- {
8451
- className: CSS.element(baseClass, "day-names"),
8452
- children: [
8453
- /*#__PURE__*/ jsx("td", {}),
8454
- dayNames.map(function (name, i) {
8455
- return /*#__PURE__*/ jsx(
8456
- "th",
8457
- {
8458
- children: name,
8537
+ /*#__PURE__*/ jsx("td", {
8538
+ onClick: function onClick(e) {
8539
+ return _this5.move(e, "y", +1);
8459
8540
  },
8460
- i,
8461
- );
8462
- }),
8463
- /*#__PURE__*/ jsx("td", {}),
8464
- ],
8465
- },
8466
- "d",
8467
- ),
8468
- ],
8469
- }),
8470
- /*#__PURE__*/ jsx("tbody", {
8471
- children: weeks,
8472
- }),
8473
- ],
8474
- }),
8475
- widget.showTodayButton &&
8541
+ children: /*#__PURE__*/ jsx(ForwardIcon, {
8542
+ className: CSS.element(baseClass, "icon-next-year"),
8543
+ }),
8544
+ }),
8545
+ /*#__PURE__*/ jsx("td", {}),
8546
+ ],
8547
+ },
8548
+ "h",
8549
+ ),
8550
+ /*#__PURE__*/ jsxs(
8551
+ "tr",
8552
+ {
8553
+ className: CSS.element(baseClass, "day-names"),
8554
+ children: [
8555
+ /*#__PURE__*/ jsx("td", {}),
8556
+ dayNames.map(function (name, i) {
8557
+ return /*#__PURE__*/ jsx(
8558
+ "th",
8559
+ {
8560
+ children: name,
8561
+ },
8562
+ i,
8563
+ );
8564
+ }),
8565
+ /*#__PURE__*/ jsx("td", {}),
8566
+ ],
8567
+ },
8568
+ "d",
8569
+ ),
8570
+ ],
8571
+ }),
8572
+ /*#__PURE__*/ jsx("tbody", {
8573
+ children: weeks,
8574
+ }),
8575
+ ],
8576
+ }),
8577
+ this.state.activeView == "calendar" &&
8578
+ widget.showTodayButton &&
8476
8579
  /*#__PURE__*/ jsx("div", {
8477
8580
  className: CSS.element(baseClass, "toolbar"),
8478
8581
  children: /*#__PURE__*/ jsx("button", {
@@ -8481,11 +8584,12 @@ var CalendarCmp = /*#__PURE__*/ (function (_VDOM$Component) {
8481
8584
  "data-month": today.getMonth() + 1,
8482
8585
  "data-date": today.getDate(),
8483
8586
  onClick: function onClick(e) {
8484
- _this3.handleMouseDown(e);
8587
+ _this5.handleMouseDown(e);
8485
8588
  },
8486
8589
  children: widget.todayButtonText,
8487
8590
  }),
8488
8591
  }),
8592
+ this.state.activeView == "year-picker" && this.renderYearPicker(),
8489
8593
  ],
8490
8594
  });
8491
8595
  };
@@ -16132,14 +16236,16 @@ var Grid = /*#__PURE__*/ (function (_Container) {
16132
16236
  var comparer = column.comparer;
16133
16237
  var sortOptions = column.sortOptions;
16134
16238
  if (header && header.allowSorting && column.sortable && (field || value || data.sortField)) {
16135
- var direction = "ASC";
16239
+ var _column$primarySortDi;
16240
+ var direction = (_column$primarySortDi = column.primarySortDirection) != null ? _column$primarySortDi : "ASC";
16136
16241
  if (
16137
16242
  isNonEmptyArray(data.sorters) &&
16138
16243
  ((!!data.sorters[0].field && data.sorters[0].field == (field || data.sortField)) ||
16139
16244
  (!!value && data.sorters[0].value == value))
16140
16245
  ) {
16141
- if (data.sorters[0].direction == "ASC") direction = "DESC";
16142
- else if (this.clearableSort && data.sorters[0].direction == "DESC") direction = null;
16246
+ if (data.sorters[0].direction == "ASC" && (!this.clearableSort || direction == "ASC")) direction = "DESC";
16247
+ else if (data.sorters[0].direction == "DESC" && (!this.clearableSort || direction == "DESC")) direction = "ASC";
16248
+ else direction = null;
16143
16249
  }
16144
16250
  var sorters = direction
16145
16251
  ? [
package/index.js CHANGED
@@ -1,17 +1,17 @@
1
- import * as util from './util';
2
- import * as data from './data';
3
- import * as ui from './ui';
4
- import * as widgets from './widgets';
5
- import * as svg from './svg';
6
- import * as charts from './charts';
7
- import * as hooks from './hooks';
8
-
9
- export {
10
- util,
11
- data,
12
- ui,
13
- widgets,
14
- svg,
15
- charts,
16
- hooks
17
- };
1
+ import * as util from './util';
2
+ import * as data from './data';
3
+ import * as ui from './ui';
4
+ import * as widgets from './widgets';
5
+ import * as svg from './svg';
6
+ import * as charts from './charts';
7
+ import * as hooks from './hooks';
8
+
9
+ export {
10
+ util,
11
+ data,
12
+ ui,
13
+ widgets,
14
+ svg,
15
+ charts,
16
+ hooks
17
+ };
package/locale/de-de.js CHANGED
@@ -1,75 +1,75 @@
1
- import { Localization } from 'cx/ui';
2
-
3
- var c = 'de-de';
4
-
5
- // Field
6
- Localization.localize(c, 'cx/widgets/Field', {
7
- requiredText: 'Dieses Feld wird benötigt.',
8
- validatingText: 'Wird validiert...',
9
- validationExceptionText: 'Bei der Eingabevalidierung ist ein Fehler aufgetreten. Überprüfen Sie das Log für weitere Details.'
10
- });
11
-
12
- // LookupField
13
- Localization.localize(c, 'cx/widgets/LookupField', {
14
- loadingText: 'Wird geladen...',
15
- queryErrorText: 'Bei der Abfrage der gesuchten Daten ist ein Felhler aufgetreten.',
16
- noResultsText: 'Keine Ergebnisse gefunden.',
17
- minQueryLengthMessageText: 'Geben Sie mindestens {0} Zeichen ein.'
18
- });
19
-
20
- // In common for Calendar and MonthPicker
21
- const calendarErrorMessages = {
22
- maxValueErrorText: 'Wählen Sie {0:d} oder vorher.',
23
- maxExclusiveErrorText: 'Wählen Sie ein Datum vor dem {0:d}.',
24
- minValueErrorText: 'Wählen Sie {0:d} oder später.',
25
- minExclusiveErrorText: 'Wählen Sie ein Datum nach dem {0:d}.',
26
- };
27
-
28
- // Calendar
29
- Localization.localize(c, 'cx/widgets/Calendar', {
30
- ...calendarErrorMessages,
31
- todayButtonText: 'Heute',
32
- startWithMonday: true
33
- });
34
-
35
- // MonthPicker
36
- Localization.localize(c, 'cx/widgets/MonthPicker', calendarErrorMessages);
37
-
38
- // In common for DateField and MonthField
39
- const dateFieldErrorMessages = {
40
- ...calendarErrorMessages,
41
- inputErrorText: 'Ungültiges Datum eingegeben.'
42
- };
43
-
44
- // MonthField
45
- Localization.localize(c, 'cx/widgets/MonthField', dateFieldErrorMessages);
46
-
47
- // DateField
48
- Localization.localize(c, 'cx/widgets/DateField', dateFieldErrorMessages);
49
-
50
- // NumberField
51
- Localization.localize(c, 'cx/widgets/NumberField', {
52
- maxValueErrorText: 'Geben Sie {0} oder weniger ein.',
53
- maxExclusiveErrorText: 'Geben Sie eine Zahl kleiner als {0} ein.',
54
- minValueErrorText: 'Geben Sie {0} oder mehr ein.',
55
- minExclusiveErrorText: 'Geben Sie eine Zahl größer als {0} ein.',
56
- inputErrorText: 'Ungültige Zahl eingegeben.'
57
- });
58
-
59
- // TextField
60
- Localization.localize(c, 'cx/widgets/TextField', {
61
- validationErrorText: 'Ungültige Eingabe.',
62
- minLengthValidationErrorText: 'Bitte tragen Sie noch {[{0}-{1}]} Zeichen ein.',
63
- maxLengthValidationErrorText: 'Benutzen Sie {0} oder weniger Zeichen.'
64
- });
65
-
66
- // UploadButton
67
- Localization.localize(c, 'cx/widgets/UploadButton', {
68
- validationErrorText: 'Wird hochgeladen...'
69
- });
70
-
71
- // MsgBox
72
- Localization.localize(c, 'cx/widgets/MsgBox', {
73
- yesText: "Ja",
74
- noText: "Nein"
1
+ import { Localization } from 'cx/ui';
2
+
3
+ var c = 'de-de';
4
+
5
+ // Field
6
+ Localization.localize(c, 'cx/widgets/Field', {
7
+ requiredText: 'Dieses Feld wird benötigt.',
8
+ validatingText: 'Wird validiert...',
9
+ validationExceptionText: 'Bei der Eingabevalidierung ist ein Fehler aufgetreten. Überprüfen Sie das Log für weitere Details.'
10
+ });
11
+
12
+ // LookupField
13
+ Localization.localize(c, 'cx/widgets/LookupField', {
14
+ loadingText: 'Wird geladen...',
15
+ queryErrorText: 'Bei der Abfrage der gesuchten Daten ist ein Felhler aufgetreten.',
16
+ noResultsText: 'Keine Ergebnisse gefunden.',
17
+ minQueryLengthMessageText: 'Geben Sie mindestens {0} Zeichen ein.'
18
+ });
19
+
20
+ // In common for Calendar and MonthPicker
21
+ const calendarErrorMessages = {
22
+ maxValueErrorText: 'Wählen Sie {0:d} oder vorher.',
23
+ maxExclusiveErrorText: 'Wählen Sie ein Datum vor dem {0:d}.',
24
+ minValueErrorText: 'Wählen Sie {0:d} oder später.',
25
+ minExclusiveErrorText: 'Wählen Sie ein Datum nach dem {0:d}.',
26
+ };
27
+
28
+ // Calendar
29
+ Localization.localize(c, 'cx/widgets/Calendar', {
30
+ ...calendarErrorMessages,
31
+ todayButtonText: 'Heute',
32
+ startWithMonday: true
33
+ });
34
+
35
+ // MonthPicker
36
+ Localization.localize(c, 'cx/widgets/MonthPicker', calendarErrorMessages);
37
+
38
+ // In common for DateField and MonthField
39
+ const dateFieldErrorMessages = {
40
+ ...calendarErrorMessages,
41
+ inputErrorText: 'Ungültiges Datum eingegeben.'
42
+ };
43
+
44
+ // MonthField
45
+ Localization.localize(c, 'cx/widgets/MonthField', dateFieldErrorMessages);
46
+
47
+ // DateField
48
+ Localization.localize(c, 'cx/widgets/DateField', dateFieldErrorMessages);
49
+
50
+ // NumberField
51
+ Localization.localize(c, 'cx/widgets/NumberField', {
52
+ maxValueErrorText: 'Geben Sie {0} oder weniger ein.',
53
+ maxExclusiveErrorText: 'Geben Sie eine Zahl kleiner als {0} ein.',
54
+ minValueErrorText: 'Geben Sie {0} oder mehr ein.',
55
+ minExclusiveErrorText: 'Geben Sie eine Zahl größer als {0} ein.',
56
+ inputErrorText: 'Ungültige Zahl eingegeben.'
57
+ });
58
+
59
+ // TextField
60
+ Localization.localize(c, 'cx/widgets/TextField', {
61
+ validationErrorText: 'Ungültige Eingabe.',
62
+ minLengthValidationErrorText: 'Bitte tragen Sie noch {[{0}-{1}]} Zeichen ein.',
63
+ maxLengthValidationErrorText: 'Benutzen Sie {0} oder weniger Zeichen.'
64
+ });
65
+
66
+ // UploadButton
67
+ Localization.localize(c, 'cx/widgets/UploadButton', {
68
+ validationErrorText: 'Wird hochgeladen...'
69
+ });
70
+
71
+ // MsgBox
72
+ Localization.localize(c, 'cx/widgets/MsgBox', {
73
+ yesText: "Ja",
74
+ noText: "Nein"
75
75
  });