@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
@@ -1,148 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import Helmet from 'react-helmet';
4
- import Container from '@mui/material/Container';
5
- import Box from '@mui/material/Box';
6
- import Drawer from '@mui/material/Drawer';
7
- import { useSize } from 'ahooks';
8
- import Sidebar from './sidebar';
9
- import Header from './header';
10
- import Footer from '../../Footer';
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 Wrapper = styled('div')`
15
- &.dashboard {
16
- display: flex;
17
- flex-direction: column;
18
- height: 100vh;
19
- }
20
- .dashboard__body {
21
- overflow: hidden;
22
- flex: 1;
23
- }
24
- .dashboard__main {
25
- display: flex;
26
- flex-direction: column;
27
- overflow: auto;
28
- flex: 1;
29
- }
30
- .dashboard__content {
31
- flex: 1;
32
- }
33
-
34
- .drawerPaper {
35
- position: relative;
36
- white-space: nowrap;
37
- width: 120px;
38
- background: ${props => props.theme.palette.background.default};
39
- box-shadow: 2px 16px 10px 0 rgba(0, 0, 0, ${props => props.theme.mode === 'light' ? 0.05 : 0.5});
40
- border: 0;
41
- }
42
- `;
43
- export default function Dashboard({
44
- children,
45
- title,
46
- brand,
47
- description,
48
- brandAddon,
49
- headerAddon,
50
- images,
51
- links,
52
- prefix,
53
- fullWidth,
54
- contentLayout,
55
- className,
56
- homeUrl,
57
- logo,
58
- ...rest
59
- }) {
60
- const breakpoint = 960;
61
- const size = useSize(document.body);
62
- const width = size?.width || 0;
63
- const [drawerMode, setDrawerMode] = useState(width >= breakpoint ? 'permanent' : 'temporary');
64
- const [drawerOpen, setDrawerOpen] = useState(drawerMode === 'permanent');
65
- useEffect(() => {
66
- const newMode = width >= breakpoint ? 'permanent' : 'temporary';
67
- setDrawerMode(newMode);
68
- setDrawerOpen(newMode !== 'temporary');
69
- }, [width]);
70
- const onToggleDrawer = () => {
71
- setDrawerOpen(!drawerOpen);
72
- };
73
- const isFullWidth = fullWidth || contentLayout === 'row';
74
- return /*#__PURE__*/_jsxs(Wrapper, {
75
- className: `dashboard ${className}`,
76
- ...rest,
77
- children: [/*#__PURE__*/_jsx(Helmet, {
78
- title: `${title}-${brand}`
79
- }), /*#__PURE__*/_jsx(Header, {
80
- className: "dashboard__header",
81
- onToggleMenu: onToggleDrawer,
82
- brand: brand,
83
- brandAddon: brandAddon,
84
- description: description,
85
- addons: headerAddon,
86
- homeUrl: homeUrl,
87
- logo: logo
88
- }), /*#__PURE__*/_jsxs(Box, {
89
- display: "flex",
90
- className: "dashboard__body",
91
- children: [/*#__PURE__*/_jsx(Drawer, {
92
- variant: drawerMode,
93
- className: "drawer",
94
- classes: {
95
- paper: 'drawerPaper'
96
- },
97
- open: drawerOpen,
98
- onClose: onToggleDrawer,
99
- ModalProps: {
100
- disablePortal: true,
101
- keepMounted: true
102
- },
103
- children: /*#__PURE__*/_jsx(Sidebar, {
104
- className: "dashboard__sidebar",
105
- images: images,
106
- links: links,
107
- prefix: prefix,
108
- logo: logo
109
- })
110
- }), /*#__PURE__*/_jsxs(Box, {
111
- className: "dashboard__main",
112
- children: [/*#__PURE__*/_jsx(Container, {
113
- maxWidth: isFullWidth ? false : 'lg',
114
- className: "dashboard__content",
115
- children: children
116
- }), /*#__PURE__*/_jsx(Footer, {})]
117
- })]
118
- })]
119
- });
120
- }
121
- Dashboard.propTypes = {
122
- children: PropTypes.any.isRequired,
123
- title: PropTypes.string,
124
- brand: PropTypes.string.isRequired,
125
- links: PropTypes.array.isRequired,
126
- images: PropTypes.object.isRequired,
127
- brandAddon: PropTypes.object,
128
- description: PropTypes.any.isRequired,
129
- headerAddon: PropTypes.any,
130
- prefix: PropTypes.string,
131
- // 兼容旧版的设置,新版使用 fullWidth 进行设置
132
- contentLayout: PropTypes.oneOf(['row', 'column']),
133
- fullWidth: PropTypes.bool,
134
- className: PropTypes.string,
135
- homeUrl: PropTypes.string,
136
- logo: PropTypes.any
137
- };
138
- Dashboard.defaultProps = {
139
- title: 'Home',
140
- contentLayout: 'column',
141
- headerAddon: null,
142
- brandAddon: null,
143
- prefix: '/images',
144
- fullWidth: false,
145
- className: '',
146
- homeUrl: '/',
147
- logo: null
148
- };
@@ -1,129 +0,0 @@
1
- import { memo } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Link, useLocation } from 'react-router-dom';
4
- import Button from '@mui/material/Button';
5
- import Typography from '@mui/material/Typography';
6
- import { teal } from '@mui/material/colors';
7
- import ImageIcon from '../../Icon/image';
8
- import Logo from '../../Logo';
9
- import { styled, useTheme } from '../../Theme';
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- import { jsxs as _jsxs } from "react/jsx-runtime";
12
- export default function Sidebar({
13
- images,
14
- links,
15
- prefix,
16
- addons,
17
- logo,
18
- ...rest
19
- }) {
20
- const theme = useTheme();
21
- const location = useLocation();
22
- const isSelected = (url, name) => {
23
- const pattern = new RegExp(`/${name}`);
24
- return pattern.test(location.pathname);
25
- };
26
- return /*#__PURE__*/_jsxs(MenuItems, {
27
- ...rest,
28
- children: [/*#__PURE__*/_jsx(Link, {
29
- to: "/",
30
- className: "sidebar-logo",
31
- children: logo || /*#__PURE__*/_jsx(Logo, {
32
- showText: false,
33
- size: 20
34
- })
35
- }), links.map(({
36
- url,
37
- name,
38
- title,
39
- showBadge
40
- }) => {
41
- const selected = isSelected(url, name);
42
- return /*#__PURE__*/_jsxs(MenuItem, {
43
- component: Link,
44
- selected: selected,
45
- to: url,
46
- children: [/*#__PURE__*/_jsx(ImageIcon, {
47
- name: images[name],
48
- size: 36,
49
- color: selected ? '#00c2c4' : theme.typography.color.main,
50
- prefix: prefix,
51
- showBadge: showBadge
52
- }), /*#__PURE__*/_jsx(Typography, {
53
- component: "span",
54
- className: "menu-title",
55
- children: title
56
- })]
57
- }, url);
58
- }), /*#__PURE__*/_jsx("div", {
59
- style: {
60
- flex: 1
61
- }
62
- }), addons]
63
- });
64
- }
65
- Sidebar.propTypes = {
66
- images: PropTypes.object.isRequired,
67
- links: PropTypes.array.isRequired,
68
- prefix: PropTypes.string,
69
- addons: PropTypes.any,
70
- logo: PropTypes.any
71
- };
72
- Sidebar.defaultProps = {
73
- prefix: '/images',
74
- addons: null,
75
- logo: null
76
- };
77
- const MenuItems = /*#__PURE__*/memo(styled('div')`
78
- flex: 1;
79
- display: flex;
80
- flex-direction: column;
81
-
82
- && .sidebar-logo {
83
- display: none;
84
- border-bottom: 1px solid #eee;
85
- background: ${props => props.theme.palette.background.default};
86
- position: sticky;
87
- top: 0;
88
- z-index: 1;
89
- padding: 10px 0;
90
- text-align: center;
91
- font-size: 0;
92
- }
93
- ${props => props.theme.breakpoints.down('md')} {
94
- && .sidebar-logo {
95
- display: block;
96
- }
97
- }
98
- `);
99
- const gradient = 'linear-gradient(32deg, rgba(144, 255, 230, 0.1), rgba(144, 255, 230, 0))';
100
- const MenuItem = styled(Button)`
101
- && {
102
- display: flex;
103
- flex-direction: column;
104
- justify-content: center;
105
- align-items: center;
106
- width: 100%;
107
- transition: all 200ms ease-in-out;
108
- background: ${props => props.selected ? gradient : ''};
109
- padding: 24px 0;
110
- border-left: 2px solid ${props => props.selected ? teal.A700 : 'transparent'};
111
- border-radius: 0;
112
-
113
- &:hover {
114
- background: ${gradient};
115
- border-left-color: ${teal.A700};
116
- }
117
-
118
- .menu-title {
119
- margin-top: 8px;
120
- font-size: 12px;
121
- font-weight: 500;
122
- text-align: center;
123
- text-transform: capitalize;
124
- letter-spacing: normal;
125
- width: 80%;
126
- color: ${props => props.theme.palette.text.primary};
127
- }
128
- }
129
- `;
@@ -1,335 +0,0 @@
1
- import { useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import Helmet from 'react-helmet';
4
- import Link from '@mui/material/Link';
5
- import AppBar from '@mui/material/AppBar';
6
- import Container from '@mui/material/Container';
7
- import Drawer from '@mui/material/Drawer';
8
- import Divider from '@mui/material/Divider';
9
- import Toolbar from '@mui/material/Toolbar';
10
- import Typography from '@mui/material/Typography';
11
- import List from '@mui/material/List';
12
- import ListItem from '@mui/material/ListItem';
13
- import ListItemText from '@mui/material/ListItemText';
14
- import IconButton from '@mui/material/IconButton';
15
- import MenuIcon from '@mui/icons-material/Menu';
16
- import Footer from '../Footer';
17
- import OpenInWallet from '../Wallet/Open';
18
- import Icon from '../Icon';
19
- import Logo from '../Logo';
20
- import { styled } from '../Theme';
21
- import { jsx as _jsx } from "react/jsx-runtime";
22
- import { jsxs as _jsxs } from "react/jsx-runtime";
23
- import { Fragment as _Fragment } from "react/jsx-runtime";
24
- export default function Layout({
25
- title,
26
- brand,
27
- description,
28
- links,
29
- logo,
30
- showLogo,
31
- addons,
32
- footer,
33
- baseUrl,
34
- homeUrl,
35
- children,
36
- variant,
37
- contentOnly,
38
- ...rest
39
- }) {
40
- const [drawerOpen, setDrawerOpen] = useState(false);
41
- const onToggleDrawer = () => {
42
- setDrawerOpen(!drawerOpen);
43
- };
44
- if (contentOnly) {
45
- return /*#__PURE__*/_jsx(Container, {
46
- children: children
47
- });
48
- }
49
- let activeLink = '';
50
- const {
51
- pathname: currentPath
52
- } = new URL(window.location);
53
- links.forEach(link => {
54
- if (currentPath.startsWith(link.url) && link.url.length > activeLink.length) {
55
- activeLink = link.url;
56
- }
57
- });
58
- const drawer = /*#__PURE__*/_jsxs("div", {
59
- children: [/*#__PURE__*/_jsxs(Toolbar, {
60
- className: "toolbar toolbar--drawer",
61
- children: [!!showLogo && /*#__PURE__*/_jsx("div", {
62
- className: "menu-logo",
63
- children: logo
64
- }), /*#__PURE__*/_jsx("div", {
65
- style: {
66
- flexGrow: 1,
67
- overflow: 'hidden',
68
- textOverflow: 'ellipsis'
69
- },
70
- children: brand
71
- })]
72
- }), /*#__PURE__*/_jsx(Divider, {}), /*#__PURE__*/_jsx(List, {
73
- children: links.map(x => /*#__PURE__*/_jsx(Link, {
74
- className: "nav-link",
75
- href: x.url,
76
- underline: "hover",
77
- children: /*#__PURE__*/_jsx(ListItem, {
78
- button: true,
79
- className: activeLink === x.url ? 'drawer-highlight-nav' : '',
80
- children: /*#__PURE__*/_jsxs(ListItemText, {
81
- children: [x.icon && /*#__PURE__*/_jsx(Icon, {
82
- name: x.icon,
83
- size: 18 * (x.iconZoom || 1),
84
- color: "inherit",
85
- style: {
86
- marginRight: '5px'
87
- }
88
- }), x.title]
89
- })
90
- })
91
- }, x.url))
92
- })]
93
- });
94
- return /*#__PURE__*/_jsxs(_Fragment, {
95
- children: [/*#__PURE__*/_jsxs(Div, {
96
- ...rest,
97
- children: [/*#__PURE__*/_jsx(Helmet, {
98
- title: title
99
- }), /*#__PURE__*/_jsx(AppBar, {
100
- position: "fixed",
101
- className: `appbar appbar--${variant}`,
102
- color: "default",
103
- style: {
104
- height: 56
105
- },
106
- children: /*#__PURE__*/_jsx(Container, {
107
- disableGutters: true,
108
- children: /*#__PURE__*/_jsxs(Toolbar, {
109
- className: "toolbar",
110
- children: [/*#__PURE__*/_jsx(IconButton, {
111
- color: "inherit",
112
- "aria-label": "open drawer",
113
- edge: "start",
114
- onClick: onToggleDrawer,
115
- className: "menu-button",
116
- size: "large",
117
- children: /*#__PURE__*/_jsx(MenuIcon, {})
118
- }), !!showLogo && /*#__PURE__*/_jsx("div", {
119
- className: "menu-logo",
120
- children: logo
121
- }), /*#__PURE__*/_jsx(Typography, {
122
- href: homeUrl,
123
- component: "a",
124
- variant: "h5",
125
- color: "inherit",
126
- noWrap: true,
127
- display: "block",
128
- className: "brand",
129
- children: brand
130
- }), description && /*#__PURE__*/_jsx(Typography, {
131
- component: "small",
132
- variant: "subtitle2",
133
- color: "inherit",
134
- noWrap: true,
135
- className: "description",
136
- children: description
137
- }), /*#__PURE__*/_jsx("div", {
138
- style: {
139
- flexGrow: 1
140
- }
141
- }), /*#__PURE__*/_jsx("div", {
142
- className: "nav-links",
143
- children: links.map(x => /*#__PURE__*/_jsxs(Link, {
144
- href: x.url,
145
- className: `nav-link ${activeLink === x.url ? 'highlight-nav' : ''}`,
146
- color: x.color,
147
- underline: "hover",
148
- children: [x.icon && /*#__PURE__*/_jsx(Icon, {
149
- name: x.icon,
150
- size: 20 * (x.iconZoom || 1),
151
- color: "inherit",
152
- style: {
153
- marginRight: '5px'
154
- }
155
- }), x.title]
156
- }, x.url))
157
- }), addons]
158
- })
159
- })
160
- }), /*#__PURE__*/_jsx("div", {
161
- className: "toolbar"
162
- }), /*#__PURE__*/_jsx(Container, {
163
- style: {
164
- marginTop: 16,
165
- flex: 1
166
- },
167
- children: children
168
- }), footer, !!baseUrl && /*#__PURE__*/_jsx(OpenInWallet, {
169
- locale: "zh",
170
- link: baseUrl
171
- })]
172
- }), /*#__PURE__*/_jsx(DrawerDiv, {
173
- children: /*#__PURE__*/_jsx(Drawer, {
174
- variant: "temporary",
175
- open: drawerOpen,
176
- onClose: onToggleDrawer,
177
- classes: {
178
- paper: 'drawer-paper'
179
- },
180
- ModalProps: {
181
- keepMounted: true,
182
- // Better open performance on mobile.
183
- disablePortal: true
184
- },
185
- children: drawer
186
- })
187
- })]
188
- });
189
- }
190
- Layout.propTypes = {
191
- title: PropTypes.string.isRequired,
192
- brand: PropTypes.any.isRequired,
193
- description: PropTypes.any,
194
- addons: PropTypes.any,
195
- showLogo: PropTypes.bool,
196
- logo: PropTypes.any,
197
- links: PropTypes.array,
198
- children: PropTypes.any.isRequired,
199
- baseUrl: PropTypes.string,
200
- homeUrl: PropTypes.string,
201
- variant: PropTypes.oneOf(['shadow', 'border']),
202
- footer: PropTypes.any,
203
- contentOnly: PropTypes.bool
204
- };
205
- Layout.defaultProps = {
206
- contentOnly: false,
207
- baseUrl: '',
208
- homeUrl: '/',
209
- links: [],
210
- showLogo: false,
211
- logo: /*#__PURE__*/_jsx(Logo, {
212
- showText: false,
213
- style: {
214
- width: '40px',
215
- height: '40px'
216
- }
217
- }),
218
- variant: 'shadow',
219
- addons: undefined,
220
- description: undefined,
221
- footer: /*#__PURE__*/_jsx(Container, {
222
- children: /*#__PURE__*/_jsx(Footer, {})
223
- })
224
- };
225
- const Div = styled('div')`
226
- width: 100%;
227
- min-height: 100vh;
228
- display: flex;
229
- flex-direction: column;
230
- .appbar {
231
- &.appbar--border {
232
- box-shadow: none;
233
- &::before {
234
- content: '';
235
- position: absolute;
236
- left: 0;
237
- right: 0;
238
- height: 1px;
239
- bottom: -1px;
240
- display: block;
241
- background-color: rgba(0, 0, 0, 0.12);
242
- }
243
- }
244
- }
245
-
246
- .toolbar {
247
- min-height: 56px;
248
- background: inherit;
249
- white-space: nowrap;
250
- .menu-logo {
251
- font-size: 0;
252
- margin-right: 8px;
253
- }
254
-
255
- .nav-links {
256
- display: flex;
257
- align-items: center;
258
- .nav-link {
259
- margin: 8px 12px;
260
- font-size: 16px;
261
- display: flex;
262
- align-items: center;
263
- }
264
-
265
- .highlight-nav {
266
- font-weight: bolder;
267
- }
268
- }
269
- .brand {
270
- cursor: pointer;
271
- text-decoration: none;
272
- overflow: hidden;
273
- text-overflow: ellipsis;
274
- flex-shrink: 1;
275
- }
276
- .description {
277
- color: #999;
278
- font-size: 15px;
279
- margin-left: 10px;
280
- font-weight: normal;
281
- flex-shrink: 999999;
282
- }
283
- }
284
-
285
- ${props => props.theme.breakpoints.up('md')} {
286
- .toolbar {
287
- .menu-button {
288
- display: none;
289
- }
290
- .menu-logo {
291
- & + .brand {
292
- padding-left: 45px;
293
- margin-left: -45px;
294
- }
295
- }
296
- }
297
- }
298
-
299
- ${props => props.theme.breakpoints.down('md')} {
300
- .toolbar {
301
- .nav-links,
302
- .menu-logo,
303
- .description {
304
- display: none;
305
- }
306
- }
307
- }
308
- `;
309
- const DrawerDiv = styled('nav')`
310
- width: 240px;
311
- .drawer-paper {
312
- width: 240px;
313
- }
314
- .toolbar {
315
- min-height: 56px;
316
- }
317
-
318
- a:hover,
319
- a:active,
320
- a:visited,
321
- a:focus {
322
- text-decoration: none;
323
- }
324
-
325
- .drawer-highlight-nav {
326
- background-color: #eee;
327
- }
328
-
329
- .toolbar--drawer {
330
- font-size: 18px;
331
- .menu-logo {
332
- display: inline-flex;
333
- }
334
- }
335
- `;
@@ -1,102 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import { Box } from '@mui/material';
3
- import { temp as colors } from '../Colors';
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- import { jsxs as _jsxs } from "react/jsx-runtime";
6
- export default function LoadingMask({
7
- size,
8
- padding,
9
- borderWidth,
10
- borderRadius,
11
- duration,
12
- children
13
- }) {
14
- const finialSize = size;
15
- const finialRadius = borderRadius ?? finialSize / 8;
16
- const finialBorderWidth = borderWidth ?? finialSize / 32;
17
- const finialPadding = padding ?? finialSize * 0.2 - finialBorderWidth;
18
- const finialDuration = duration ?? 2.5;
19
- return /*#__PURE__*/_jsxs(Box, {
20
- sx: {
21
- display: 'inline-flex',
22
- justifyContent: 'center',
23
- alignItems: 'center',
24
- width: finialSize,
25
- height: finialSize,
26
- position: 'relative'
27
- },
28
- children: [/*#__PURE__*/_jsx(Box, {
29
- sx: {
30
- pointerEvents: 'none',
31
- position: 'absolute',
32
- top: 0,
33
- left: 0,
34
- right: 0,
35
- bottom: 0,
36
- display: 'flex',
37
- justifyContent: 'center',
38
- alignItems: 'center',
39
- width: finialSize,
40
- height: finialSize,
41
- overflow: 'hidden',
42
- borderRadius: `${finialRadius}px`,
43
- backgroundColor: colors.strokeBorderBase,
44
- '&::before,&::after': {
45
- content: '""',
46
- position: 'absolute',
47
- top: 0,
48
- bottom: 0,
49
- left: 0,
50
- right: 0,
51
- pointerEvents: 'none'
52
- },
53
- '&::after': {
54
- left: finialBorderWidth,
55
- right: finialBorderWidth,
56
- top: finialBorderWidth,
57
- bottom: finialBorderWidth,
58
- backgroundColor: 'white',
59
- borderRadius: `${finialRadius - finialBorderWidth}px`
60
- },
61
- '&::before': {
62
- background: `conic-gradient(from 45deg, ${colors.foregroundsFgInteractiveTransparent} 0%, ${colors.foregroundsFgInteractiveTransparent} 50%, ${colors.foregroundsFgInteractive} 90%, ${colors.foregroundsFgInteractive} 100%)`,
63
- transform: 'scale(100)',
64
- animation: `rotate ${finialDuration}s linear infinite`,
65
- '@keyframes rotate': {
66
- '0%': {
67
- transform: 'scale(100) rotate(0deg)'
68
- },
69
- '100%': {
70
- transform: 'scale(100) rotate(360deg)'
71
- }
72
- }
73
- }
74
- }
75
- }), /*#__PURE__*/_jsx(Box, {
76
- sx: {
77
- position: 'relative',
78
- display: 'flex',
79
- justifyContent: 'center',
80
- alignItems: 'center',
81
- width: finialSize - finialPadding - finialBorderWidth,
82
- height: finialSize - finialPadding - finialBorderWidth
83
- },
84
- children: children
85
- })]
86
- });
87
- }
88
- LoadingMask.propTypes = {
89
- size: PropTypes.number,
90
- padding: PropTypes.number,
91
- borderRadius: PropTypes.number,
92
- borderWidth: PropTypes.number,
93
- duration: PropTypes.number,
94
- children: PropTypes.node.isRequired
95
- };
96
- LoadingMask.defaultProps = {
97
- size: 64,
98
- padding: undefined,
99
- borderWidth: undefined,
100
- duration: undefined,
101
- borderRadius: undefined
102
- };