@arcblock/ux 2.9.91 → 2.10.1

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 (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,27 +1,10 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.FullPageContext = void 0;
7
- exports.FullPageProvider = FullPageProvider;
8
- exports.useFullPage = void 0;
9
- var _react = require("react");
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- const _excluded = ["children"];
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
18
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
20
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
- const FullPageContext = exports.FullPageContext = /*#__PURE__*/(0, _react.createContext)();
22
- const useFullPage = initialState => {
23
- const ctx = (0, _react.useContext)(FullPageContext);
24
- (0, _react.useLayoutEffect)(() => {
1
+ import { useState, useContext, createContext, useMemo, useLayoutEffect } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ export const FullPageContext = /*#__PURE__*/createContext();
5
+ export const useFullPage = initialState => {
6
+ const ctx = useContext(FullPageContext);
7
+ useLayoutEffect(() => {
25
8
  if (initialState) {
26
9
  ctx.configure(initialState);
27
10
  }
@@ -29,13 +12,11 @@ const useFullPage = initialState => {
29
12
  }, []);
30
13
  return ctx;
31
14
  };
32
- exports.useFullPage = useFullPage;
33
- function FullPageProvider(_ref) {
34
- let {
35
- children
36
- } = _ref,
37
- rest = _objectWithoutProperties(_ref, _excluded);
38
- const [state, setState] = (0, _react.useState)({
15
+ export function FullPageProvider({
16
+ children,
17
+ ...rest
18
+ }) {
19
+ const [state, setState] = useState({
39
20
  inFullPage: false,
40
21
  showToggleButton: false,
41
22
  headerVisibleInFullPage: true,
@@ -43,25 +24,30 @@ function FullPageProvider(_ref) {
43
24
  sidebarVisibleInFullPage: false
44
25
  });
45
26
  const toggleFullPage = () => {
46
- setState(prev => _objectSpread(_objectSpread({}, prev), {}, {
27
+ setState(prev => ({
28
+ ...prev,
47
29
  inFullPage: !prev.inFullPage
48
30
  }));
49
31
  };
50
- const value = (0, _react.useMemo)(() => {
51
- return _objectSpread(_objectSpread({}, state), {}, {
32
+ const value = useMemo(() => {
33
+ return {
34
+ ...state,
52
35
  headerVisible: !state.inFullPage || state.headerVisibleInFullPage,
53
36
  footerVisible: !state.inFullPage || state.footerVisibleInFullPage,
54
37
  sidebarVisible: !state.inFullPage || state.sidebarVisibleInFullPage,
55
38
  toggleFullPage,
56
- configure: params => setState(prev => _objectSpread(_objectSpread({}, prev), params))
57
- });
39
+ configure: params => setState(prev => ({
40
+ ...prev,
41
+ ...params
42
+ }))
43
+ };
58
44
  }, [state]);
59
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(FullPageContext.Provider, _objectSpread(_objectSpread({
60
- value: value
61
- }, rest), {}, {
45
+ return /*#__PURE__*/_jsx(FullPageContext.Provider, {
46
+ value: value,
47
+ ...rest,
62
48
  children: children
63
- }));
49
+ });
64
50
  }
65
51
  FullPageProvider.propTypes = {
66
- children: _propTypes.default.node.isRequired
52
+ children: PropTypes.node.isRequired
67
53
  };
@@ -1,90 +1,75 @@
1
- "use strict";
1
+ import { useEffect, useMemo } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { useLocation, matchPath } from 'react-router-dom';
4
+ import Helmet from 'react-helmet';
5
+ import Container from '@mui/material/Container';
6
+ import Hidden from '@mui/material/Hidden';
7
+ import Box from '@mui/material/Box';
8
+ import clsx from 'clsx';
9
+ import OpenInFullIcon from '@mui/icons-material/OpenInFull';
10
+ import CloseFullscreenIcon from '@mui/icons-material/CloseFullscreen';
11
+ import DashboardLegacy from '../dashboard-legacy';
12
+ import { ResponsiveHeader } from '../../Header';
13
+ import NavMenu from '../../NavMenu';
14
+ import Footer from '../../Footer';
15
+ import Sidebar from './sidebar';
16
+ import { styled, useTheme } from '../../Theme';
17
+ import { Link } from './external-link';
18
+ import { FullPageProvider, useFullPage } from './full-page';
2
19
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = DashboardWrapper;
7
- var _react = require("react");
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _reactRouterDom = require("react-router-dom");
10
- var _reactHelmet = _interopRequireDefault(require("react-helmet"));
11
- var _Container = _interopRequireDefault(require("@mui/material/Container"));
12
- var _Hidden = _interopRequireDefault(require("@mui/material/Hidden"));
13
- var _Box = _interopRequireDefault(require("@mui/material/Box"));
14
- var _clsx = _interopRequireDefault(require("clsx"));
15
- var _OpenInFull = _interopRequireDefault(require("@mui/icons-material/OpenInFull"));
16
- var _CloseFullscreen = _interopRequireDefault(require("@mui/icons-material/CloseFullscreen"));
17
- var _dashboardLegacy = _interopRequireDefault(require("../dashboard-legacy"));
18
- var _Header = require("../../Header");
19
- var _NavMenu = _interopRequireDefault(require("../../NavMenu"));
20
- var _Footer = _interopRequireDefault(require("../../Footer"));
21
- var _sidebar = _interopRequireDefault(require("./sidebar"));
22
- var _Theme = require("../../Theme");
23
- var _externalLink = require("./external-link");
24
- var _fullPage = require("./full-page");
25
- var _jsxRuntime = require("react/jsx-runtime");
26
- var _templateObject, _templateObject2;
27
- const _excluded = ["closeMenu"],
28
- _excluded2 = ["children", "title", "headerProps", "links", "fullWidth", "dense", "footerProps"],
29
- _excluded3 = ["legacy"]; // 监听 location 变化并关闭 header 中的 menu (确保 drawer - disablePortal:false, keepMounted:true)
20
+ // 监听 location 变化并关闭 header 中的 menu (确保 drawer - disablePortal:false, keepMounted:true)
30
21
  // 直接监听 menu 中 link 点击来触发 closeMenu 会有问题 (Suspense & lazy)
31
22
  // eslint-disable-next-line react/prop-types
32
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
34
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
35
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
36
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
37
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
38
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
39
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
40
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
41
- function NavMenuWrapper(_ref) {
42
- let {
43
- closeMenu
44
- } = _ref,
45
- rest = _objectWithoutProperties(_ref, _excluded);
46
- const location = (0, _reactRouterDom.useLocation)();
47
- (0, _react.useEffect)(() => {
23
+ import { jsx as _jsx } from "react/jsx-runtime";
24
+ import { jsxs as _jsxs } from "react/jsx-runtime";
25
+ function NavMenuWrapper({
26
+ closeMenu,
27
+ ...rest
28
+ }) {
29
+ const location = useLocation();
30
+ useEffect(() => {
48
31
  closeMenu();
49
32
  // eslint-disable-next-line react-hooks/exhaustive-deps
50
33
  }, [location]);
51
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NavMenu.default, _objectSpread({}, rest));
34
+ return /*#__PURE__*/_jsx(NavMenu, {
35
+ ...rest
36
+ });
52
37
  }
53
38
  function formatLinks(links, location) {
54
39
  return links.map(link => {
55
- var _link$children;
56
- if ((_link$children = link.children) !== null && _link$children !== void 0 && _link$children.length) {
57
- return _objectSpread(_objectSpread({}, link), {}, {
40
+ if (link.children?.length) {
41
+ return {
42
+ ...link,
58
43
  label: link.title,
59
44
  children: formatLinks(link.children, location)
60
- });
45
+ };
61
46
  }
62
- return _objectSpread(_objectSpread({}, link), {}, {
63
- label: /*#__PURE__*/(0, _jsxRuntime.jsx)(_externalLink.Link, {
47
+ return {
48
+ ...link,
49
+ label: /*#__PURE__*/_jsx(Link, {
64
50
  to: link.url,
65
51
  external: link.external,
66
52
  children: link.title
67
53
  }),
68
54
  // external = true 时 active 状态由传入 links 的调用方决定 (适用于 blocklet ui dashboard 的情况)
69
- active: link.external ? link.active : !!(0, _reactRouterDom.matchPath)({
55
+ active: link.external ? link.active : !!matchPath({
70
56
  path: link.url,
71
57
  end: false
72
58
  }, location.pathname)
73
- });
59
+ };
74
60
  });
75
61
  }
76
- function Dashboard(_ref2) {
77
- let {
78
- children,
79
- title,
80
- headerProps,
81
- links = [],
82
- fullWidth,
83
- dense,
84
- footerProps
85
- } = _ref2,
86
- rest = _objectWithoutProperties(_ref2, _excluded2);
87
- const theme = (0, _Theme.useTheme)();
62
+ function Dashboard({
63
+ children,
64
+ title,
65
+ headerProps,
66
+ links = [],
67
+ fullWidth,
68
+ dense,
69
+ footerProps,
70
+ ...rest
71
+ }) {
72
+ const theme = useTheme();
88
73
  const {
89
74
  inFullPage,
90
75
  showToggleButton,
@@ -92,41 +77,37 @@ function Dashboard(_ref2) {
92
77
  footerVisible,
93
78
  sidebarVisible,
94
79
  toggleFullPage
95
- } = (0, _fullPage.useFullPage)();
96
- const location = (0, _reactRouterDom.useLocation)();
97
- const navItems = (0, _react.useMemo)(() => formatLinks(links, location), [location, links]);
98
- const isGroupedMode = navItems.some(item => {
99
- var _item$children;
100
- return !!((_item$children = item.children) !== null && _item$children !== void 0 && _item$children.length);
101
- });
80
+ } = useFullPage();
81
+ const location = useLocation();
82
+ const navItems = useMemo(() => formatLinks(links, location), [location, links]);
83
+ const isGroupedMode = navItems.some(item => !!item.children?.length);
102
84
  // 一级菜单数量 > 8 或都分组模式, 都启用 dense 布局
103
85
  const _dense = dense === 'auto' ? navItems.length >= 8 || isGroupedMode : dense;
104
- const classes = (0, _clsx.default)('dashboard', {
86
+ const classes = clsx('dashboard', {
105
87
  'dashboard-dense': _dense
106
88
  }, rest.className);
107
- const defaultHomeLink = content => {
108
- var _window$blocklet;
109
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_externalLink.Link, {
110
- to: ((_window$blocklet = window.blocklet) === null || _window$blocklet === void 0 ? void 0 : _window$blocklet.prefix) || '/',
111
- children: content
112
- });
89
+ const defaultHomeLink = content => /*#__PURE__*/_jsx(Link, {
90
+ to: window.blocklet?.prefix || '/',
91
+ children: content
92
+ });
93
+ const _headerProps = {
94
+ homeLink: defaultHomeLink,
95
+ ...headerProps
113
96
  };
114
- const _headerProps = _objectSpread({
115
- homeLink: defaultHomeLink
116
- }, headerProps);
117
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Wrapper, _objectSpread(_objectSpread({}, rest), {}, {
97
+ return /*#__PURE__*/_jsxs(Wrapper, {
98
+ ...rest,
118
99
  className: classes,
119
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHelmet.default, {
100
+ children: [/*#__PURE__*/_jsx(Helmet, {
120
101
  title: title
121
- }, title), headerVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledUxHeader, _objectSpread(_objectSpread({}, _headerProps), {}, {
102
+ }, title), headerVisible && /*#__PURE__*/_jsx(StyledUxHeader, {
103
+ ..._headerProps,
122
104
  className: "dashboard-header",
123
- children: links !== null && links !== void 0 && links.length ? _ref3 => {
124
- let {
125
- isMobile,
126
- closeMenu
127
- } = _ref3;
105
+ children: links?.length ? ({
106
+ isMobile,
107
+ closeMenu
108
+ }) => {
128
109
  if (isMobile) {
129
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(NavMenuWrapper, {
110
+ return /*#__PURE__*/_jsx(NavMenuWrapper, {
130
111
  mode: "inline",
131
112
  items: navItems,
132
113
  closeMenu: closeMenu,
@@ -136,27 +117,27 @@ function Dashboard(_ref2) {
136
117
  }
137
118
  return null;
138
119
  } : null
139
- })), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
120
+ }), /*#__PURE__*/_jsxs(Box, {
140
121
  display: "flex",
141
122
  className: "dashboard-body",
142
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Hidden.default, {
123
+ children: [/*#__PURE__*/_jsx(Hidden, {
143
124
  mdDown: true,
144
- children: !!(links !== null && links !== void 0 && links.length) && sidebarVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
125
+ children: !!links?.length && sidebarVisible && /*#__PURE__*/_jsx(Box, {
145
126
  className: "dashboard-sidebar",
146
- children: _dense ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sidebar.default, {
127
+ children: _dense ? /*#__PURE__*/_jsx(Sidebar, {
147
128
  links: links,
148
129
  dense: _dense
149
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
130
+ }) : /*#__PURE__*/_jsx(Box, {
150
131
  className: "dashboard-sidebar-container",
151
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sidebar.default, {
132
+ children: /*#__PURE__*/_jsx(Sidebar, {
152
133
  links: links,
153
134
  dense: _dense
154
135
  })
155
136
  })
156
137
  })
157
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
138
+ }), /*#__PURE__*/_jsxs(Box, {
158
139
  className: "dashboard-main",
159
- children: [showToggleButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
140
+ children: [showToggleButton && /*#__PURE__*/_jsx(Box, {
160
141
  sx: {
161
142
  position: 'absolute',
162
143
  top: 4,
@@ -172,36 +153,38 @@ function Dashboard(_ref2) {
172
153
  cursor: 'pointer'
173
154
  },
174
155
  onClick: toggleFullPage,
175
- children: inFullPage ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CloseFullscreen.default, {
156
+ children: inFullPage ? /*#__PURE__*/_jsx(CloseFullscreenIcon, {
176
157
  style: {
177
158
  fontSize: 18
178
159
  }
179
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_OpenInFull.default, {
160
+ }) : /*#__PURE__*/_jsx(OpenInFullIcon, {
180
161
  style: {
181
162
  fontSize: 18
182
163
  }
183
164
  })
184
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Container.default, _objectSpread(_objectSpread({
185
- className: "dashboard-content"
186
- }, fullWidth && {
187
- maxWidth: false
188
- }), {}, {
165
+ }), /*#__PURE__*/_jsx(Container, {
166
+ className: "dashboard-content",
167
+ ...(fullWidth && {
168
+ maxWidth: false
169
+ }),
189
170
  children: children
190
- })), footerVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Footer.default, _objectSpread({}, footerProps))]
171
+ }), footerVisible && /*#__PURE__*/_jsx(Footer, {
172
+ ...footerProps
173
+ })]
191
174
  })]
192
175
  })]
193
- }));
176
+ });
194
177
  }
195
178
  Dashboard.propTypes = {
196
- children: _propTypes.default.any.isRequired,
197
- title: _propTypes.default.string,
179
+ children: PropTypes.any.isRequired,
180
+ title: PropTypes.string,
198
181
  // 支持分组, links item 如果是数组, 则视为一个 group
199
- links: _propTypes.default.array.isRequired,
200
- headerProps: _propTypes.default.object,
201
- fullWidth: _propTypes.default.bool,
202
- sidebarWidth: _propTypes.default.number,
182
+ links: PropTypes.array.isRequired,
183
+ headerProps: PropTypes.object,
184
+ fullWidth: PropTypes.bool,
185
+ sidebarWidth: PropTypes.number,
203
186
  // sidenav 稠密一些的布局, 纵向空间占用较少, 默认为 auto, 当 links 个数 > 8 时自动启用
204
- dense: _propTypes.default.oneOf([true, false, 'auto'])
187
+ dense: PropTypes.oneOf([true, false, 'auto'])
205
188
  };
206
189
  Dashboard.defaultProps = {
207
190
  title: 'Home',
@@ -210,28 +193,90 @@ Dashboard.defaultProps = {
210
193
  sidebarWidth: 120,
211
194
  dense: 'auto'
212
195
  };
213
- const Wrapper = (0, _Theme.styled)('div', {
196
+ const Wrapper = styled('div', {
214
197
  shouldForwardProp: prop => prop !== 'sidebarWidth'
215
- })(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &.dashboard {\n display: flex;\n flex-direction: column;\n height: 100vh;\n }\n .dashboard-body {\n overflow: hidden;\n flex: 1;\n }\n .dashboard-sidebar {\n box-sizing: border-box;\n flex: 0 0 auto;\n width: ", "px;\n overflow: hidden;\n &:hover {\n overflow-y: auto;\n }\n }\n .dashboard-sidebar-container {\n width: ", "px;\n }\n .dashboard-main {\n display: flex;\n flex-direction: column;\n overflow: auto;\n flex: 1;\n position: relative;\n }\n .dashboard-content {\n flex: 1;\n }\n &.dashboard-dense {\n .dashboard-header {\n border-bottom: 1px solid #eee;\n }\n .dashboard-sidebar {\n width: 256px;\n border-right: 1px solid #eee;\n }\n }\n ", " {\n .header-logo {\n display: flex;\n justify-content: center;\n }\n &.dashboard-dense {\n .header-logo {\n /* dense = true \u65F6 logo \u4E0E sidenav icons \u4E0D\u9700\u8981\u5BF9\u9F50 */\n width: auto;\n }\n }\n }\n"])), props => props.sidebarWidth, props => props.sidebarWidth, props => props.theme.breakpoints.up('md'));
216
- const StyledUxHeader = (0, _Theme.styled)(_Header.ResponsiveHeader)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .header-container {\n max-width: 100%;\n }\n"])));
198
+ })`
199
+ &.dashboard {
200
+ display: flex;
201
+ flex-direction: column;
202
+ height: 100vh;
203
+ }
204
+ .dashboard-body {
205
+ overflow: hidden;
206
+ flex: 1;
207
+ }
208
+ .dashboard-sidebar {
209
+ box-sizing: border-box;
210
+ flex: 0 0 auto;
211
+ width: ${props => props.sidebarWidth}px;
212
+ overflow: hidden;
213
+ &:hover {
214
+ overflow-y: auto;
215
+ }
216
+ }
217
+ .dashboard-sidebar-container {
218
+ width: ${props => props.sidebarWidth}px;
219
+ }
220
+ .dashboard-main {
221
+ display: flex;
222
+ flex-direction: column;
223
+ overflow: auto;
224
+ flex: 1;
225
+ position: relative;
226
+ }
227
+ .dashboard-content {
228
+ flex: 1;
229
+ }
230
+ &.dashboard-dense {
231
+ .dashboard-header {
232
+ border-bottom: 1px solid #eee;
233
+ }
234
+ .dashboard-sidebar {
235
+ width: 256px;
236
+ border-right: 1px solid #eee;
237
+ }
238
+ }
239
+ ${props => props.theme.breakpoints.up('md')} {
240
+ .header-logo {
241
+ display: flex;
242
+ justify-content: center;
243
+ }
244
+ &.dashboard-dense {
245
+ .header-logo {
246
+ /* dense = true 时 logo 与 sidenav icons 不需要对齐 */
247
+ width: auto;
248
+ }
249
+ }
250
+ }
251
+ `;
252
+ const StyledUxHeader = styled(ResponsiveHeader)`
253
+ .header-container {
254
+ max-width: 100%;
255
+ }
256
+ `;
217
257
 
218
258
  // 兼容旧版 dashboard
219
- function DashboardWrapper(_ref4) {
220
- let {
221
- legacy
222
- } = _ref4,
223
- rest = _objectWithoutProperties(_ref4, _excluded3);
259
+ export default function DashboardWrapper({
260
+ legacy,
261
+ ...rest
262
+ }) {
224
263
  if (legacy) {
225
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_dashboardLegacy.default, _objectSpread({}, rest));
264
+ return /*#__PURE__*/_jsx(DashboardLegacy, {
265
+ ...rest
266
+ });
226
267
  }
227
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_fullPage.FullPageProvider, {
228
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Dashboard, _objectSpread({}, rest))
268
+ return /*#__PURE__*/_jsx(FullPageProvider, {
269
+ children: /*#__PURE__*/_jsx(Dashboard, {
270
+ ...rest
271
+ })
229
272
  });
230
273
  }
231
- DashboardWrapper.propTypes = _objectSpread(_objectSpread({}, Dashboard.propTypes), {}, {
232
- legacy: _propTypes.default.bool,
233
- footerProps: _propTypes.default.shape(_Footer.default.propTypes)
234
- });
235
- DashboardWrapper.defaultProps = _objectSpread(_objectSpread({}, Dashboard.defaultProps), {}, {
274
+ DashboardWrapper.propTypes = {
275
+ ...Dashboard.propTypes,
276
+ legacy: PropTypes.bool,
277
+ footerProps: PropTypes.shape(Footer.propTypes)
278
+ };
279
+ DashboardWrapper.defaultProps = {
280
+ ...Dashboard.defaultProps,
236
281
  legacy: true
237
- });
282
+ };