cx 24.8.7 → 24.9.0

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 (751) hide show
  1. package/LICENSE-THIRD-PARTY.md +91 -91
  2. package/LICENSE.md +7 -7
  3. package/README.md +46 -46
  4. package/dist/charts.js +22 -25
  5. package/dist/data.js +26 -29
  6. package/dist/manifest.js +732 -732
  7. package/dist/svg.js +59 -56
  8. package/dist/ui.js +62 -54
  9. package/dist/widgets.css +69 -64
  10. package/dist/widgets.js +61 -56
  11. package/index.js +17 -17
  12. package/locale/de-de.js +74 -74
  13. package/locale/en-us.js +74 -74
  14. package/locale/es-es.js +74 -74
  15. package/locale/fr-fr.js +74 -74
  16. package/locale/nl-nl.js +74 -74
  17. package/locale/pt-pt.js +74 -74
  18. package/locale/sr-latn-ba.js +74 -74
  19. package/package.json +32 -32
  20. package/src/charts/Bar.js +89 -89
  21. package/src/charts/Bar.scss +26 -26
  22. package/src/charts/BarGraph.d.ts +15 -15
  23. package/src/charts/BarGraph.js +112 -112
  24. package/src/charts/BarGraph.scss +27 -27
  25. package/src/charts/BubbleGraph.js +92 -92
  26. package/src/charts/BubbleGraph.scss +29 -29
  27. package/src/charts/Chart.d.ts +12 -12
  28. package/src/charts/Chart.js +75 -75
  29. package/src/charts/ColorMap.d.ts +21 -21
  30. package/src/charts/ColorMap.js +96 -96
  31. package/src/charts/Column.scss +26 -26
  32. package/src/charts/ColumnBarBase.d.ts +64 -64
  33. package/src/charts/ColumnBarGraphBase.d.ts +73 -73
  34. package/src/charts/ColumnBarGraphBase.js +114 -114
  35. package/src/charts/ColumnGraph.d.ts +18 -18
  36. package/src/charts/ColumnGraph.scss +27 -27
  37. package/src/charts/Grid.js +5 -5
  38. package/src/charts/Gridlines.d.ts +24 -24
  39. package/src/charts/Gridlines.js +48 -48
  40. package/src/charts/Gridlines.scss +22 -22
  41. package/src/charts/Legend.d.ts +27 -27
  42. package/src/charts/Legend.scss +41 -41
  43. package/src/charts/LegendEntry.scss +30 -30
  44. package/src/charts/LineGraph.d.ts +92 -92
  45. package/src/charts/LineGraph.scss +23 -23
  46. package/src/charts/Marker.scss +41 -41
  47. package/src/charts/MarkerLine.d.ts +57 -57
  48. package/src/charts/MarkerLine.js +128 -128
  49. package/src/charts/MarkerLine.scss +17 -17
  50. package/src/charts/MouseTracker.d.ts +16 -16
  51. package/src/charts/MouseTracker.js +80 -80
  52. package/src/charts/Pie.js +8 -8
  53. package/src/charts/PieChart.d.ts +89 -89
  54. package/src/charts/PieChart.js +527 -527
  55. package/src/charts/PieChart.scss +26 -26
  56. package/src/charts/PieLabel.d.ts +26 -26
  57. package/src/charts/PieLabel.js +71 -71
  58. package/src/charts/PieLabelsContainer.d.ts +6 -6
  59. package/src/charts/PieLabelsContainer.js +55 -55
  60. package/src/charts/Range.d.ts +74 -74
  61. package/src/charts/Range.js +205 -205
  62. package/src/charts/Range.scss +18 -18
  63. package/src/charts/RangeMarker.d.ts +35 -35
  64. package/src/charts/RangeMarker.js +155 -155
  65. package/src/charts/RangeMarker.scss +15 -15
  66. package/src/charts/ScatterGraph.d.ts +64 -64
  67. package/src/charts/ScatterGraph.scss +21 -21
  68. package/src/charts/Swimlane.d.ts +24 -24
  69. package/src/charts/Swimlane.js +140 -140
  70. package/src/charts/Swimlane.scss +14 -14
  71. package/src/charts/Swimlanes.d.ts +41 -41
  72. package/src/charts/Swimlanes.js +114 -114
  73. package/src/charts/Swimlanes.scss +14 -14
  74. package/src/charts/axis/Axis.scss +22 -22
  75. package/src/charts/axis/CategoryAxis.d.ts +24 -24
  76. package/src/charts/axis/CategoryAxis.js +212 -212
  77. package/src/charts/axis/CategoryAxis.scss +32 -32
  78. package/src/charts/axis/NumericAxis.d.ts +46 -46
  79. package/src/charts/axis/NumericAxis.js +347 -347
  80. package/src/charts/axis/NumericAxis.scss +32 -32
  81. package/src/charts/axis/Stack.d.ts +10 -10
  82. package/src/charts/axis/Stack.js +55 -55
  83. package/src/charts/axis/TimeAxis.d.ts +23 -23
  84. package/src/charts/axis/TimeAxis.js +510 -510
  85. package/src/charts/axis/TimeAxis.scss +32 -32
  86. package/src/charts/axis/index.d.ts +3 -3
  87. package/src/charts/axis/index.js +3 -3
  88. package/src/charts/axis/index.scss +5 -5
  89. package/src/charts/axis/variables.scss +2 -2
  90. package/src/charts/helpers/MinMaxFinder.js +36 -36
  91. package/src/charts/helpers/PointReducer.d.ts +15 -15
  92. package/src/charts/helpers/PointReducer.js +43 -43
  93. package/src/charts/helpers/SnapPointFinder.js +69 -69
  94. package/src/charts/helpers/index.d.ts +4 -4
  95. package/src/charts/helpers/index.js +4 -4
  96. package/src/charts/index.d.ts +27 -27
  97. package/src/charts/index.js +34 -34
  98. package/src/charts/index.scss +22 -22
  99. package/src/charts/palette.scss +95 -95
  100. package/src/charts/shapes.d.ts +22 -22
  101. package/src/charts/shapes.js +79 -79
  102. package/src/charts/variables.scss +21 -21
  103. package/src/core.d.ts +271 -271
  104. package/src/data/AggregateFunction.d.ts +20 -20
  105. package/src/data/AggregateFunction.js +145 -145
  106. package/src/data/ArrayElementView.d.ts +13 -13
  107. package/src/data/ArrayRef.d.ts +14 -14
  108. package/src/data/ArrayRef.js +34 -34
  109. package/src/data/AugmentedViewBase.d.ts +18 -18
  110. package/src/data/Binding.d.ts +19 -19
  111. package/src/data/Binding.js +76 -76
  112. package/src/data/Binding.spec.js +69 -69
  113. package/src/data/ExposedRecordView.d.ts +14 -14
  114. package/src/data/ExposedRecordView.js +69 -69
  115. package/src/data/ExposedValueView.d.ts +19 -19
  116. package/src/data/ExposedValueView.js +72 -72
  117. package/src/data/Expression.d.ts +17 -17
  118. package/src/data/Expression.js +220 -220
  119. package/src/data/Expression.spec.js +174 -174
  120. package/src/data/Grouper.d.ts +21 -21
  121. package/src/data/Grouper.js +144 -144
  122. package/src/data/Grouper.spec.js +57 -57
  123. package/src/data/NestedDataView.d.ts +19 -19
  124. package/src/data/NestedDataView.js +22 -22
  125. package/src/data/ReadOnlyDataView.d.ts +14 -14
  126. package/src/data/ReadOnlyDataView.js +26 -26
  127. package/src/data/Ref.d.ts +24 -24
  128. package/src/data/Ref.js +79 -79
  129. package/src/data/Ref.spec.js +79 -79
  130. package/src/data/Store.d.ts +14 -14
  131. package/src/data/Store.js +46 -46
  132. package/src/data/Store.spec.js +22 -22
  133. package/src/data/StoreProxy.d.ts +4 -4
  134. package/src/data/StoreProxy.js +16 -16
  135. package/src/data/StoreRef.js +54 -54
  136. package/src/data/StoreRef.spec.js +24 -24
  137. package/src/data/StringTemplate.d.ts +15 -15
  138. package/src/data/StringTemplate.js +92 -92
  139. package/src/data/StructuredDataAccessor.d.ts +7 -7
  140. package/src/data/StructuredSelector.d.ts +17 -17
  141. package/src/data/StructuredSelector.js +131 -131
  142. package/src/data/StructuredSelector.spec.js +113 -113
  143. package/src/data/SubscribableView.d.ts +11 -11
  144. package/src/data/SubscribableView.js +54 -54
  145. package/src/data/View.d.ts +131 -131
  146. package/src/data/View.js +182 -182
  147. package/src/data/View.spec.js +60 -60
  148. package/src/data/ZoomIntoPropertyView.d.ts +11 -11
  149. package/src/data/ZoomIntoPropertyView.js +33 -33
  150. package/src/data/ZoomIntoPropertyView.spec.js +65 -65
  151. package/src/data/comparer.d.ts +7 -7
  152. package/src/data/comparer.js +54 -54
  153. package/src/data/comparer.spec.js +60 -60
  154. package/src/data/computable.d.ts +125 -125
  155. package/src/data/computable.js +56 -56
  156. package/src/data/computable.spec.js +55 -55
  157. package/src/data/createAccessorModelProxy.d.ts +6 -6
  158. package/src/data/createAccessorModelProxy.js +43 -43
  159. package/src/data/createAccessorModelProxy.spec.tsx +44 -44
  160. package/src/data/createStructuredSelector.d.ts +2 -2
  161. package/src/data/createStructuredSelector.js +43 -43
  162. package/src/data/createStructuredSelector.spec.js +46 -46
  163. package/src/data/defaultCompare.js +14 -14
  164. package/src/data/diff/diffArrays.d.ts +15 -15
  165. package/src/data/diff/diffArrays.js +41 -41
  166. package/src/data/diff/diffs.spec.js +49 -49
  167. package/src/data/diff/index.d.ts +1 -1
  168. package/src/data/diff/index.js +1 -1
  169. package/src/data/enableFatArrowExpansion.d.ts +1 -1
  170. package/src/data/enableFatArrowExpansion.js +6 -6
  171. package/src/data/getAccessor.d.ts +8 -8
  172. package/src/data/getAccessor.js +61 -61
  173. package/src/data/getSelector.d.ts +3 -3
  174. package/src/data/getSelector.js +48 -48
  175. package/src/data/getSelector.spec.js +43 -43
  176. package/src/data/index.d.ts +30 -30
  177. package/src/data/index.js +28 -28
  178. package/src/data/isSelector.d.ts +1 -1
  179. package/src/data/isSelector.js +26 -26
  180. package/src/data/ops/append.d.ts +1 -1
  181. package/src/data/ops/append.js +7 -7
  182. package/src/data/ops/append.spec.js +28 -28
  183. package/src/data/ops/filter.d.ts +1 -1
  184. package/src/data/ops/filter.js +8 -8
  185. package/src/data/ops/filter.spec.js +29 -29
  186. package/src/data/ops/findTreeNode.d.ts +1 -1
  187. package/src/data/ops/findTreeNode.js +15 -15
  188. package/src/data/ops/findTreeNode.spec.js +24 -24
  189. package/src/data/ops/findTreePath.d.ts +6 -6
  190. package/src/data/ops/findTreePath.js +16 -16
  191. package/src/data/ops/index.d.ts +10 -10
  192. package/src/data/ops/index.js +11 -11
  193. package/src/data/ops/insertElement.d.ts +1 -1
  194. package/src/data/ops/insertElement.js +2 -2
  195. package/src/data/ops/merge.d.ts +3 -3
  196. package/src/data/ops/merge.js +9 -9
  197. package/src/data/ops/merge.spec.js +27 -27
  198. package/src/data/ops/moveElement.d.ts +1 -1
  199. package/src/data/ops/moveElement.js +13 -13
  200. package/src/data/ops/removeTreeNodes.d.ts +5 -5
  201. package/src/data/ops/removeTreeNodes.js +5 -5
  202. package/src/data/ops/removeTreeNodes.spec.js +28 -28
  203. package/src/data/ops/updateArray.d.ts +5 -5
  204. package/src/data/ops/updateArray.js +24 -24
  205. package/src/data/ops/updateArray.spec.js +38 -38
  206. package/src/data/ops/updateTree.d.ts +7 -7
  207. package/src/data/ops/updateTree.js +25 -25
  208. package/src/data/ops/updateTree.spec.js +36 -36
  209. package/src/global.scss +13 -13
  210. package/src/hooks/createLocalStorageRef.d.ts +2 -2
  211. package/src/hooks/createLocalStorageRef.js +22 -22
  212. package/src/hooks/index.d.ts +8 -8
  213. package/src/hooks/index.js +7 -7
  214. package/src/hooks/invokeCallback.d.ts +5 -5
  215. package/src/hooks/invokeCallback.js +6 -6
  216. package/src/hooks/invokeCallback.spec.js +53 -53
  217. package/src/hooks/resolveCallback.d.ts +3 -3
  218. package/src/hooks/resolveCallback.js +11 -11
  219. package/src/hooks/resolveCallback.spec.js +54 -54
  220. package/src/hooks/store.d.ts +7 -7
  221. package/src/hooks/store.js +32 -32
  222. package/src/hooks/store.spec.js +73 -73
  223. package/src/hooks/useEffect.d.ts +2 -2
  224. package/src/hooks/useEffect.js +14 -14
  225. package/src/hooks/useInterval.js +7 -7
  226. package/src/hooks/useState.d.ts +2 -2
  227. package/src/hooks/useState.js +15 -15
  228. package/src/hooks/useTrigger.d.ts +4 -4
  229. package/src/hooks/useTrigger.js +20 -20
  230. package/src/hooks/useTrigger.spec.js +102 -102
  231. package/src/index.js +7 -7
  232. package/src/index.scss +6 -7
  233. package/src/svg/BoundedObject.d.ts +22 -22
  234. package/src/svg/BoundedObject.js +59 -59
  235. package/src/svg/ClipRect.d.ts +4 -4
  236. package/src/svg/ClipRect.js +23 -23
  237. package/src/svg/Ellipse.d.ts +23 -23
  238. package/src/svg/Ellipse.js +36 -36
  239. package/src/svg/Line.d.ts +20 -20
  240. package/src/svg/Line.js +32 -32
  241. package/src/svg/NonOverlappingRect.d.ts +5 -5
  242. package/src/svg/NonOverlappingRect.js +14 -14
  243. package/src/svg/NonOverlappingRectGroup.d.ts +3 -3
  244. package/src/svg/NonOverlappingRectGroup.js +36 -36
  245. package/src/svg/Svg.d.ts +32 -32
  246. package/src/svg/Svg.js +177 -177
  247. package/src/svg/Svg.scss +26 -26
  248. package/src/svg/Text.d.ts +40 -40
  249. package/src/svg/Text.js +78 -78
  250. package/src/svg/TextualBoundedObject.d.ts +6 -6
  251. package/src/svg/TextualBoundedObject.js +28 -28
  252. package/src/svg/index.d.ts +11 -11
  253. package/src/svg/index.js +17 -17
  254. package/src/svg/index.scss +8 -8
  255. package/src/svg/util/Rect.d.ts +40 -40
  256. package/src/svg/util/Rect.js +108 -108
  257. package/src/ui/CSS.d.ts +19 -19
  258. package/src/ui/CSS.js +79 -79
  259. package/src/ui/CSSHelper.d.ts +10 -10
  260. package/src/ui/CSSHelper.js +17 -17
  261. package/src/ui/Container.d.ts +18 -18
  262. package/src/ui/Container.js +183 -183
  263. package/src/ui/ContentResolver.d.ts +12 -12
  264. package/src/ui/ContentResolver.js +78 -78
  265. package/src/ui/Controller.js +114 -114
  266. package/src/ui/Controller.spec.js +414 -414
  267. package/src/ui/Culture.d.ts +4 -0
  268. package/src/ui/Culture.js +12 -2
  269. package/src/ui/Cx.d.ts +18 -18
  270. package/src/ui/Cx.spec.js +193 -193
  271. package/src/ui/DataProxy.d.ts +12 -12
  272. package/src/ui/DataProxy.js +44 -44
  273. package/src/ui/DetachedScope.d.ts +21 -21
  274. package/src/ui/DetachedScope.js +93 -93
  275. package/src/ui/FocusManager.d.ts +29 -29
  276. package/src/ui/Format.d.ts +2 -2
  277. package/src/ui/Format.js +107 -107
  278. package/src/ui/HoverSync.d.ts +13 -13
  279. package/src/ui/HoverSync.js +147 -147
  280. package/src/ui/Instance.js +610 -610
  281. package/src/ui/IsolatedScope.d.ts +16 -16
  282. package/src/ui/IsolatedScope.js +29 -29
  283. package/src/ui/IsolatedScope.spec.js +62 -62
  284. package/src/ui/Localization.d.ts +17 -17
  285. package/src/ui/Localization.js +70 -70
  286. package/src/ui/PureContainer.d.ts +16 -16
  287. package/src/ui/PureContainer.js +7 -7
  288. package/src/ui/RenderingContext.d.ts +9 -9
  289. package/src/ui/RenderingContext.js +88 -88
  290. package/src/ui/Repeater.d.ts +60 -60
  291. package/src/ui/Repeater.js +102 -102
  292. package/src/ui/Repeater.spec.js +143 -143
  293. package/src/ui/Rescope.d.ts +10 -10
  294. package/src/ui/Rescope.js +31 -31
  295. package/src/ui/Rescope.spec.js +195 -195
  296. package/src/ui/ResizeManager.d.ts +9 -9
  297. package/src/ui/ResizeManager.js +30 -30
  298. package/src/ui/Restate.d.ts +21 -21
  299. package/src/ui/Restate.js +163 -163
  300. package/src/ui/Restate.spec.js +422 -422
  301. package/src/ui/StaticText.d.ts +8 -8
  302. package/src/ui/StaticText.js +9 -9
  303. package/src/ui/StructuredInstanceDataAccessor.d.ts +16 -16
  304. package/src/ui/StructuredInstanceDataAccessor.js +26 -26
  305. package/src/ui/Text.d.ts +10 -10
  306. package/src/ui/Text.js +25 -25
  307. package/src/ui/VDOM.js +2 -2
  308. package/src/ui/Widget.d.ts +14 -14
  309. package/src/ui/Widget.js +200 -200
  310. package/src/ui/ZIndexManager.d.ts +7 -7
  311. package/src/ui/ZIndexManager.js +11 -11
  312. package/src/ui/adapter/ArrayAdapter.d.ts +17 -17
  313. package/src/ui/adapter/ArrayAdapter.js +142 -142
  314. package/src/ui/adapter/ArrayAdapter.spec.js +55 -55
  315. package/src/ui/adapter/DataAdapter.js +15 -15
  316. package/src/ui/adapter/GroupAdapter.d.ts +23 -23
  317. package/src/ui/adapter/TreeAdapter.d.ts +24 -24
  318. package/src/ui/adapter/TreeAdapter.js +100 -100
  319. package/src/ui/adapter/TreeAdapter.spec.js +67 -67
  320. package/src/ui/adapter/index.d.ts +4 -4
  321. package/src/ui/adapter/index.js +4 -4
  322. package/src/ui/app/History.d.ts +17 -17
  323. package/src/ui/app/History.js +114 -114
  324. package/src/ui/app/Url.js +103 -103
  325. package/src/ui/app/Url.spec.js +51 -51
  326. package/src/ui/app/index.d.ts +4 -4
  327. package/src/ui/app/index.js +5 -5
  328. package/src/ui/app/startAppLoop.d.ts +3 -3
  329. package/src/ui/app/startHotAppLoop.d.ts +6 -6
  330. package/src/ui/app/startHotAppLoop.js +25 -25
  331. package/src/ui/batchUpdates.d.ts +10 -10
  332. package/src/ui/batchUpdates.js +67 -67
  333. package/src/ui/bind.d.ts +4 -4
  334. package/src/ui/bind.js +7 -7
  335. package/src/ui/createFunctionalComponent.d.ts +1 -1
  336. package/src/ui/createFunctionalComponent.js +68 -68
  337. package/src/ui/createFunctionalComponent.spec.js +400 -400
  338. package/src/ui/expr.d.ts +24 -24
  339. package/src/ui/expr.js +17 -17
  340. package/src/ui/flattenProps.js +21 -21
  341. package/src/ui/index.js +44 -44
  342. package/src/ui/index.scss +2 -2
  343. package/src/ui/keyboardShortcuts.d.ts +4 -4
  344. package/src/ui/keyboardShortcuts.js +31 -31
  345. package/src/ui/layout/Content.d.ts +14 -14
  346. package/src/ui/layout/Content.js +16 -16
  347. package/src/ui/layout/ContentPlaceholder.d.ts +17 -17
  348. package/src/ui/layout/ContentPlaceholder.js +79 -79
  349. package/src/ui/layout/ContentPlaceholder.spec.js +368 -368
  350. package/src/ui/layout/FirstVisibleChildLayout.d.ts +4 -4
  351. package/src/ui/layout/FirstVisibleChildLayout.js +65 -65
  352. package/src/ui/layout/FirstVisibleChildLayout.spec.js +196 -196
  353. package/src/ui/layout/LabelsLeftLayout.d.ts +11 -11
  354. package/src/ui/layout/LabelsLeftLayout.js +59 -59
  355. package/src/ui/layout/LabelsLeftLayout.scss +44 -44
  356. package/src/ui/layout/LabelsTopLayout.d.ts +15 -15
  357. package/src/ui/layout/LabelsTopLayout.js +134 -134
  358. package/src/ui/layout/LabelsTopLayout.scss +63 -63
  359. package/src/ui/layout/UseParentLayout.d.ts +4 -4
  360. package/src/ui/layout/UseParentLayout.js +6 -6
  361. package/src/ui/layout/exploreChildren.d.ts +14 -14
  362. package/src/ui/layout/exploreChildren.js +40 -40
  363. package/src/ui/layout/index.d.ts +10 -10
  364. package/src/ui/layout/index.js +10 -10
  365. package/src/ui/layout/index.scss +3 -3
  366. package/src/ui/layout/variables.scss +2 -2
  367. package/src/ui/selection/KeySelection.d.ts +17 -17
  368. package/src/ui/selection/KeySelection.js +129 -129
  369. package/src/ui/selection/PropertySelection.d.ts +17 -17
  370. package/src/ui/selection/Selection.d.ts +27 -27
  371. package/src/ui/selection/Selection.js +93 -93
  372. package/src/ui/selection/index.d.ts +3 -3
  373. package/src/ui/selection/index.js +3 -3
  374. package/src/ui/tpl.d.ts +2 -2
  375. package/src/ui/tpl.js +4 -4
  376. package/src/ui/variables.scss +1 -1
  377. package/src/util/Component.d.ts +41 -41
  378. package/src/util/Component.js +107 -107
  379. package/src/util/Console.d.ts +4 -4
  380. package/src/util/Console.js +11 -11
  381. package/src/util/DOM.d.ts +33 -33
  382. package/src/util/DOM.js +72 -72
  383. package/src/util/Debug.d.ts +10 -10
  384. package/src/util/Debug.js +45 -45
  385. package/src/util/Format.d.ts +18 -18
  386. package/src/util/Format.spec.js +69 -69
  387. package/src/util/GlobalCacheIdentifier.js +11 -11
  388. package/src/util/GlobalCacheldentifier.d.ts +6 -6
  389. package/src/util/KeyCode.d.ts +21 -21
  390. package/src/util/KeyCode.js +21 -21
  391. package/src/util/SubscriberList.d.ts +41 -41
  392. package/src/util/SubscriberList.js +57 -57
  393. package/src/util/Timing.d.ts +13 -13
  394. package/src/util/Timing.js +57 -57
  395. package/src/util/TraversalStack.js +42 -42
  396. package/src/util/TraversalStack.spec.js +46 -46
  397. package/src/util/addEventListenerWithOptions.d.ts +6 -6
  398. package/src/util/addEventListenerWithOptions.js +9 -9
  399. package/src/util/browserSupportsPassiveEventHandlers.d.ts +4 -4
  400. package/src/util/browserSupportsPassiveEventHandlers.js +18 -18
  401. package/src/util/calculateNaturalElementHeight.d.ts +1 -1
  402. package/src/util/calculateNaturalElementHeight.js +22 -22
  403. package/src/util/call-once.scss +6 -6
  404. package/src/util/coalesce.d.ts +1 -1
  405. package/src/util/coalesce.js +6 -6
  406. package/src/util/color/hslToRgb.d.ts +8 -8
  407. package/src/util/color/hslToRgb.js +27 -27
  408. package/src/util/color/index.d.ts +3 -3
  409. package/src/util/color/index.js +4 -4
  410. package/src/util/color/parseColor.d.ts +59 -59
  411. package/src/util/color/parseColor.js +119 -119
  412. package/src/util/color/rgbToHex.d.ts +8 -8
  413. package/src/util/color/rgbToHex.js +7 -7
  414. package/src/util/color/rgbToHsl.d.ts +8 -8
  415. package/src/util/color/rgbToHsl.js +27 -27
  416. package/src/util/date/dateDiff.d.ts +7 -7
  417. package/src/util/date/dateDiff.js +3 -3
  418. package/src/util/date/diff.d.ts +7 -7
  419. package/src/util/date/diff.js +7 -7
  420. package/src/util/date/encodeDateWithTimezoneOffset.js +18 -18
  421. package/src/util/date/index.d.ts +8 -8
  422. package/src/util/date/index.js +9 -9
  423. package/src/util/date/lowerBoundCheck.d.ts +7 -7
  424. package/src/util/date/lowerBoundCheck.js +6 -6
  425. package/src/util/date/maxDate.d.ts +5 -5
  426. package/src/util/date/maxDate.js +9 -9
  427. package/src/util/date/minDate.d.ts +5 -5
  428. package/src/util/date/minDate.js +9 -9
  429. package/src/util/date/monthStart.d.ts +5 -5
  430. package/src/util/date/monthStart.js +3 -3
  431. package/src/util/date/sameDate.d.ts +6 -6
  432. package/src/util/date/sameDate.js +5 -5
  433. package/src/util/date/upperBoundCheck.d.ts +7 -7
  434. package/src/util/date/upperBoundCheck.js +6 -6
  435. package/src/util/date/upperBoundCheck.spec.js +30 -30
  436. package/src/util/date/zeroTime.d.ts +6 -6
  437. package/src/util/date/zeroTime.js +3 -3
  438. package/src/util/debounce.d.ts +9 -9
  439. package/src/util/debounce.js +18 -18
  440. package/src/util/dummyCallback.d.ts +1 -1
  441. package/src/util/dummyCallback.js +1 -1
  442. package/src/util/escapeSpecialRegexCharacters.d.ts +6 -6
  443. package/src/util/escapeSpecialRegexCharacters.js +3 -3
  444. package/src/util/eventCallbacks.d.ts +4 -4
  445. package/src/util/eventCallbacks.js +2 -2
  446. package/src/util/expandFatArrows.js +118 -118
  447. package/src/util/findScrollableParent.js +16 -16
  448. package/src/util/getActiveElement.js +3 -3
  449. package/src/util/getParentFrameBoundingClientRect.js +21 -21
  450. package/src/util/getScrollerBoundingClientRect.js +21 -21
  451. package/src/util/getSearchQueryPredicate.js +58 -58
  452. package/src/util/getSearchQueryPredicate.spec.js +40 -40
  453. package/src/util/getTopLevelBoundingClientRect.js +13 -13
  454. package/src/util/getVendorPrefix.js +26 -26
  455. package/src/util/index.d.ts +50 -50
  456. package/src/util/index.scss +10 -10
  457. package/src/util/innerTextTrim.d.ts +6 -6
  458. package/src/util/innerTextTrim.js +5 -5
  459. package/src/util/isArray.d.ts +1 -1
  460. package/src/util/isArray.js +3 -3
  461. package/src/util/isDefined.js +3 -3
  462. package/src/util/isDigit.d.ts +6 -6
  463. package/src/util/isDigit.js +3 -3
  464. package/src/util/isFunction.d.ts +1 -1
  465. package/src/util/isFunction.js +3 -3
  466. package/src/util/isNonEmptyArray.d.ts +1 -1
  467. package/src/util/isNonEmptyArray.js +3 -3
  468. package/src/util/isNumber.d.ts +1 -1
  469. package/src/util/isNumber.js +3 -3
  470. package/src/util/isObject.d.ts +1 -1
  471. package/src/util/isObject.js +3 -3
  472. package/src/util/isPromise.d.ts +1 -1
  473. package/src/util/isPromise.js +6 -6
  474. package/src/util/isString.d.ts +1 -1
  475. package/src/util/isString.js +3 -3
  476. package/src/util/isTextInputElement.d.ts +1 -1
  477. package/src/util/isTextInputElement.js +2 -2
  478. package/src/util/isTouchDevice.d.ts +1 -1
  479. package/src/util/isTouchDevice.js +7 -7
  480. package/src/util/isTouchEvent.d.ts +3 -3
  481. package/src/util/isTouchEvent.js +64 -64
  482. package/src/util/isUndefined.d.ts +1 -1
  483. package/src/util/isUndefined.js +3 -3
  484. package/src/util/onIdleCallback.js +13 -13
  485. package/src/util/parseStyle.d.ts +3 -3
  486. package/src/util/parseStyle.js +27 -27
  487. package/src/util/quote.d.ts +2 -2
  488. package/src/util/quote.js +4 -4
  489. package/src/util/reverseSlice.js +9 -9
  490. package/src/util/routeAppend.js +15 -15
  491. package/src/util/routeAppend.spec.js +19 -19
  492. package/src/util/scrollElementIntoView.d.ts +7 -7
  493. package/src/util/scrollElementIntoView.js +34 -34
  494. package/src/util/scss/add-rules.scss +8 -9
  495. package/src/util/scss/calc.scss +40 -40
  496. package/src/util/scss/call-once.scss +10 -10
  497. package/src/util/scss/clockwise.scss +47 -47
  498. package/src/util/scss/colors.scss +7 -7
  499. package/src/util/scss/deep-get.scss +9 -9
  500. package/src/util/scss/deep-merge.scss +18 -18
  501. package/src/util/scss/include.scss +47 -47
  502. package/src/util/scss/index.scss +9 -9
  503. package/src/util/shallowEquals.js +43 -43
  504. package/src/util/throttle.d.ts +8 -8
  505. package/src/util/throttle.js +14 -14
  506. package/src/util/validatedDebounce.js +19 -19
  507. package/src/variables.scss +217 -217
  508. package/src/widgets/AccessorBindings.spec.tsx +66 -66
  509. package/src/widgets/Button.d.ts +58 -58
  510. package/src/widgets/Button.js +118 -118
  511. package/src/widgets/Button.scss +117 -117
  512. package/src/widgets/CxCredit.d.ts +12 -12
  513. package/src/widgets/CxCredit.js +31 -31
  514. package/src/widgets/CxCredit.scss +6 -11
  515. package/src/widgets/DocumentTitle.d.ts +11 -11
  516. package/src/widgets/DocumentTitle.js +68 -68
  517. package/src/widgets/FlexBox.d.ts +69 -69
  518. package/src/widgets/FlexBox.js +92 -92
  519. package/src/widgets/FlexBox.scss +146 -146
  520. package/src/widgets/Heading.d.ts +16 -16
  521. package/src/widgets/Heading.js +32 -32
  522. package/src/widgets/Heading.scss +38 -38
  523. package/src/widgets/HighlightedSearchText.d.ts +9 -9
  524. package/src/widgets/HighlightedSearchText.js +36 -36
  525. package/src/widgets/HighlightedSearchText.scss +18 -18
  526. package/src/widgets/HtmlElement.d.ts +26 -26
  527. package/src/widgets/HtmlElement.spec.js +57 -57
  528. package/src/widgets/Icon.d.ts +34 -34
  529. package/src/widgets/Icon.js +50 -50
  530. package/src/widgets/Icon.scss +20 -20
  531. package/src/widgets/List.d.ts +96 -96
  532. package/src/widgets/List.js +587 -587
  533. package/src/widgets/List.scss +11 -13
  534. package/src/widgets/ProgressBar.d.ts +17 -17
  535. package/src/widgets/ProgressBar.js +46 -46
  536. package/src/widgets/ProgressBar.scss +49 -49
  537. package/src/widgets/Resizer.d.ts +27 -27
  538. package/src/widgets/Resizer.js +151 -151
  539. package/src/widgets/Resizer.scss +42 -42
  540. package/src/widgets/Sandbox.d.ts +16 -16
  541. package/src/widgets/Sandbox.js +62 -62
  542. package/src/widgets/Section.d.ts +52 -52
  543. package/src/widgets/Section.js +139 -139
  544. package/src/widgets/Section.scss +54 -54
  545. package/src/widgets/animations.scss +10 -10
  546. package/src/widgets/autoFocus.d.ts +1 -1
  547. package/src/widgets/autoFocus.js +9 -9
  548. package/src/widgets/cx.d.ts +1 -1
  549. package/src/widgets/cx.js +71 -71
  550. package/src/widgets/drag-drop/DragClone.scss +33 -33
  551. package/src/widgets/drag-drop/DragHandle.d.ts +10 -10
  552. package/src/widgets/drag-drop/DragHandle.js +37 -37
  553. package/src/widgets/drag-drop/DragHandle.scss +16 -16
  554. package/src/widgets/drag-drop/DragSource.d.ts +45 -45
  555. package/src/widgets/drag-drop/DragSource.js +160 -160
  556. package/src/widgets/drag-drop/DragSource.scss +24 -24
  557. package/src/widgets/drag-drop/DropZone.d.ts +98 -98
  558. package/src/widgets/drag-drop/DropZone.scss +74 -74
  559. package/src/widgets/drag-drop/index.d.ts +4 -4
  560. package/src/widgets/drag-drop/index.js +4 -4
  561. package/src/widgets/drag-drop/index.scss +3 -3
  562. package/src/widgets/drag-drop/ops.d.ts +56 -56
  563. package/src/widgets/drag-drop/ops.js +344 -344
  564. package/src/widgets/drag-drop/variables.scss +11 -11
  565. package/src/widgets/enableAllInternalDependencies.d.ts +1 -1
  566. package/src/widgets/enableAllInternalDependencies.js +11 -11
  567. package/src/widgets/form/Calendar.d.ts +86 -86
  568. package/src/widgets/form/Calendar.scss +196 -196
  569. package/src/widgets/form/Calendar.variables.scss +63 -63
  570. package/src/widgets/form/Checkbox.d.ts +43 -43
  571. package/src/widgets/form/Checkbox.js +200 -200
  572. package/src/widgets/form/Checkbox.scss +11 -9
  573. package/src/widgets/form/Checkbox.variables.scss +39 -39
  574. package/src/widgets/form/ColorField.js +397 -397
  575. package/src/widgets/form/ColorField.scss +22 -19
  576. package/src/widgets/form/ColorPicker.d.ts +23 -23
  577. package/src/widgets/form/ColorPicker.js +480 -480
  578. package/src/widgets/form/ColorPicker.scss +15 -7
  579. package/src/widgets/form/ColorPicker.variables.scss +22 -22
  580. package/src/widgets/form/DateField.d.ts +6 -6
  581. package/src/widgets/form/DateField.js +12 -12
  582. package/src/widgets/form/DateTimeField.js +573 -573
  583. package/src/widgets/form/DateTimeField.scss +90 -90
  584. package/src/widgets/form/DateTimePicker.js +391 -391
  585. package/src/widgets/form/DateTimePicker.scss +44 -44
  586. package/src/widgets/form/Field.d.ts +112 -112
  587. package/src/widgets/form/Field.scss +162 -162
  588. package/src/widgets/form/FieldGroup.d.ts +6 -6
  589. package/src/widgets/form/FieldGroup.js +5 -5
  590. package/src/widgets/form/FieldIcon.js +42 -42
  591. package/src/widgets/form/HelpText.d.ts +10 -10
  592. package/src/widgets/form/HelpText.js +9 -9
  593. package/src/widgets/form/HelpText.scss +23 -23
  594. package/src/widgets/form/Label.d.ts +23 -23
  595. package/src/widgets/form/Label.js +89 -89
  596. package/src/widgets/form/Label.scss +36 -36
  597. package/src/widgets/form/LabeledContainer.d.ts +9 -9
  598. package/src/widgets/form/LabeledContainer.js +59 -59
  599. package/src/widgets/form/LookupField.scss +5 -5
  600. package/src/widgets/form/MonthField.js +516 -516
  601. package/src/widgets/form/MonthField.scss +99 -99
  602. package/src/widgets/form/MonthPicker.d.ts +74 -74
  603. package/src/widgets/form/MonthPicker.js +632 -632
  604. package/src/widgets/form/MonthPicker.scss +18 -20
  605. package/src/widgets/form/NumberField.d.ts +96 -96
  606. package/src/widgets/form/NumberField.js +459 -459
  607. package/src/widgets/form/NumberField.scss +7 -12
  608. package/src/widgets/form/Radio.d.ts +37 -37
  609. package/src/widgets/form/Radio.js +188 -188
  610. package/src/widgets/form/Radio.scss +12 -12
  611. package/src/widgets/form/Radio.variables.scss +45 -45
  612. package/src/widgets/form/Select.d.ts +69 -69
  613. package/src/widgets/form/Select.js +269 -269
  614. package/src/widgets/form/Select.scss +18 -18
  615. package/src/widgets/form/Slider.d.ts +65 -65
  616. package/src/widgets/form/Slider.js +351 -351
  617. package/src/widgets/form/Slider.scss +5 -6
  618. package/src/widgets/form/Switch.d.ts +38 -38
  619. package/src/widgets/form/Switch.js +118 -118
  620. package/src/widgets/form/Switch.scss +4 -4
  621. package/src/widgets/form/TextArea.d.ts +17 -17
  622. package/src/widgets/form/TextArea.js +186 -186
  623. package/src/widgets/form/TextArea.scss +4 -21
  624. package/src/widgets/form/TextField.d.ts +78 -78
  625. package/src/widgets/form/TextField.js +289 -289
  626. package/src/widgets/form/TextField.scss +1 -1
  627. package/src/widgets/form/TimeField.d.ts +6 -6
  628. package/src/widgets/form/TimeField.js +11 -11
  629. package/src/widgets/form/TimeList.js +84 -84
  630. package/src/widgets/form/UploadButton.js +213 -213
  631. package/src/widgets/form/UploadButton.scss +47 -47
  632. package/src/widgets/form/ValidationError.d.ts +10 -10
  633. package/src/widgets/form/ValidationError.js +44 -44
  634. package/src/widgets/form/ValidationError.scss +21 -21
  635. package/src/widgets/form/ValidationGroup.d.ts +41 -41
  636. package/src/widgets/form/ValidationGroup.js +68 -68
  637. package/src/widgets/form/ValidationGroup.spec.js +148 -148
  638. package/src/widgets/form/Validator.d.ts +8 -8
  639. package/src/widgets/form/Validator.js +21 -21
  640. package/src/widgets/form/Wheel.js +261 -261
  641. package/src/widgets/form/Wheel.scss +150 -150
  642. package/src/widgets/form/index.d.ts +26 -26
  643. package/src/widgets/form/index.js +28 -28
  644. package/src/widgets/form/index.scss +24 -24
  645. package/src/widgets/form/variables.scss +352 -352
  646. package/src/widgets/grid/Grid.scss +680 -680
  647. package/src/widgets/grid/GridCell.d.ts +38 -38
  648. package/src/widgets/grid/GridCell.js +71 -71
  649. package/src/widgets/grid/GridCellEditor.js +41 -41
  650. package/src/widgets/grid/GridRow.js +228 -228
  651. package/src/widgets/grid/GridRowLine.js +24 -24
  652. package/src/widgets/grid/Pagination.d.ts +14 -14
  653. package/src/widgets/grid/Pagination.js +94 -94
  654. package/src/widgets/grid/Pagination.scss +113 -113
  655. package/src/widgets/grid/TreeNode.d.ts +25 -25
  656. package/src/widgets/grid/TreeNode.js +102 -102
  657. package/src/widgets/grid/TreeNode.scss +1 -2
  658. package/src/widgets/grid/index.d.ts +3 -3
  659. package/src/widgets/grid/index.js +14 -14
  660. package/src/widgets/grid/index.scss +3 -3
  661. package/src/widgets/icons/arrow-down.svg +3 -3
  662. package/src/widgets/icons/arrow-right.svg +2 -2
  663. package/src/widgets/icons/base.svg +104 -104
  664. package/src/widgets/icons/calendar-old.svg +169 -169
  665. package/src/widgets/icons/calendar.js +16 -16
  666. package/src/widgets/icons/calendar.svg +187 -187
  667. package/src/widgets/icons/check.js +12 -12
  668. package/src/widgets/icons/clear.js +14 -14
  669. package/src/widgets/icons/clear.svg +74 -74
  670. package/src/widgets/icons/close.js +19 -19
  671. package/src/widgets/icons/close.svg +74 -74
  672. package/src/widgets/icons/cx.js +37 -37
  673. package/src/widgets/icons/drop-down.js +14 -14
  674. package/src/widgets/icons/dropdown-arrow.svg +61 -61
  675. package/src/widgets/icons/file.js +12 -12
  676. package/src/widgets/icons/file.svg +4 -4
  677. package/src/widgets/icons/folder-open.js +14 -14
  678. package/src/widgets/icons/folder-open.svg +5 -5
  679. package/src/widgets/icons/folder.js +12 -12
  680. package/src/widgets/icons/folder.svg +58 -58
  681. package/src/widgets/icons/forward.js +21 -21
  682. package/src/widgets/icons/forward.svg +67 -67
  683. package/src/widgets/icons/index.js +14 -14
  684. package/src/widgets/icons/loading.js +23 -23
  685. package/src/widgets/icons/loading.svg +4 -4
  686. package/src/widgets/icons/menu.js +16 -16
  687. package/src/widgets/icons/pixel-picker.js +17 -17
  688. package/src/widgets/icons/registry.js +53 -53
  689. package/src/widgets/icons/search.js +12 -12
  690. package/src/widgets/icons/search.svg +107 -107
  691. package/src/widgets/icons/sort-asc.js +13 -13
  692. package/src/widgets/icons/sort-asc.svg +3 -3
  693. package/src/widgets/icons/square.js +17 -17
  694. package/src/widgets/index.d.ts +55 -55
  695. package/src/widgets/index.js +57 -57
  696. package/src/widgets/index.scss +16 -16
  697. package/src/widgets/nav/Link.d.ts +26 -26
  698. package/src/widgets/nav/Link.js +7 -7
  699. package/src/widgets/nav/Link.scss +18 -18
  700. package/src/widgets/nav/Menu.d.ts +27 -27
  701. package/src/widgets/nav/Menu.js +406 -406
  702. package/src/widgets/nav/Menu.scss +2 -2
  703. package/src/widgets/nav/MenuItem.d.ts +31 -31
  704. package/src/widgets/nav/MenuItem.js +445 -445
  705. package/src/widgets/nav/MenuSpacer.d.ts +5 -5
  706. package/src/widgets/nav/MenuSpacer.js +12 -12
  707. package/src/widgets/nav/RedirectRoute.d.ts +9 -9
  708. package/src/widgets/nav/RedirectRoute.js +40 -40
  709. package/src/widgets/nav/Route.d.ts +21 -21
  710. package/src/widgets/nav/Route.js +105 -105
  711. package/src/widgets/nav/Route.spec.js +27 -27
  712. package/src/widgets/nav/Scroller.d.ts +17 -17
  713. package/src/widgets/nav/Scroller.js +214 -214
  714. package/src/widgets/nav/Scroller.scss +146 -146
  715. package/src/widgets/nav/Submenu.d.ts +6 -6
  716. package/src/widgets/nav/Submenu.js +6 -6
  717. package/src/widgets/nav/Tab.d.ts +33 -33
  718. package/src/widgets/nav/Tab.js +82 -82
  719. package/src/widgets/nav/Tab.scss +81 -81
  720. package/src/widgets/nav/cover.scss +21 -21
  721. package/src/widgets/nav/index.d.ts +10 -10
  722. package/src/widgets/nav/index.js +10 -10
  723. package/src/widgets/nav/index.scss +5 -5
  724. package/src/widgets/nav/variables.scss +25 -25
  725. package/src/widgets/overlay/ContextMenu.d.ts +10 -10
  726. package/src/widgets/overlay/ContextMenu.js +29 -29
  727. package/src/widgets/overlay/Dropdown.d.ts +32 -32
  728. package/src/widgets/overlay/Dropdown.js +612 -612
  729. package/src/widgets/overlay/Dropdown.scss +184 -184
  730. package/src/widgets/overlay/FlyweightTooltipTracker.d.ts +8 -8
  731. package/src/widgets/overlay/FlyweightTooltipTracker.js +14 -11
  732. package/src/widgets/overlay/MsgBox.d.ts +16 -16
  733. package/src/widgets/overlay/MsgBox.js +116 -116
  734. package/src/widgets/overlay/Overlay.d.ts +69 -69
  735. package/src/widgets/overlay/Overlay.js +747 -747
  736. package/src/widgets/overlay/Overlay.scss +66 -66
  737. package/src/widgets/overlay/Toast.d.ts +30 -30
  738. package/src/widgets/overlay/Toast.js +92 -92
  739. package/src/widgets/overlay/Toast.scss +162 -162
  740. package/src/widgets/overlay/Tooltip.d.ts +50 -50
  741. package/src/widgets/overlay/Tooltip.js +300 -295
  742. package/src/widgets/overlay/Tooltip.scss +175 -175
  743. package/src/widgets/overlay/alerts.d.ts +7 -7
  744. package/src/widgets/overlay/alerts.js +39 -39
  745. package/src/widgets/overlay/captureMouse.d.ts +53 -53
  746. package/src/widgets/overlay/captureMouse.js +124 -124
  747. package/src/widgets/overlay/captureMouse.scss +13 -13
  748. package/src/widgets/overlay/index.d.ts +10 -10
  749. package/src/widgets/overlay/index.js +10 -10
  750. package/src/widgets/overlay/index.scss +15 -15
  751. package/src/widgets/variables.scss +144 -144
@@ -1,160 +1,160 @@
1
- import { Widget, VDOM } from "../../ui/Widget";
2
- import { Container } from "../../ui/Container";
3
- import { ddMouseDown, ddDetect, ddMouseUp, initiateDragDrop, isDragHandleEvent } from "./ops";
4
- import { preventFocus } from "../../ui/FocusManager";
5
- import { parseStyle } from "../../util/parseStyle";
6
-
7
- export class DragSource extends Container {
8
- init() {
9
- this.cloneStyle = parseStyle(this.cloneStyle);
10
- this.draggedStyle = parseStyle(this.draggedStyle);
11
- super.init();
12
- }
13
-
14
- declareData() {
15
- super.declareData(...arguments, {
16
- id: undefined,
17
- data: { structured: true },
18
- cloneStyle: { structured: true },
19
- cloneClass: { structured: true },
20
- draggedClass: { structured: true },
21
- draggedStyle: { structured: true },
22
- });
23
- }
24
-
25
- explore(context, instance) {
26
- context.push("dragHandles", (instance.dragHandles = []));
27
- super.explore(context, instance);
28
- }
29
-
30
- exploreCleanup(context, instance) {
31
- context.pop("dragHandles");
32
- }
33
-
34
- render(context, instance, key) {
35
- return (
36
- <DragSourceComponent key={key} instance={instance} handled={this.handled || instance.dragHandles.length > 0}>
37
- {this.renderChildren(context, instance)}
38
- </DragSourceComponent>
39
- );
40
- }
41
- }
42
-
43
- DragSource.prototype.styled = true;
44
- DragSource.prototype.baseClass = "dragsource";
45
- DragSource.prototype.hideOnDrag = false;
46
- DragSource.prototype.handled = false;
47
-
48
- Widget.alias("dragsource", DragSource);
49
-
50
- class DragSourceComponent extends VDOM.Component {
51
- constructor(props) {
52
- super(props);
53
- this.state = { dragged: false };
54
- this.beginDragDrop = this.beginDragDrop.bind(this);
55
- this.onMouseMove = this.onMouseMove.bind(this);
56
- this.onMouseDown = this.onMouseDown.bind(this);
57
- this.setRef = (el) => {
58
- this.el = el;
59
- };
60
- }
61
-
62
- render() {
63
- let { instance, children, handled } = this.props;
64
- let { data, widget } = instance;
65
- let { CSS } = widget;
66
-
67
- if (this.state.dragged && widget.hideOnDrag) return null;
68
-
69
- let classes = [
70
- data.classNames,
71
- CSS.state({
72
- dragged: this.state.dragged,
73
- draggable: !handled,
74
- }),
75
- ];
76
-
77
- let style = data.style;
78
-
79
- if (this.state.dragged) {
80
- if (data.draggedClass) classes.push(data.draggedClass);
81
- if (data.draggedStyle)
82
- style = {
83
- ...style,
84
- ...data.draggedStyle,
85
- };
86
- }
87
-
88
- let eventHandlers = {
89
- ...instance.getJsxEventProps(),
90
- onTouchStart: this.onMouseDown,
91
- onMouseDown: this.onMouseDown,
92
- onTouchMove: this.onMouseMove,
93
- onMouseMove: this.onMouseMove,
94
- onTouchEnd: ddMouseUp,
95
- onMouseUp: ddMouseUp,
96
- };
97
-
98
- delete eventHandlers.onDragStart;
99
- delete eventHandlers.onDragEnd;
100
-
101
- return (
102
- <div id={data.id} ref={this.setRef} className={CSS.expand(classes)} style={style} {...eventHandlers}>
103
- {children}
104
- </div>
105
- );
106
- }
107
-
108
- onMouseDown(e) {
109
- ddMouseDown(e);
110
- if (isDragHandleEvent(e) || !this.props.handled) {
111
- preventFocus(e); //disables text selection in Firefox
112
- e.stopPropagation();
113
- }
114
- }
115
-
116
- onMouseMove(e) {
117
- if (ddDetect(e)) {
118
- if (isDragHandleEvent(e) || !this.props.handled) {
119
- this.beginDragDrop(e);
120
- }
121
- }
122
- }
123
-
124
- beginDragDrop(e) {
125
- let { instance } = this.props;
126
- let { data, widget, store } = instance;
127
-
128
- if (widget.onDragStart && instance.invoke("onDragStart", e, instance) === false) return;
129
-
130
- initiateDragDrop(
131
- e,
132
- {
133
- sourceEl: this.el,
134
- source: {
135
- store: store,
136
- data: data.data,
137
- },
138
- clone: {
139
- widget: widget.clone || widget,
140
- store,
141
- class: data.cloneClass,
142
- style: data.cloneStyle,
143
- cloneContent: !widget.clone,
144
- matchSize: !widget.clone,
145
- matchCursorOffset: !widget.clone,
146
- },
147
- },
148
- (e) => {
149
- this.setState({
150
- dragged: false,
151
- });
152
- if (widget.onDragEnd) instance.invoke("onDragEnd", e, instance);
153
- }
154
- );
155
-
156
- this.setState({
157
- dragged: true,
158
- });
159
- }
160
- }
1
+ import { Widget, VDOM } from "../../ui/Widget";
2
+ import { Container } from "../../ui/Container";
3
+ import { ddMouseDown, ddDetect, ddMouseUp, initiateDragDrop, isDragHandleEvent } from "./ops";
4
+ import { preventFocus } from "../../ui/FocusManager";
5
+ import { parseStyle } from "../../util/parseStyle";
6
+
7
+ export class DragSource extends Container {
8
+ init() {
9
+ this.cloneStyle = parseStyle(this.cloneStyle);
10
+ this.draggedStyle = parseStyle(this.draggedStyle);
11
+ super.init();
12
+ }
13
+
14
+ declareData() {
15
+ super.declareData(...arguments, {
16
+ id: undefined,
17
+ data: { structured: true },
18
+ cloneStyle: { structured: true },
19
+ cloneClass: { structured: true },
20
+ draggedClass: { structured: true },
21
+ draggedStyle: { structured: true },
22
+ });
23
+ }
24
+
25
+ explore(context, instance) {
26
+ context.push("dragHandles", (instance.dragHandles = []));
27
+ super.explore(context, instance);
28
+ }
29
+
30
+ exploreCleanup(context, instance) {
31
+ context.pop("dragHandles");
32
+ }
33
+
34
+ render(context, instance, key) {
35
+ return (
36
+ <DragSourceComponent key={key} instance={instance} handled={this.handled || instance.dragHandles.length > 0}>
37
+ {this.renderChildren(context, instance)}
38
+ </DragSourceComponent>
39
+ );
40
+ }
41
+ }
42
+
43
+ DragSource.prototype.styled = true;
44
+ DragSource.prototype.baseClass = "dragsource";
45
+ DragSource.prototype.hideOnDrag = false;
46
+ DragSource.prototype.handled = false;
47
+
48
+ Widget.alias("dragsource", DragSource);
49
+
50
+ class DragSourceComponent extends VDOM.Component {
51
+ constructor(props) {
52
+ super(props);
53
+ this.state = { dragged: false };
54
+ this.beginDragDrop = this.beginDragDrop.bind(this);
55
+ this.onMouseMove = this.onMouseMove.bind(this);
56
+ this.onMouseDown = this.onMouseDown.bind(this);
57
+ this.setRef = (el) => {
58
+ this.el = el;
59
+ };
60
+ }
61
+
62
+ render() {
63
+ let { instance, children, handled } = this.props;
64
+ let { data, widget } = instance;
65
+ let { CSS } = widget;
66
+
67
+ if (this.state.dragged && widget.hideOnDrag) return null;
68
+
69
+ let classes = [
70
+ data.classNames,
71
+ CSS.state({
72
+ dragged: this.state.dragged,
73
+ draggable: !handled,
74
+ }),
75
+ ];
76
+
77
+ let style = data.style;
78
+
79
+ if (this.state.dragged) {
80
+ if (data.draggedClass) classes.push(data.draggedClass);
81
+ if (data.draggedStyle)
82
+ style = {
83
+ ...style,
84
+ ...data.draggedStyle,
85
+ };
86
+ }
87
+
88
+ let eventHandlers = {
89
+ ...instance.getJsxEventProps(),
90
+ onTouchStart: this.onMouseDown,
91
+ onMouseDown: this.onMouseDown,
92
+ onTouchMove: this.onMouseMove,
93
+ onMouseMove: this.onMouseMove,
94
+ onTouchEnd: ddMouseUp,
95
+ onMouseUp: ddMouseUp,
96
+ };
97
+
98
+ delete eventHandlers.onDragStart;
99
+ delete eventHandlers.onDragEnd;
100
+
101
+ return (
102
+ <div id={data.id} ref={this.setRef} className={CSS.expand(classes)} style={style} {...eventHandlers}>
103
+ {children}
104
+ </div>
105
+ );
106
+ }
107
+
108
+ onMouseDown(e) {
109
+ ddMouseDown(e);
110
+ if (isDragHandleEvent(e) || !this.props.handled) {
111
+ preventFocus(e); //disables text selection in Firefox
112
+ e.stopPropagation();
113
+ }
114
+ }
115
+
116
+ onMouseMove(e) {
117
+ if (ddDetect(e)) {
118
+ if (isDragHandleEvent(e) || !this.props.handled) {
119
+ this.beginDragDrop(e);
120
+ }
121
+ }
122
+ }
123
+
124
+ beginDragDrop(e) {
125
+ let { instance } = this.props;
126
+ let { data, widget, store } = instance;
127
+
128
+ if (widget.onDragStart && instance.invoke("onDragStart", e, instance) === false) return;
129
+
130
+ initiateDragDrop(
131
+ e,
132
+ {
133
+ sourceEl: this.el,
134
+ source: {
135
+ store: store,
136
+ data: data.data,
137
+ },
138
+ clone: {
139
+ widget: widget.clone || widget,
140
+ store,
141
+ class: data.cloneClass,
142
+ style: data.cloneStyle,
143
+ cloneContent: !widget.clone,
144
+ matchSize: !widget.clone,
145
+ matchCursorOffset: !widget.clone,
146
+ },
147
+ },
148
+ (e) => {
149
+ this.setState({
150
+ dragged: false,
151
+ });
152
+ if (widget.onDragEnd) instance.invoke("onDragEnd", e, instance);
153
+ }
154
+ );
155
+
156
+ this.setState({
157
+ dragged: true,
158
+ });
159
+ }
160
+ }
@@ -1,25 +1,25 @@
1
- @mixin cx-dragsource(
2
- $name: 'dragsource',
3
- $besm: $cx-besm
4
- ) {
5
- $block: map-get($besm, block);
6
- $element: map-get($besm, element);
7
- $state: map-get($besm, state);
8
- $mod: map-get($besm, mod);
9
-
10
- .#{$block}#{$name} {
11
- box-sizing: border-box;
12
-
13
- &.#{$state}dragged {
14
- opacity: 0.3;
15
- }
16
-
17
- &.#{$state}draggable {
18
- touch-action: none;
19
- }
20
- }
21
- }
22
-
23
- @if (cx-should-include('cx/widgets/DragSource')) {
24
- @include cx-dragsource();
1
+ @mixin cx-dragsource(
2
+ $name: 'dragsource',
3
+ $besm: $cx-besm
4
+ ) {
5
+ $block: map-get($besm, block);
6
+ $element: map-get($besm, element);
7
+ $state: map-get($besm, state);
8
+ $mod: map-get($besm, mod);
9
+
10
+ .#{$block}#{$name} {
11
+ box-sizing: border-box;
12
+
13
+ &.#{$state}dragged {
14
+ opacity: 0.3;
15
+ }
16
+
17
+ &.#{$state}draggable {
18
+ touch-action: none;
19
+ }
20
+ }
21
+ }
22
+
23
+ @if (cx-should-include('cx/widgets/DragSource')) {
24
+ @include cx-dragsource();
25
25
  }
@@ -1,98 +1,98 @@
1
- import * as Cx from "../../core";
2
-
3
- import { Instance } from "../../ui/Instance";
4
- import { DragEvent } from "./ops";
5
-
6
- interface DropZoneProps extends Cx.StyledContainerProps {
7
- /** CSS styles to be applied when drag cursor is over the drop zone. */
8
- overStyle?: Cx.StyleProp;
9
-
10
- /** CSS styles to be applied when drag cursor is near the drop zone. */
11
- nearStyle?: Cx.StyleProp;
12
-
13
- /** CSS styles to be applied when drag operations begin used to highlight drop zones. */
14
- farStyle?: Cx.StyleProp;
15
-
16
- /** Additional CSS class to be applied when drag cursor is over the drop zone. */
17
- overClass?: Cx.ClassProp;
18
-
19
- /** Additional CSS class to be applied when drag cursor is near the drop zone. */
20
- nearClass?: Cx.ClassProp;
21
-
22
- /** Additional CSS class to be applied when drag operations begin used to highlight drop zones. */
23
- farClass?: Cx.ClassProp;
24
-
25
- /** Distance in `px` used to determine if cursor is near the dropzone. If not configured, cursor is never considered near. */
26
- nearDistance?: number;
27
-
28
- /** Bindable data related to the DropZone that might be useful inside onDrop operations. */
29
- data?: Cx.StructuredProp;
30
-
31
- /**
32
- * Inflate the drop zone's bounding box so it activates on cursor proximity.
33
- * Useful for invisible drop-zones that are only a few pixels tall/wide.
34
- */
35
- inflate?: number;
36
-
37
- /**
38
- * Inflate the drop zone's bounding box horizontally so it activates on cursor proximity.
39
- * Useful for invisible drop-zones that are only a few pixels tall/wide.
40
- */
41
- hinflate?: number;
42
-
43
- /**
44
- * Inflate the drop zone's bounding box vertically so it activates on cursor proximity.
45
- * Useful for invisible drop-zones that are only a few pixels tall/wide.
46
- */
47
- vinflate?: number;
48
-
49
- /** Base CSS class to be applied to the element. Defaults to 'dropzone'. */
50
- baseClass?: string;
51
-
52
- /** A callback method invoked when dragged item is finally dropped.
53
- The callback takes two arguments:
54
- * dragDropEvent - An object containing information related to the source
55
- * instance
56
- Return value is written into dragDropEvent.result and can be passed
57
- to the source's onDragEnd callback. */
58
- onDrop?: string | ((event?: DragEvent, instance?: Instance) => any);
59
-
60
- /** A callback method used to test if dragged item (source) is compatible
61
- with the drop zone. */
62
- onDropTest?: string | ((event?: DragEvent, instance?: Instance) => boolean);
63
-
64
- /** A callback method invoked when the dragged item gets close to the drop zone.
65
- See also `nearDistance`. */
66
- onDragNear?: string | ((event?: DragEvent, instance?: Instance) => void);
67
-
68
- /** A callback method invoked when the dragged item is dragged away. */
69
- onDragAway?: string | ((event?: DragEvent, instance?: Instance) => void);
70
-
71
- /** A callback method invoked when the dragged item is dragged over the drop zone.
72
- The callback is called for each `mousemove` or `touchmove` event. */
73
- onDragOver?: string | ((event?: DragEvent, instance?: Instance) => void);
74
-
75
- /** A callback method invoked when the dragged item is dragged over the drop zone
76
- for the first time. */
77
- onDragEnter?: string | ((event?: DragEvent, instance?: Instance) => void);
78
-
79
- /** A callback method invoked when the dragged item leaves the drop zone area. */
80
- onDragLeave?: string | ((event?: DragEvent, instance?: Instance) => void);
81
-
82
- /** A callback method invoked when at the beginning of the drag & drop operation. */
83
- onDragStart?: string | ((event?: DragEvent, instance?: Instance) => void);
84
-
85
- /** A callback method invoked when at the end of the drag & drop operation. */
86
- onDragEnd?: string | ((event?: DragEvent, instance?: Instance) => void);
87
-
88
- /** Match height of the item being dragged */
89
- matchHeight?: boolean;
90
-
91
- /** Match width of the item being dragged */
92
- matchWidth?: boolean;
93
-
94
- /** Match margin of the item being dragged */
95
- matchMargin?: boolean;
96
- }
97
-
98
- export class DropZone extends Cx.Widget<DropZoneProps> {}
1
+ import * as Cx from "../../core";
2
+
3
+ import { Instance } from "../../ui/Instance";
4
+ import { DragEvent } from "./ops";
5
+
6
+ interface DropZoneProps extends Cx.StyledContainerProps {
7
+ /** CSS styles to be applied when drag cursor is over the drop zone. */
8
+ overStyle?: Cx.StyleProp;
9
+
10
+ /** CSS styles to be applied when drag cursor is near the drop zone. */
11
+ nearStyle?: Cx.StyleProp;
12
+
13
+ /** CSS styles to be applied when drag operations begin used to highlight drop zones. */
14
+ farStyle?: Cx.StyleProp;
15
+
16
+ /** Additional CSS class to be applied when drag cursor is over the drop zone. */
17
+ overClass?: Cx.ClassProp;
18
+
19
+ /** Additional CSS class to be applied when drag cursor is near the drop zone. */
20
+ nearClass?: Cx.ClassProp;
21
+
22
+ /** Additional CSS class to be applied when drag operations begin used to highlight drop zones. */
23
+ farClass?: Cx.ClassProp;
24
+
25
+ /** Distance in `px` used to determine if cursor is near the dropzone. If not configured, cursor is never considered near. */
26
+ nearDistance?: number;
27
+
28
+ /** Bindable data related to the DropZone that might be useful inside onDrop operations. */
29
+ data?: Cx.StructuredProp;
30
+
31
+ /**
32
+ * Inflate the drop zone's bounding box so it activates on cursor proximity.
33
+ * Useful for invisible drop-zones that are only a few pixels tall/wide.
34
+ */
35
+ inflate?: number;
36
+
37
+ /**
38
+ * Inflate the drop zone's bounding box horizontally so it activates on cursor proximity.
39
+ * Useful for invisible drop-zones that are only a few pixels tall/wide.
40
+ */
41
+ hinflate?: number;
42
+
43
+ /**
44
+ * Inflate the drop zone's bounding box vertically so it activates on cursor proximity.
45
+ * Useful for invisible drop-zones that are only a few pixels tall/wide.
46
+ */
47
+ vinflate?: number;
48
+
49
+ /** Base CSS class to be applied to the element. Defaults to 'dropzone'. */
50
+ baseClass?: string;
51
+
52
+ /** A callback method invoked when dragged item is finally dropped.
53
+ The callback takes two arguments:
54
+ * dragDropEvent - An object containing information related to the source
55
+ * instance
56
+ Return value is written into dragDropEvent.result and can be passed
57
+ to the source's onDragEnd callback. */
58
+ onDrop?: string | ((event?: DragEvent, instance?: Instance) => any);
59
+
60
+ /** A callback method used to test if dragged item (source) is compatible
61
+ with the drop zone. */
62
+ onDropTest?: string | ((event?: DragEvent, instance?: Instance) => boolean);
63
+
64
+ /** A callback method invoked when the dragged item gets close to the drop zone.
65
+ See also `nearDistance`. */
66
+ onDragNear?: string | ((event?: DragEvent, instance?: Instance) => void);
67
+
68
+ /** A callback method invoked when the dragged item is dragged away. */
69
+ onDragAway?: string | ((event?: DragEvent, instance?: Instance) => void);
70
+
71
+ /** A callback method invoked when the dragged item is dragged over the drop zone.
72
+ The callback is called for each `mousemove` or `touchmove` event. */
73
+ onDragOver?: string | ((event?: DragEvent, instance?: Instance) => void);
74
+
75
+ /** A callback method invoked when the dragged item is dragged over the drop zone
76
+ for the first time. */
77
+ onDragEnter?: string | ((event?: DragEvent, instance?: Instance) => void);
78
+
79
+ /** A callback method invoked when the dragged item leaves the drop zone area. */
80
+ onDragLeave?: string | ((event?: DragEvent, instance?: Instance) => void);
81
+
82
+ /** A callback method invoked when at the beginning of the drag & drop operation. */
83
+ onDragStart?: string | ((event?: DragEvent, instance?: Instance) => void);
84
+
85
+ /** A callback method invoked when at the end of the drag & drop operation. */
86
+ onDragEnd?: string | ((event?: DragEvent, instance?: Instance) => void);
87
+
88
+ /** Match height of the item being dragged */
89
+ matchHeight?: boolean;
90
+
91
+ /** Match width of the item being dragged */
92
+ matchWidth?: boolean;
93
+
94
+ /** Match margin of the item being dragged */
95
+ matchMargin?: boolean;
96
+ }
97
+
98
+ export class DropZone extends Cx.Widget<DropZoneProps> {}