@arcblock/ux 2.9.90 → 2.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (337) hide show
  1. package/lib/ActionButton/index.js +36 -48
  2. package/lib/ActivityIndicator/index.js +122 -75
  3. package/lib/Address/compact-text.js +48 -66
  4. package/lib/Address/did-address.js +114 -87
  5. package/lib/Address/index.js +15 -27
  6. package/lib/Address/responsive-did-address.js +48 -50
  7. package/lib/Alert/index.js +58 -52
  8. package/lib/AnimationWaiter/index.js +123 -69
  9. package/lib/Async/index.js +8 -22
  10. package/lib/Avatar/did-motif.js +38 -52
  11. package/lib/Avatar/etherscan-blockies.js +4 -10
  12. package/lib/Avatar/index.js +71 -77
  13. package/lib/Badge/index.js +49 -56
  14. package/lib/Blocklet/blocklet.js +181 -97
  15. package/lib/Blocklet/index.js +4 -24
  16. package/lib/Blocklet/utils.js +50 -13
  17. package/lib/BlockletContext/index.js +21 -31
  18. package/lib/BlockletNFT/index.js +255 -115
  19. package/lib/Button/index.js +5 -11
  20. package/lib/Button/wrap.js +45 -56
  21. package/lib/ButtonGroup/index.js +3 -9
  22. package/lib/CardSelector/index.js +67 -43
  23. package/lib/Center/index.js +19 -20
  24. package/lib/ClickToCopy/copy-button.js +37 -50
  25. package/lib/ClickToCopy/hook.js +10 -18
  26. package/lib/ClickToCopy/index.js +54 -66
  27. package/lib/CodeBlock/LightBox.js +84 -11
  28. package/lib/CodeBlock/index.js +175 -101
  29. package/lib/Colors/index.js +3 -20
  30. package/lib/Colors/themes/default.js +1 -7
  31. package/lib/Colors/themes/temp.js +1 -7
  32. package/lib/ContactForm/index.js +95 -60
  33. package/lib/CookieConsent/index.js +58 -52
  34. package/lib/CountDown/index.js +90 -59
  35. package/lib/DID/index.js +80 -96
  36. package/lib/Datatable/CustomToolbar.js +188 -137
  37. package/lib/Datatable/DatatableContext.js +14 -21
  38. package/lib/Datatable/TableSearch.js +99 -58
  39. package/lib/Datatable/index.js +312 -139
  40. package/lib/Datatable/utils.js +9 -17
  41. package/lib/Dialog/confirm.js +46 -58
  42. package/lib/Dialog/dialog.js +110 -66
  43. package/lib/Dialog/index.js +4 -27
  44. package/lib/Dialog/use-confirm.js +40 -65
  45. package/lib/DidLogo/index.js +14 -22
  46. package/lib/DriftBot/index.js +34 -19
  47. package/lib/Earth/index.js +214 -110
  48. package/lib/Earth/util.js +6 -19
  49. package/lib/Empty/index.js +33 -38
  50. package/lib/ErrorBoundary/fallback.js +45 -43
  51. package/lib/ErrorBoundary/index.js +1 -16
  52. package/lib/Footer/index.js +96 -48
  53. package/lib/Header/auto-hidden.js +28 -31
  54. package/lib/Header/header.js +151 -69
  55. package/lib/Header/index.js +2 -20
  56. package/lib/Header/responsive-header.js +67 -60
  57. package/lib/Icon/image.js +41 -45
  58. package/lib/Icon/index.js +51 -53
  59. package/lib/Img/index.js +77 -88
  60. package/lib/InfoRow/index.js +66 -48
  61. package/lib/Layout/dashboard/external-link.js +38 -53
  62. package/lib/Layout/dashboard/full-page.js +27 -41
  63. package/lib/Layout/dashboard/index.js +177 -132
  64. package/lib/Layout/dashboard/sidebar.js +164 -61
  65. package/lib/Layout/dashboard-legacy/header.js +119 -66
  66. package/lib/Layout/dashboard-legacy/index.js +90 -79
  67. package/lib/Layout/dashboard-legacy/sidebar.js +95 -62
  68. package/lib/Layout/index.js +200 -106
  69. package/lib/LoadingMask/index.js +31 -38
  70. package/lib/Locale/browser-lang.js +2 -8
  71. package/lib/Locale/context.js +46 -69
  72. package/lib/Locale/languages.js +6 -15
  73. package/lib/Locale/selector.js +116 -92
  74. package/lib/Locale/util.js +7 -16
  75. package/lib/Logo/index.js +54 -57
  76. package/lib/Metric/index.js +103 -40
  77. package/lib/NFTDisplay/aspect-ratio-container.js +33 -40
  78. package/lib/NFTDisplay/broken.js +68 -52
  79. package/lib/NFTDisplay/index.js +140 -129
  80. package/lib/NFTDisplay/loading.js +14 -13
  81. package/lib/NFTDisplay/svg-embedder/img.js +18 -33
  82. package/lib/NFTDisplay/svg-embedder/inline-svg.js +28 -32
  83. package/lib/NavMenu/index.js +2 -13
  84. package/lib/NavMenu/nav-menu.js +133 -148
  85. package/lib/NavMenu/style.js +179 -12
  86. package/lib/PageScroller/index.js +82 -93
  87. package/lib/PageScroller/story/FifthComponent.js +4 -10
  88. package/lib/PageScroller/story/FirstComponent.js +4 -10
  89. package/lib/PageScroller/story/FourthComponent.js +4 -10
  90. package/lib/PageScroller/story/FullPage.js +21 -28
  91. package/lib/PageScroller/story/PageContain.js +23 -30
  92. package/lib/PageScroller/story/SecondComponent.js +4 -10
  93. package/lib/PageScroller/story/ThirdComponent.js +4 -10
  94. package/lib/PageScroller/usePrevValue.js +4 -11
  95. package/lib/Passport/index.js +2 -9
  96. package/lib/Passport/passport.js +38 -51
  97. package/lib/PoweredByArcBlock/index.js +19 -33
  98. package/lib/PricingTable/PricingPlan.js +90 -34
  99. package/lib/PricingTable/index.js +28 -26
  100. package/lib/QRCode/index.js +38 -50
  101. package/lib/RelativeTime/index.js +44 -59
  102. package/lib/Result/common.js +85 -107
  103. package/lib/Result/index.js +22 -34
  104. package/lib/Result/result.js +35 -41
  105. package/lib/Result/translations.js +1 -7
  106. package/lib/Screenshot/BaseScreenshot/index.js +65 -43
  107. package/lib/Screenshot/BaseScreenshot/shells/Macbook.js +17 -27
  108. package/lib/Screenshot/BaseScreenshot/shells/Phone.js +14 -25
  109. package/lib/Screenshot/index.js +103 -92
  110. package/lib/SessionBlocklet/index.js +125 -143
  111. package/lib/SessionManager/index.js +2 -9
  112. package/lib/SessionPermission/index.js +13 -23
  113. package/lib/SessionUser/components/logged-in.js +139 -158
  114. package/lib/SessionUser/components/session-user-item.js +44 -58
  115. package/lib/SessionUser/components/session-user-switch.js +133 -152
  116. package/lib/SessionUser/components/un-login.js +27 -35
  117. package/lib/SessionUser/components/user-info.js +62 -74
  118. package/lib/SessionUser/index.js +26 -34
  119. package/lib/SessionUser/libs/translation.js +1 -7
  120. package/lib/SessionUser/libs/utils.js +13 -34
  121. package/lib/Sparkline/index.js +4 -10
  122. package/lib/Spinner/index.js +11 -17
  123. package/lib/SplitButton/index.js +72 -68
  124. package/lib/Success/index.js +28 -34
  125. package/lib/Switch/index.js +64 -75
  126. package/lib/Tabs/index.js +84 -103
  127. package/lib/Tag/index.js +52 -56
  128. package/lib/TextCollapse/index.js +57 -50
  129. package/lib/Theme/index.js +8 -47
  130. package/lib/Theme/theme-provider.js +19 -26
  131. package/lib/Theme/theme.js +49 -62
  132. package/lib/Toast/index.js +41 -73
  133. package/lib/Typography/index.js +44 -55
  134. package/lib/Util/constant.js +16 -22
  135. package/lib/Util/deprecate.js +14 -26
  136. package/lib/Util/federated.js +16 -38
  137. package/lib/Util/index.js +63 -113
  138. package/lib/Util/passport.js +23 -33
  139. package/lib/Util/wallet.js +5 -14
  140. package/lib/Video/index.js +34 -34
  141. package/lib/Wallet/Action.js +72 -49
  142. package/lib/Wallet/Download.js +132 -115
  143. package/lib/Wallet/Open.js +26 -25
  144. package/lib/WalletOSIcon/index.js +33 -42
  145. package/lib/WebWalletSWKeeper/index.js +42 -55
  146. package/lib/WechatPrompt/index.js +53 -33
  147. package/lib/index.js +38 -265
  148. package/lib/withTheme/index.js +53 -33
  149. package/lib/withTracker/error_boundary.js +7 -18
  150. package/lib/withTracker/index.js +25 -34
  151. package/package.json +9 -316
  152. package/src/WalletOSIcon/index.jsx +1 -1
  153. package/es/ActionButton/index.js +0 -99
  154. package/es/ActivityIndicator/index.js +0 -180
  155. package/es/Address/compact-text.js +0 -105
  156. package/es/Address/did-address.js +0 -222
  157. package/es/Address/index.js +0 -23
  158. package/es/Address/responsive-did-address.js +0 -87
  159. package/es/Alert/index.js +0 -134
  160. package/es/AnimationWaiter/default-animation.json +0 -1
  161. package/es/AnimationWaiter/index.js +0 -240
  162. package/es/Async/index.js +0 -38
  163. package/es/Avatar/did-motif.js +0 -68
  164. package/es/Avatar/etherscan-blockies.js +0 -83
  165. package/es/Avatar/index.js +0 -179
  166. package/es/Badge/index.js +0 -98
  167. package/es/Blocklet/blocklet.js +0 -298
  168. package/es/Blocklet/index.js +0 -4
  169. package/es/Blocklet/utils.js +0 -52
  170. package/es/BlockletContext/index.js +0 -65
  171. package/es/BlockletNFT/index.js +0 -412
  172. package/es/Button/index.js +0 -8
  173. package/es/Button/wrap.js +0 -140
  174. package/es/ButtonGroup/index.js +0 -6
  175. package/es/CardSelector/index.js +0 -149
  176. package/es/Center/index.js +0 -41
  177. package/es/ClickToCopy/copy-button.js +0 -72
  178. package/es/ClickToCopy/hook.js +0 -39
  179. package/es/ClickToCopy/index.js +0 -92
  180. package/es/CodeBlock/LightBox.js +0 -85
  181. package/es/CodeBlock/index.js +0 -222
  182. package/es/Colors/index.js +0 -3
  183. package/es/Colors/themes/default.js +0 -77
  184. package/es/Colors/themes/temp.js +0 -41
  185. package/es/ContactForm/index.js +0 -230
  186. package/es/CookieConsent/index.js +0 -113
  187. package/es/CountDown/index.js +0 -178
  188. package/es/DID/index.js +0 -249
  189. package/es/Datatable/CustomToolbar.js +0 -396
  190. package/es/Datatable/DatatableContext.js +0 -34
  191. package/es/Datatable/TableSearch.js +0 -166
  192. package/es/Datatable/index.js +0 -629
  193. package/es/Datatable/utils.js +0 -132
  194. package/es/Dialog/confirm.js +0 -123
  195. package/es/Dialog/dialog.js +0 -201
  196. package/es/Dialog/index.js +0 -4
  197. package/es/Dialog/types.d.ts +0 -17
  198. package/es/Dialog/use-confirm.js +0 -133
  199. package/es/DidLogo/index.js +0 -31
  200. package/es/DriftBot/index.js +0 -70
  201. package/es/Earth/countries.json +0 -8057
  202. package/es/Earth/index.js +0 -521
  203. package/es/Earth/util.js +0 -51
  204. package/es/Empty/index.js +0 -65
  205. package/es/ErrorBoundary/fallback.js +0 -73
  206. package/es/ErrorBoundary/index.js +0 -1
  207. package/es/Footer/index.js +0 -172
  208. package/es/Header/auto-hidden.js +0 -35
  209. package/es/Header/header.js +0 -223
  210. package/es/Header/index.js +0 -2
  211. package/es/Header/responsive-header.js +0 -146
  212. package/es/Icon/image.js +0 -65
  213. package/es/Icon/index.js +0 -84
  214. package/es/Img/index.js +0 -218
  215. package/es/InfoRow/index.js +0 -87
  216. package/es/Layout/dashboard/external-link.js +0 -58
  217. package/es/Layout/dashboard/full-page.js +0 -53
  218. package/es/Layout/dashboard/index.js +0 -282
  219. package/es/Layout/dashboard/sidebar.js +0 -209
  220. package/es/Layout/dashboard-legacy/header.js +0 -174
  221. package/es/Layout/dashboard-legacy/index.js +0 -148
  222. package/es/Layout/dashboard-legacy/sidebar.js +0 -129
  223. package/es/Layout/index.js +0 -335
  224. package/es/LoadingMask/index.js +0 -102
  225. package/es/Locale/browser-lang.js +0 -52
  226. package/es/Locale/context.js +0 -139
  227. package/es/Locale/languages.js +0 -60
  228. package/es/Locale/selector.js +0 -186
  229. package/es/Locale/util.js +0 -21
  230. package/es/Logo/images/logo-dark-text.svg +0 -3
  231. package/es/Logo/images/logo-dark-top.svg +0 -6
  232. package/es/Logo/images/logo-light-text.svg +0 -3
  233. package/es/Logo/images/logo-light-top.svg +0 -6
  234. package/es/Logo/index.js +0 -136
  235. package/es/Metric/index.js +0 -132
  236. package/es/NFTDisplay/NFTBroken.svg +0 -34
  237. package/es/NFTDisplay/README.md +0 -59
  238. package/es/NFTDisplay/aspect-ratio-container.js +0 -39
  239. package/es/NFTDisplay/broken.js +0 -132
  240. package/es/NFTDisplay/demo/data/asset-state-display-url.json +0 -7
  241. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-1-1.json +0 -10
  242. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-374-130.json +0 -10
  243. package/es/NFTDisplay/demo/data/asset-state-gzipped-svg-with-foreign-object.json +0 -20
  244. package/es/NFTDisplay/demo/data/asset-state-svg.json +0 -29
  245. package/es/NFTDisplay/demo/data/asset-state-url.json +0 -10
  246. package/es/NFTDisplay/index.js +0 -328
  247. package/es/NFTDisplay/loading.js +0 -18
  248. package/es/NFTDisplay/svg-embedder/img.js +0 -45
  249. package/es/NFTDisplay/svg-embedder/inline-svg.js +0 -39
  250. package/es/NavMenu/index.js +0 -2
  251. package/es/NavMenu/nav-menu.js +0 -358
  252. package/es/NavMenu/style.js +0 -181
  253. package/es/PageScroller/index.js +0 -286
  254. package/es/PageScroller/story/FifthComponent.js +0 -9
  255. package/es/PageScroller/story/FirstComponent.js +0 -9
  256. package/es/PageScroller/story/FourthComponent.js +0 -12
  257. package/es/PageScroller/story/FullPage.js +0 -47
  258. package/es/PageScroller/story/PageContain.js +0 -59
  259. package/es/PageScroller/story/SecondComponent.js +0 -9
  260. package/es/PageScroller/story/ThirdComponent.js +0 -9
  261. package/es/PageScroller/story/index.css +0 -115
  262. package/es/PageScroller/usePrevValue.js +0 -9
  263. package/es/Passport/index.js +0 -2
  264. package/es/Passport/passport.js +0 -103
  265. package/es/PoweredByArcBlock/index.js +0 -31
  266. package/es/PricingTable/PricingPlan.js +0 -124
  267. package/es/PricingTable/index.js +0 -53
  268. package/es/QRCode/index.js +0 -73
  269. package/es/RelativeTime/index.js +0 -107
  270. package/es/Result/common.js +0 -140
  271. package/es/Result/demo/fixtures/result-image-404.svg +0 -1
  272. package/es/Result/index.js +0 -33
  273. package/es/Result/result.js +0 -59
  274. package/es/Result/translations.js +0 -54
  275. package/es/Screenshot/BaseScreenshot/index.js +0 -91
  276. package/es/Screenshot/BaseScreenshot/shells/Macbook.js +0 -51
  277. package/es/Screenshot/BaseScreenshot/shells/Phone.js +0 -36
  278. package/es/Screenshot/demo/images/bg-00.jpg +0 -0
  279. package/es/Screenshot/demo/images/bg-01.jpg +0 -0
  280. package/es/Screenshot/demo/images/bg-02.jpg +0 -0
  281. package/es/Screenshot/demo/images/bg-03.jpg +0 -0
  282. package/es/Screenshot/demo/images/bg-04.jpg +0 -0
  283. package/es/Screenshot/demo/images/bg-05.jpg +0 -0
  284. package/es/Screenshot/demo/images/bg-06.jpg +0 -0
  285. package/es/Screenshot/demo/images/bg-07.jpg +0 -0
  286. package/es/Screenshot/demo/images/bg-08.jpg +0 -0
  287. package/es/Screenshot/demo/images/bg-09.jpg +0 -0
  288. package/es/Screenshot/devices.css +0 -1366
  289. package/es/Screenshot/index.js +0 -299
  290. package/es/SessionBlocklet/index.js +0 -173
  291. package/es/SessionManager/index.js +0 -2
  292. package/es/SessionPermission/index.js +0 -28
  293. package/es/SessionUser/components/logged-in.js +0 -229
  294. package/es/SessionUser/components/session-user-item.js +0 -102
  295. package/es/SessionUser/components/session-user-switch.js +0 -223
  296. package/es/SessionUser/components/un-login.js +0 -64
  297. package/es/SessionUser/components/user-info.js +0 -167
  298. package/es/SessionUser/index.js +0 -49
  299. package/es/SessionUser/libs/translation.js +0 -19
  300. package/es/SessionUser/libs/utils.js +0 -29
  301. package/es/Sparkline/index.js +0 -193
  302. package/es/Spinner/index.js +0 -28
  303. package/es/SplitButton/index.js +0 -145
  304. package/es/Success/index.js +0 -175
  305. package/es/Switch/index.js +0 -96
  306. package/es/Tabs/index.js +0 -214
  307. package/es/Tag/index.js +0 -108
  308. package/es/TextCollapse/index.js +0 -92
  309. package/es/Theme/index.js +0 -16
  310. package/es/Theme/theme-provider.js +0 -39
  311. package/es/Theme/theme.js +0 -145
  312. package/es/Toast/index.js +0 -97
  313. package/es/Typography/index.js +0 -95
  314. package/es/Util/constant.js +0 -42
  315. package/es/Util/deprecate.js +0 -28
  316. package/es/Util/federated.js +0 -91
  317. package/es/Util/index.js +0 -363
  318. package/es/Util/passport.js +0 -62
  319. package/es/Util/wallet.js +0 -32
  320. package/es/Video/index.js +0 -89
  321. package/es/Wallet/Action.js +0 -119
  322. package/es/Wallet/Download.js +0 -331
  323. package/es/Wallet/Open.js +0 -45
  324. package/es/Wallet/images/abtwallet.png +0 -0
  325. package/es/Wallet/images/android_download.svg +0 -23
  326. package/es/Wallet/images/app-store.svg +0 -20
  327. package/es/Wallet/images/google-play.svg +0 -70
  328. package/es/WalletOSIcon/index.js +0 -82
  329. package/es/WebWalletSWKeeper/index.js +0 -117
  330. package/es/WechatPrompt/images/android.png +0 -0
  331. package/es/WechatPrompt/images/ios.png +0 -0
  332. package/es/WechatPrompt/index.js +0 -88
  333. package/es/index.js +0 -38
  334. package/es/withTheme/index.js +0 -69
  335. package/es/withTracker/README.md +0 -34
  336. package/es/withTracker/error_boundary.js +0 -34
  337. package/es/withTracker/index.js +0 -55
package/es/Earth/index.js DELETED
@@ -1,521 +0,0 @@
1
- /* eslint-disable consistent-return */
2
- import { useReducer, useRef, useEffect } from 'react';
3
- import useSpring from 'react-use/lib/useSpring';
4
- import PropTypes from 'prop-types';
5
- import * as d3 from 'd3-geo';
6
- import * as topojson from 'topojson-client';
7
- import versor from 'versor';
8
- import json from './countries.json';
9
- import util from './util';
10
- import { withDeprecated } from '../Util/deprecate';
11
- import { styled } from '../Theme';
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
14
- const geoJson = topojson.feature(json, json.objects.ne_110m_admin_0_countries);
15
- const themes = {
16
- light: {
17
- ocean: '#EDF4F4',
18
- graticule: '#EDF4F4',
19
- land: '#CCEAEA',
20
- activeLand: '#AFD3D3',
21
- border: '#AFD3D3',
22
- marker: '#4E6AF6',
23
- activeMarker: '#4E6AF6'
24
- },
25
- dark: {
26
- ocean: '#09233B',
27
- graticule: '#09233B',
28
- land: '#0D2344',
29
- activeLand: '#173159',
30
- border: '#89DDD9',
31
- marker: '#ffffff',
32
- activeMarker: '#FFD159'
33
- }
34
- };
35
- function stateReducer(state, action) {
36
- switch (action.type) {
37
- case 'dragEnd':
38
- return {
39
- ...state,
40
- isDragging: false
41
- };
42
- case 'dragStart':
43
- return {
44
- ...state,
45
- isDragging: true,
46
- animationDuration: 1,
47
- mousePosition: action.payload.mousePosition
48
- };
49
- case 'tooltip':
50
- case 'rotate':
51
- return Object.assign({}, state, action.payload);
52
- default:
53
- return state;
54
- }
55
- }
56
- function Earth({
57
- theme,
58
- width,
59
- height,
60
- enableRotation,
61
- rotationSpeed,
62
- markers,
63
- activeMarkerId,
64
- colors
65
- }) {
66
- Object.assign(colors, themes[theme]);
67
- const [state, dispatch] = useReducer(stateReducer, {
68
- rotation: [0, 0, 0],
69
- isDragging: false,
70
- animateDuration: 1,
71
- mousePosition: null,
72
- tooltipIndex: -1
73
- });
74
- const svgRef = useRef(null);
75
-
76
- // variables used to track drag and rotate
77
- const dragRef = useRef({
78
- v0: undefined,
79
- r0: undefined,
80
- q0: undefined
81
- });
82
-
83
- // variables used to track start and end position when there is active marker
84
- const rotateRef = useRef({
85
- p1: null,
86
- p2: [0, 0],
87
- r1: null,
88
- r2: [0, 0, 0],
89
- step: 0,
90
- markerId: null,
91
- iv: null
92
- });
93
-
94
- // console.log('renderGlobe', state, dragRef.current, rotateRef.current, geoJson);
95
- const t = useSpring(state.animateDuration, 170, 26);
96
- const isValid = activeMarkerId && rotateRef.current.markerId !== activeMarkerId && markers.some(x => x.id === activeMarkerId);
97
-
98
- // Setup path for globe
99
- const projection = d3.geoOrthographic().fitExtent([[30, 30], [width - 30, height - 30]], geoJson).rotate(t <= 1 || state.isDragging || !activeMarkerId ? state.rotation : rotateRef.current.iv(t / state.animateDuration));
100
- const pathGenerator = d3.geoPath().projection(projection).pointRadius(2);
101
- useEffect(() => {
102
- // Rotate to active marker
103
- if (isValid) {
104
- // eslint-disable-next-line prefer-const
105
- let {
106
- p1,
107
- p2,
108
- r1,
109
- r2,
110
- markerId
111
- } = rotateRef.current;
112
- // We should only start new animation if the marker has changed
113
- if (markerId !== activeMarkerId && !state.isDragging) {
114
- const marker = markers.find(x => x.id === activeMarkerId);
115
- p1 = p2;
116
- p2 = [marker.longitude, marker.latitude];
117
- r1 = r2;
118
- r2 = [-p2[0], 20 - p2[1], projection.rotate()[2]];
119
- const iv = util.interpolateAngles(r1, r2);
120
- Object.assign(rotateRef.current, {
121
- p1,
122
- p2,
123
- r1,
124
- r2,
125
- iv,
126
- markerId: activeMarkerId
127
- });
128
- const duration = state.animateDuration * 2;
129
- dispatch({
130
- type: 'rotate',
131
- payload: {
132
- animateDuration: duration > 1e3 ? 2 : duration
133
- }
134
- });
135
- }
136
-
137
- // Enable auto rotation
138
- } else if (enableRotation) {
139
- const handler = window.requestAnimationFrame(() => {
140
- const newRotation = [state.rotation[0] + 2 / rotationSpeed, state.rotation[1], state.rotation[2]];
141
- dispatch({
142
- type: 'rotate',
143
- payload: {
144
- rotation: newRotation
145
- }
146
- });
147
- });
148
- return function cleanup() {
149
- window.cancelAnimationFrame(handler);
150
- };
151
- }
152
- });
153
- const getMousePosition = event => {
154
- const node = svgRef.current;
155
- const rect = node.getBoundingClientRect();
156
- const mousePosition = [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
157
- return mousePosition;
158
- };
159
- const onDragStart = event => {
160
- const mousePosition = getMousePosition(event);
161
- if (!mousePosition[0]) {
162
- return;
163
- }
164
- dragRef.current.v0 = versor.cartesian(projection.invert(mousePosition));
165
- dragRef.current.r0 = projection.rotate();
166
- dragRef.current.q0 = versor(dragRef.current.r0);
167
- dispatch({
168
- type: 'dragStart',
169
- payload: {
170
- mousePosition
171
- }
172
- });
173
- };
174
- const onDrag = event => {
175
- if (state.isDragging === false) {
176
- return;
177
- }
178
- const mousePosition = getMousePosition(event);
179
- const {
180
- r0,
181
- v0,
182
- q0
183
- } = dragRef.current;
184
- const v1 = versor.cartesian(projection.rotate(r0).invert(mousePosition));
185
- const q1 = versor.multiply(q0, versor.delta(v0, v1));
186
- const r1 = versor.rotation(q1);
187
- dispatch({
188
- type: 'rotate',
189
- payload: {
190
- rotation: r1,
191
- mousePosition
192
- }
193
- });
194
- };
195
- const onDragEnd = () => {
196
- setTimeout(() => {
197
- dispatch({
198
- type: 'dragEnd',
199
- payload: {}
200
- });
201
- }, 200);
202
- };
203
- const onShowTooltip = (event, i) => dispatch({
204
- type: 'tooltip',
205
- payload: {
206
- tooltipIndex: i,
207
- mousePosition: getMousePosition(event)
208
- }
209
- });
210
- const onHideTooltip = () => dispatch({
211
- type: 'tooltip',
212
- payload: {
213
- tooltipIndex: -1,
214
- mousePosition: null
215
- }
216
- });
217
- const renderMarkers = () => markers.map((x, i) => {
218
- const areaCoords = [x.longitude, x.latitude];
219
- const distance = d3.geoDistance(areaCoords, projection.invert([width / 2, height / 2]));
220
- const sphereCoords = projection(areaCoords);
221
- const isActive = activeMarkerId === x.id;
222
- // eslint-disable-next-line no-nested-ternary
223
- const fill = distance > 1.57 ? 'none' : isActive ? colors.activeMarker : colors.marker;
224
- const radius = isActive ? 9 : 6;
225
- return /*#__PURE__*/_jsxs("g", {
226
- className: `marker ${isActive ? 'marker--active' : ''}`,
227
- onFocus: event => onShowTooltip(event, i),
228
- onBlur: onHideTooltip,
229
- onMouseOver: event => onShowTooltip(event, i),
230
- onMouseOut: onHideTooltip,
231
- children: [/*#__PURE__*/_jsx("circle", {
232
- className: "marker__inner",
233
- r: radius,
234
- cx: sphereCoords[0],
235
- cy: sphereCoords[1],
236
- fill: fill,
237
- style: {
238
- fillOpacity: isActive ? 1 : 0.5
239
- }
240
- }, "marker-inner"), /*#__PURE__*/_jsx("circle", {
241
- className: "marker__outer",
242
- r: radius * 2,
243
- cx: sphereCoords[0],
244
- cy: sphereCoords[1],
245
- fill: fill,
246
- style: {
247
- animationDuration: isActive ? '800ms' : '1600ms',
248
- animationDelay: `${i * 0.2}s`,
249
- transformOrigin: `${sphereCoords[0]}px ${sphereCoords[1]}px`
250
- }
251
- }, "marker-outer")]
252
- }, x.id);
253
- });
254
- const renderTooltip = () => {
255
- if (state.tooltipIndex >= 0) {
256
- const marker = markers[state.tooltipIndex];
257
- return /*#__PURE__*/_jsxs(Tooltip, {
258
- style: {
259
- left: state.mousePosition[0],
260
- top: state.mousePosition[1]
261
- },
262
- children: [/*#__PURE__*/_jsx("p", {
263
- className: "title",
264
- children: marker.title
265
- }), /*#__PURE__*/_jsx("p", {
266
- className: "description",
267
- children: marker.description
268
- }), /*#__PURE__*/_jsxs("p", {
269
- className: "description",
270
- children: ["ID: ", marker.id]
271
- })]
272
- });
273
- }
274
- };
275
- let activeCountry = null;
276
- if (activeMarkerId && markers.some(x => x.id === activeMarkerId)) {
277
- const activeMarker = markers.find(x => x.id === activeMarkerId);
278
- activeCountry = geoJson.features.findIndex(x => x.properties && x.properties.name && x.properties.name === activeMarker.country);
279
- }
280
- return /*#__PURE__*/_jsxs(Container, {
281
- width: width,
282
- height: height,
283
- theme: theme,
284
- colors: colors,
285
- onMouseLeave: onDragEnd,
286
- children: [renderTooltip(), /*#__PURE__*/_jsxs("svg", {
287
- className: "earth",
288
- width: width,
289
- height: height,
290
- onMouseDown: onDragStart,
291
- onMouseMove: onDrag,
292
- onMouseUp: onDragEnd,
293
- ref: svgRef,
294
- children: [/*#__PURE__*/_jsx("rect", {
295
- className: "frame",
296
- width: width,
297
- height: height
298
- }), /*#__PURE__*/_jsx("circle", {
299
- cx: width / 2,
300
- cy: height / 2,
301
- r: projection.scale(),
302
- className: "globe",
303
- filter: "url(#glow)"
304
- }), /*#__PURE__*/_jsx("path", {
305
- className: "graticule",
306
- d: pathGenerator(d3.geoGraticule().step([10, 10])())
307
- }), /*#__PURE__*/_jsx("g", {
308
- className: "features",
309
- children: geoJson.features.map((x, i) => /*#__PURE__*/_jsx("path", {
310
- className: `country ${activeCountry === i ? 'country--active' : ''}`,
311
- d: pathGenerator(x)
312
- }, x.properties.name))
313
- }), /*#__PURE__*/_jsx("g", {
314
- className: "markers",
315
- children: renderMarkers()
316
- }), state.isDragging && state.mousePosition && /*#__PURE__*/_jsx("path", {
317
- className: "point point-mouse",
318
- d: pathGenerator({
319
- type: 'Point',
320
- coordinates: projection.invert(state.mousePosition)
321
- })
322
- })]
323
- }), /*#__PURE__*/_jsx("svg", {
324
- className: "defs",
325
- children: /*#__PURE__*/_jsxs("defs", {
326
- children: [/*#__PURE__*/_jsxs("linearGradient", {
327
- id: "gradBlue",
328
- x1: "0%",
329
- y1: "0%",
330
- x2: "100%",
331
- y2: "0%",
332
- children: [/*#__PURE__*/_jsx("stop", {
333
- offset: "0%",
334
- style: {
335
- stopColor: '#005C99',
336
- stopOpacity: 1
337
- }
338
- }), /*#__PURE__*/_jsx("stop", {
339
- offset: "100%",
340
- style: {
341
- stopColor: '#0099FF',
342
- stopOpacity: 1
343
- }
344
- })]
345
- }), /*#__PURE__*/_jsxs("filter", {
346
- id: "glow",
347
- children: [/*#__PURE__*/_jsx("feColorMatrix", {
348
- type: "matrix",
349
- values: "0 0 0 0 0 0 0 0 0.9 0 0 0 0 0.9 0 0 0 0 1 0"
350
- }), /*#__PURE__*/_jsx("feGaussianBlur", {
351
- stdDeviation: "5.5",
352
- result: "coloredBlur"
353
- }), /*#__PURE__*/_jsxs("feMerge", {
354
- children: [/*#__PURE__*/_jsx("feMergeNode", {
355
- in: "coloredBlur"
356
- }), /*#__PURE__*/_jsx("feMergeNode", {
357
- in: "SourceGraphic"
358
- })]
359
- })]
360
- })]
361
- })
362
- })]
363
- });
364
- }
365
- Earth.propTypes = {
366
- theme: PropTypes.oneOf(['light', 'dark']),
367
- width: PropTypes.number,
368
- height: PropTypes.number,
369
- enableRotation: PropTypes.bool,
370
- rotationSpeed: PropTypes.number,
371
- activeMarkerId: PropTypes.string,
372
- markers: PropTypes.arrayOf(PropTypes.shape({
373
- id: PropTypes.string.isRequired,
374
- title: PropTypes.string.isRequired,
375
- description: PropTypes.string.isRequired,
376
- country: PropTypes.string.isRequired,
377
- latitude: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
378
- longitude: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
379
- })),
380
- colors: PropTypes.shape({
381
- ocean: PropTypes.string,
382
- graticule: PropTypes.string,
383
- land: PropTypes.string,
384
- activeLand: PropTypes.string,
385
- border: PropTypes.string,
386
- marker: PropTypes.string,
387
- activeMarker: PropTypes.string
388
- })
389
- };
390
- Earth.defaultProps = {
391
- theme: 'dark',
392
- width: 1200,
393
- height: 600,
394
- enableRotation: false,
395
- rotationSpeed: 5,
396
- markers: [],
397
- activeMarkerId: undefined,
398
- colors: {}
399
- };
400
- export default withDeprecated(Earth, {
401
- name: 'Earth'
402
- });
403
- const Container = styled('div')`
404
- background-color: ${props => props.theme === 'light' ? '#f7f7f7' : '#222'};
405
- width: ${props => props.width}px;
406
- height: ${props => props.height}px;
407
- position: relative;
408
- animation-name: zoomIn;
409
- animation-duration: 1s;
410
- animation-iteration-count: 1;
411
- animation-timing-function: ease;
412
- user-select: none;
413
-
414
- .defs {
415
- height: 0;
416
- width: 0;
417
- }
418
-
419
- .frame {
420
- fill: none;
421
- pointer-events: all;
422
- }
423
-
424
- .country {
425
- fill: ${props => props.colors.land};
426
- stroke: ${props => props.colors.border};
427
- stroke-width: 0.5px;
428
- transition: fill 300ms ease;
429
-
430
- &:hover {
431
- fill: ${props => props.colors.activeLand};
432
- }
433
- }
434
-
435
- .country--active {
436
- fill: ${props => props.colors.activeLand};
437
- }
438
-
439
- .globe {
440
- fill: ${props => props.colors.ocean};
441
- stroke: rgba(255, 255, 255, 0.5);
442
- stroke-width: 0.25px;
443
- }
444
-
445
- .graticule {
446
- fill: none;
447
- stroke: ${props => props.colors.graticule};
448
- }
449
-
450
- .star {
451
- fill: #fff;
452
- stroke: rgba(255, 255, 255, 0.5);
453
- stroke-width: 0.25px;
454
- }
455
-
456
- .marker {
457
- .marker__outer {
458
- fill-opacity: 0;
459
- animation: scaleIn 2s infinite ease-in-out;
460
- }
461
- }
462
-
463
- @keyframes zoomIn {
464
- from {
465
- opacity: 0;
466
- transform: scale3d(0.1, 0.1, 0.1);
467
- }
468
-
469
- 50% {
470
- opacity: 1;
471
- }
472
- }
473
-
474
- @keyframes scaleIn {
475
- from {
476
- fill-opacity: 0.3;
477
- transform: scale3d(0.5, 0.5, 0.5);
478
- }
479
- to {
480
- fill-opacity: 0;
481
- transform: scale3d(1.5, 1.5, 1.5);
482
- }
483
- }
484
- `;
485
- const Tooltip = styled('div')`
486
- position: absolute;
487
- width: auto;
488
- min-width: 90px;
489
- max-width: 320px;
490
- padding: 8px 12px;
491
- font-size: 14px;
492
- background-color: #4a4a4a;
493
- border-radius: 2px;
494
- animation-name: fadeIn;
495
- animation-duration: 250ms;
496
- animation-iteration-count: 1;
497
- animation-timing-function: ease;
498
-
499
- .title,
500
- .description {
501
- margin: 0;
502
- font-size: 16px;
503
- color: #fff;
504
- }
505
-
506
- .description {
507
- margin-top: ${props => props.theme.spacing(1)}px;
508
- color: #fff;
509
- font-size: 12px;
510
- }
511
-
512
- @keyframes fadeIn {
513
- from {
514
- opacity: 0;
515
- }
516
-
517
- to {
518
- opacity: 1;
519
- }
520
- }
521
- `;
package/es/Earth/util.js DELETED
@@ -1,51 +0,0 @@
1
- /* eslint-disable */
2
- // Code from: https://observablehq.com/@d3/world-tour
3
- export default class Util {
4
- static fromAngles([l, p, g]) {
5
- l *= Math.PI / 360;
6
- p *= Math.PI / 360;
7
- g *= Math.PI / 360;
8
- const sl = Math.sin(l);
9
- const cl = Math.cos(l);
10
- const sp = Math.sin(p);
11
- const cp = Math.cos(p);
12
- const sg = Math.sin(g);
13
- const cg = Math.cos(g);
14
- return [cl * cp * cg + sl * sp * sg, sl * cp * cg - cl * sp * sg, cl * sp * cg + sl * cp * sg, cl * cp * sg - sl * sp * cg];
15
- }
16
- static toAngles([a, b, c, d]) {
17
- return [Math.atan2(2 * (a * b + c * d), 1 - 2 * (b * b + c * c)) * 180 / Math.PI, Math.asin(Math.max(-1, Math.min(1, 2 * (a * c - d * b)))) * 180 / Math.PI, Math.atan2(2 * (a * d + b * c), 1 - 2 * (c * c + d * d)) * 180 / Math.PI];
18
- }
19
- static interpolateAngles(a, b) {
20
- const i = Util.interpolate(Util.fromAngles(a), Util.fromAngles(b));
21
- return t => Util.toAngles(i(t));
22
- }
23
- static interpolateLinear([a1, b1, c1, d1], [a2, b2, c2, d2]) {
24
- a2 -= a1, b2 -= b1, c2 -= c1, d2 -= d1;
25
- const x = new Array(4);
26
- return t => {
27
- const l = Math.hypot(x[0] = a1 + a2 * t, x[1] = b1 + b2 * t, x[2] = c1 + c2 * t, x[3] = d1 + d2 * t);
28
- x[0] /= l, x[1] /= l, x[2] /= l, x[3] /= l;
29
- return x;
30
- };
31
- }
32
- static interpolate([a1, b1, c1, d1], [a2, b2, c2, d2]) {
33
- let dot = a1 * a2 + b1 * b2 + c1 * c2 + d1 * d2;
34
- if (dot < 0) a2 = -a2, b2 = -b2, c2 = -c2, d2 = -d2, dot = -dot;
35
- if (dot > 0.9995) return Util.interpolateLinear([a1, b1, c1, d1], [a2, b2, c2, d2]);
36
- const theta0 = Math.acos(Math.max(-1, Math.min(1, dot)));
37
- const x = new Array(4);
38
- const l = Math.hypot(a2 -= a1 * dot, b2 -= b1 * dot, c2 -= c1 * dot, d2 -= d1 * dot);
39
- a2 /= l, b2 /= l, c2 /= l, d2 /= l;
40
- return t => {
41
- const theta = theta0 * t;
42
- const s = Math.sin(theta);
43
- const c = Math.cos(theta);
44
- x[0] = a1 * c + a2 * s;
45
- x[1] = b1 * c + b2 * s;
46
- x[2] = c1 * c + c2 * s;
47
- x[3] = d1 * c + d2 * s;
48
- return x;
49
- };
50
- }
51
- }
package/es/Empty/index.js DELETED
@@ -1,65 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import { Box } from '@mui/material';
3
- import EmptyIcon from '@arcblock/icons/lib/EmptyIcon';
4
- import { styled } from '../Theme';
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- import { jsxs as _jsxs } from "react/jsx-runtime";
7
- const Wrapper = styled(Box)`
8
- display: flex;
9
- justify-content: center;
10
- align-items: center;
11
- flex-direction: column;
12
- height: 100%;
13
- min-height: 100px;
14
- color: #999;
15
- .empty-icon {
16
- margin: 10px 0;
17
- }
18
- `;
19
-
20
- /**
21
- * Empty component to display empty state
22
- * @typedef {{
23
- * color?: string;
24
- * size?: number;
25
- * children?: import('react').ReactNode;
26
- * } & import('react').ComponentPropsWithoutRef<"div"> } EmptyProps
27
- */
28
-
29
- /**
30
- * Empty state component
31
- * @param {EmptyProps} props
32
- * @returns {JSX.Element}
33
- */
34
- function Empty({
35
- color,
36
- size,
37
- children,
38
- ...rest
39
- }) {
40
- return /*#__PURE__*/_jsxs(Wrapper, {
41
- ...rest,
42
- children: [/*#__PURE__*/_jsx(EmptyIcon, {
43
- style: {
44
- width: size,
45
- height: size,
46
- color
47
- },
48
- className: "empty-icon"
49
- }), /*#__PURE__*/_jsx(Box, {
50
- className: "empty-content",
51
- children: children
52
- })]
53
- });
54
- }
55
- Empty.propTypes = {
56
- color: PropTypes.string,
57
- size: PropTypes.number,
58
- children: PropTypes.any
59
- };
60
- Empty.defaultProps = {
61
- color: 'inherit',
62
- size: 36,
63
- children: null
64
- };
65
- export default Empty;
@@ -1,73 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import { red } from '@mui/material/colors';
3
- import Button from '../Button';
4
- import { styled } from '../Theme';
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- import { jsxs as _jsxs } from "react/jsx-runtime";
7
- function InternalErrorFallback({
8
- title,
9
- desc,
10
- retryFunc
11
- }) {
12
- return /*#__PURE__*/_jsxs(Root, {
13
- role: "alert",
14
- children: [/*#__PURE__*/_jsx("h3", {
15
- children: title
16
- }), /*#__PURE__*/_jsx("pre", {
17
- children: desc
18
- }), retryFunc && /*#__PURE__*/_jsx(Button, {
19
- variant: "contained",
20
- color: "error",
21
- size: "small",
22
- onClick: retryFunc,
23
- children: "Try again"
24
- })]
25
- });
26
- }
27
- InternalErrorFallback.propTypes = {
28
- title: PropTypes.string,
29
- desc: PropTypes.string.isRequired,
30
- retryFunc: PropTypes.func
31
- };
32
- InternalErrorFallback.defaultProps = {
33
- title: 'Something went wrong...',
34
- retryFunc: null
35
- };
36
- export function ErrorFallback({
37
- error
38
- }) {
39
- return /*#__PURE__*/_jsx(InternalErrorFallback, {
40
- desc: error.message
41
- });
42
- }
43
- ErrorFallback.propTypes = {
44
- error: PropTypes.instanceOf(Error).isRequired
45
- };
46
- export function ErrorFallbackRetry({
47
- error,
48
- resetErrorBoundary
49
- }) {
50
- return /*#__PURE__*/_jsx(InternalErrorFallback, {
51
- desc: error.message,
52
- retryFunc: resetErrorBoundary
53
- });
54
- }
55
- ErrorFallbackRetry.propTypes = {
56
- error: PropTypes.instanceOf(Error).isRequired,
57
- resetErrorBoundary: PropTypes.func.isRequired
58
- };
59
- const Root = styled('div')`
60
- padding: 16px;
61
- border: 2px solid ${props => props.theme.palette.error.main};
62
- border-radius: 4px;
63
- color: ${props => props.theme.palette.error.main};
64
- background-color: ${red[50]};
65
- font-size: 14px;
66
- h3 {
67
- margin: 0;
68
- font-size: 16px;
69
- }
70
- pre {
71
- white-space: normal;
72
- }
73
- `;
@@ -1 +0,0 @@
1
- export * from './fallback';