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