@arcblock/ux 0.78.26 → 1.6.60

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 (174) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +0 -56
  3. package/lib/ActionButton/index.js +6 -4
  4. package/lib/ActivityIndicator/index.js +75 -23
  5. package/lib/Alert/index.js +15 -11
  6. package/lib/Async/index.js +1 -1
  7. package/lib/Badge/index.js +17 -15
  8. package/lib/Blocklet/index.js +261 -0
  9. package/lib/Button/wrap.js +96 -43
  10. package/lib/ButtonGroup/index.js +3 -16
  11. package/lib/Center/index.js +30 -4
  12. package/lib/ClickToCopy/index.js +10 -8
  13. package/lib/CodeBlock/index.js +40 -13
  14. package/lib/Colors/index.js +15 -0
  15. package/lib/Colors/themes/default.js +85 -0
  16. package/lib/ContactForm/index.js +9 -10
  17. package/lib/CookieConsent/index.js +98 -0
  18. package/lib/CountDown/index.js +18 -14
  19. package/lib/Dialog/confirm.js +84 -0
  20. package/lib/Dialog/dialog.js +137 -0
  21. package/lib/Dialog/index.js +23 -0
  22. package/lib/Earth/index.js +33 -33
  23. package/lib/Empty/index.js +61 -0
  24. package/lib/Footer/index.js +16 -18
  25. package/lib/Icon/image.js +10 -13
  26. package/lib/Icon/index.js +10 -8
  27. package/lib/Img/index.js +212 -0
  28. package/lib/InfoRow/index.js +7 -6
  29. package/lib/Layout/dashboard/header.js +60 -42
  30. package/lib/Layout/dashboard/index.js +72 -60
  31. package/lib/Layout/dashboard/sidebar.js +41 -25
  32. package/lib/Layout/index.js +113 -51
  33. package/lib/Locale/browser-lang.js +0 -2
  34. package/lib/Locale/context.js +85 -61
  35. package/lib/Locale/selector.js +33 -20
  36. package/lib/Logo/index.js +15 -13
  37. package/lib/Metric/index.js +5 -6
  38. package/lib/NFTDisplay/README.md +59 -0
  39. package/lib/NFTDisplay/aspect-ratio-container.js +52 -0
  40. package/lib/NFTDisplay/broken.js +25 -0
  41. package/lib/NFTDisplay/index.js +317 -0
  42. package/lib/NFTDisplay/loading.js +23 -0
  43. package/lib/NFTDisplay/svg-embedder/img.js +68 -0
  44. package/lib/NFTDisplay/svg-embedder/inline-svg.js +54 -0
  45. package/lib/PageScroller/index.js +10 -11
  46. package/lib/PageScroller/usePrevValue.js +2 -2
  47. package/lib/PricingTable/PricingPlan.js +12 -15
  48. package/lib/PricingTable/index.js +5 -5
  49. package/lib/QRCode/index.js +89 -0
  50. package/lib/Result/common.js +176 -0
  51. package/lib/Result/index.js +61 -0
  52. package/lib/Result/result.js +69 -0
  53. package/lib/Result/translations.js +61 -0
  54. package/lib/Screenshot/index.js +14 -13
  55. package/lib/Spinner/index.js +37 -0
  56. package/lib/SplitButton/index.js +126 -0
  57. package/lib/Switch/index.js +107 -0
  58. package/lib/Tabs/index.js +24 -47
  59. package/lib/Tag/index.js +15 -13
  60. package/lib/Terminal/Player.js +43 -45
  61. package/lib/Terminal/index.js +3 -1
  62. package/lib/Terminal/util.js +2 -3
  63. package/lib/TextCollapse/index.js +21 -14
  64. package/lib/Theme/index.js +79 -63
  65. package/lib/Theme/responsiveFontSizes.js +8 -8
  66. package/lib/Toast/index.js +12 -11
  67. package/lib/Util/index.js +197 -26
  68. package/lib/Video/index.js +8 -11
  69. package/lib/Wallet/Action.js +15 -13
  70. package/lib/Wallet/Download.js +60 -58
  71. package/lib/Wallet/Open.js +2 -2
  72. package/lib/WechatPrompt/index.js +10 -10
  73. package/lib/index.js +6 -6
  74. package/lib/withTheme/index.js +5 -17
  75. package/lib/withTracker/error_boundary.js +3 -3
  76. package/lib/withTracker/index.js +6 -7
  77. package/package.json +23 -17
  78. package/src/ActionButton/index.js +65 -0
  79. package/src/ActivityIndicator/index.js +141 -0
  80. package/src/Alert/index.js +104 -0
  81. package/src/Async/index.js +39 -0
  82. package/src/Badge/index.js +71 -0
  83. package/src/Blocklet/index.js +424 -0
  84. package/src/Button/index.js +4 -0
  85. package/src/Button/wrap.js +101 -0
  86. package/src/ButtonGroup/index.js +6 -0
  87. package/src/Center/index.js +40 -0
  88. package/src/ClickToCopy/index.js +90 -0
  89. package/src/CodeBlock/index.js +160 -0
  90. package/src/Colors/index.js +1 -0
  91. package/src/Colors/themes/default.js +54 -0
  92. package/src/ContactForm/index.js +240 -0
  93. package/src/CookieConsent/index.js +90 -0
  94. package/src/CountDown/index.js +151 -0
  95. package/src/Dialog/confirm.js +76 -0
  96. package/src/Dialog/dialog.js +162 -0
  97. package/src/Dialog/index.js +2 -0
  98. package/src/DriftBot/index.js +81 -0
  99. package/src/Earth/countries.json +8057 -0
  100. package/src/Earth/index.js +511 -0
  101. package/src/Earth/util.js +69 -0
  102. package/src/Empty/index.js +41 -0
  103. package/src/Footer/index.js +110 -0
  104. package/src/Icon/image.js +55 -0
  105. package/src/Icon/index.js +69 -0
  106. package/src/Img/index.js +172 -0
  107. package/src/InfoRow/index.js +83 -0
  108. package/src/Layout/dashboard/header.js +157 -0
  109. package/src/Layout/dashboard/index.js +150 -0
  110. package/src/Layout/dashboard/sidebar.js +122 -0
  111. package/src/Layout/index.js +318 -0
  112. package/src/Locale/browser-lang.js +63 -0
  113. package/src/Locale/context.js +94 -0
  114. package/src/Locale/images/globe-dark.png +0 -0
  115. package/src/Locale/images/globe-light.png +0 -0
  116. package/src/Locale/selector.js +135 -0
  117. package/src/Logo/images/logo-dark-text.svg +3 -0
  118. package/src/Logo/images/logo-dark-top.svg +6 -0
  119. package/src/Logo/images/logo-light-text.svg +3 -0
  120. package/src/Logo/images/logo-light-top.svg +6 -0
  121. package/src/Logo/index.js +47 -0
  122. package/src/Metric/index.js +115 -0
  123. package/src/NFTDisplay/README.md +59 -0
  124. package/src/NFTDisplay/aspect-ratio-container.js +34 -0
  125. package/src/NFTDisplay/broken.js +18 -0
  126. package/src/NFTDisplay/index.js +257 -0
  127. package/src/NFTDisplay/loading.js +17 -0
  128. package/src/NFTDisplay/svg-embedder/img.js +36 -0
  129. package/src/NFTDisplay/svg-embedder/inline-svg.js +37 -0
  130. package/src/PageScroller/index.js +342 -0
  131. package/src/PageScroller/usePrevValue.js +12 -0
  132. package/src/PricingTable/PricingPlan.js +112 -0
  133. package/src/PricingTable/index.js +43 -0
  134. package/src/QRCode/index.js +56 -0
  135. package/src/Result/common.js +116 -0
  136. package/src/Result/index.js +31 -0
  137. package/src/Result/result.js +57 -0
  138. package/src/Result/translations.js +56 -0
  139. package/src/Screenshot/devices.css +1366 -0
  140. package/src/Screenshot/index.js +181 -0
  141. package/src/Spinner/index.js +19 -0
  142. package/src/SplitButton/index.js +112 -0
  143. package/src/Switch/index.js +78 -0
  144. package/src/Tabs/index.js +46 -0
  145. package/src/Tag/index.js +73 -0
  146. package/src/Terminal/Player.js +364 -0
  147. package/src/Terminal/index.js +150 -0
  148. package/src/Terminal/player.css +378 -0
  149. package/src/Terminal/util.js +167 -0
  150. package/src/Terminal/xterm.css +171 -0
  151. package/src/TextCollapse/index.js +92 -0
  152. package/src/Theme/index.js +184 -0
  153. package/src/Theme/responsiveFontSizes.js +94 -0
  154. package/src/Toast/index.js +118 -0
  155. package/src/Util/index.js +281 -0
  156. package/src/Video/index.js +72 -0
  157. package/src/Wallet/Action.js +105 -0
  158. package/src/Wallet/Download.js +130 -0
  159. package/src/Wallet/Open.js +50 -0
  160. package/src/Wallet/images/abtwallet.png +0 -0
  161. package/src/Wallet/images/android_download.svg +23 -0
  162. package/src/Wallet/images/app-store.svg +20 -0
  163. package/src/Wallet/images/google-play.svg +70 -0
  164. package/src/WechatPrompt/images/android.png +0 -0
  165. package/src/WechatPrompt/images/ios.png +0 -0
  166. package/src/WechatPrompt/index.js +81 -0
  167. package/src/index.js +63 -0
  168. package/src/withTheme/index.js +72 -0
  169. package/src/withTracker/README.md +34 -0
  170. package/src/withTracker/error_boundary.js +34 -0
  171. package/src/withTracker/index.js +70 -0
  172. package/lib/GraphQLPlayground/graphiql.css +0 -1850
  173. package/lib/GraphQLPlayground/index.js +0 -302
  174. package/lib/GraphQLPlayground/util.js +0 -55
@@ -0,0 +1,317 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ exports.getNFTData = getNFTData;
8
+
9
+ var _react = _interopRequireWildcard(require("react"));
10
+
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+
13
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
14
+
15
+ var _clsx = _interopRequireDefault(require("clsx"));
16
+
17
+ var _get = _interopRequireDefault(require("lodash/get"));
18
+
19
+ var _pako = _interopRequireDefault(require("pako"));
20
+
21
+ var _base64Url = _interopRequireDefault(require("base64-url"));
22
+
23
+ var _isSvg = _interopRequireDefault(require("is-svg"));
24
+
25
+ var _aspectRatioContainer = _interopRequireDefault(require("./aspect-ratio-container"));
26
+
27
+ var _img = _interopRequireDefault(require("./svg-embedder/img"));
28
+
29
+ var _inlineSvg = _interopRequireDefault(require("./svg-embedder/inline-svg"));
30
+
31
+ var _loading = _interopRequireDefault(require("./loading"));
32
+
33
+ var _broken = _interopRequireDefault(require("./broken"));
34
+
35
+ const _excluded = ["data", "address", "inset", "aspect", "component", "className", "renderError", "renderLoading", "preferredSvgEmbedder", "checkSvg", "minimumLoadingTime", "onCompleted"],
36
+ _excluded2 = ["aspect", "inset"];
37
+
38
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
+
40
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
41
+
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
+
44
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
45
+
46
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
47
+
48
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
49
+
50
+ 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; }
51
+
52
+ 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; }
53
+
54
+ /**
55
+ * 从 assetState 中获取 nft data, 兼容新旧两种类型的数据结构, 建议将该方法的返回值传入 NFTDisplay 组件的 data prop
56
+ * - 旧: assetState.data.value (.credentialSubject.display)
57
+ * - 新: assetState.display
58
+ */
59
+ function getNFTData(assetState) {
60
+ var _assetState$data;
61
+
62
+ return (assetState === null || assetState === void 0 ? void 0 : assetState.display) || (assetState === null || assetState === void 0 ? void 0 : (_assetState$data = assetState.data) === null || _assetState$data === void 0 ? void 0 : _assetState$data.value);
63
+ }
64
+
65
+ function fromBase64(v) {
66
+ if (typeof v !== 'string') {
67
+ throw new Error('fromBase64 requires input to be a string');
68
+ }
69
+
70
+ return Buffer.from(_base64Url.default.unescape(v), 'base64');
71
+ } // const isVC = type => {
72
+ // return String(type).includes('VerifiableCredential');
73
+ // };
74
+ // 仅针对非 url type 的情况
75
+
76
+
77
+ const getSvgEmbedder = preferredSvgEmbedder => {
78
+ const embedders = {
79
+ img: _img.default,
80
+ svg: _inlineSvg.default
81
+ };
82
+ return embedders[preferredSvgEmbedder];
83
+ };
84
+ /**
85
+ * TODO:
86
+ * 考虑把 asset data 解析部分和 nft display 分离, android 端有相关使用场景 - 只传入 svg 或 url, 也可以传入 asset data,
87
+ * 目前如果想直接传入 svg 或 url, 需要构造一个 asset data 的数据才能使用 NFTDisplay 组件
88
+ */
89
+
90
+
91
+ function NFTDisplay(_ref) {
92
+ let {
93
+ data,
94
+ address,
95
+ inset,
96
+ aspect,
97
+ component,
98
+ className,
99
+ renderError,
100
+ renderLoading,
101
+ preferredSvgEmbedder,
102
+ checkSvg,
103
+ minimumLoadingTime,
104
+ onCompleted
105
+ } = _ref,
106
+ rest = _objectWithoutProperties(_ref, _excluded);
107
+
108
+ const wrapRoot = children => /*#__PURE__*/_react.default.createElement(Root, Object.assign({
109
+ as: component
110
+ }, rest, {
111
+ className: (0, _clsx.default)(className, {
112
+ 'nft-display--inset': inset
113
+ })
114
+ }), children);
115
+
116
+ try {
117
+ const parsed = _react.default.useRef(data); // 如果是 raw data 先解析
118
+
119
+
120
+ if (typeof parsed.current === 'string') {
121
+ parsed.current = JSON.parse(data); // console.log('[debug] parse data')
122
+ }
123
+
124
+ const {
125
+ vcId
126
+ } = parsed.current; // 需要兼容新旧两种类型的数据结构, nft data 有 credentialSubject 属性, 说明是旧 nft data, 否则是新 nft data
127
+
128
+ const display = parsed.current.credentialSubject ? (0, _get.default)(parsed.current, 'credentialSubject.display') : parsed.current;
129
+ const {
130
+ content,
131
+ type
132
+ } = display;
133
+ const isUrlType = type === 'url'; // 首次加载, 对于 url type 的情况, loading 为 true
134
+
135
+ const [state, setState] = (0, _react.useState)({
136
+ loading: isUrlType,
137
+ error: false
138
+ });
139
+ const [minimumLoadingReady, setMinimumLoadingReady] = (0, _react.useState)(minimumLoadingTime <= 0); // console.log('[debug] render', {type, minimumLoadingTime}, JSON.stringify(state))
140
+
141
+ _react.default.useEffect(() => {
142
+ let timer;
143
+
144
+ if (minimumLoadingTime > 0) {
145
+ timer = setTimeout(() => setMinimumLoadingReady(true), minimumLoadingTime);
146
+ }
147
+
148
+ return () => clearTimeout(timer);
149
+ }, []); // onCompleted
150
+
151
+
152
+ _react.default.useEffect(() => {
153
+ if (!state.loading && minimumLoadingReady || state.error) {
154
+ onCompleted();
155
+ }
156
+ }, [state, minimumLoadingReady]);
157
+
158
+ if (state.error) {
159
+ throw new Error('Failed to render NFT Display.');
160
+ }
161
+
162
+ const renderNFT = () => {
163
+ if (content) {
164
+ switch (type) {
165
+ case 'url':
166
+ {
167
+ const urlObj = new URL(content);
168
+
169
+ if (!urlObj.searchParams.has('assetId')) {
170
+ urlObj.searchParams.append('assetId', address);
171
+ }
172
+
173
+ if (!urlObj.searchParams.has('vcId')) {
174
+ urlObj.searchParams.append('vcId', vcId);
175
+ }
176
+
177
+ const url = urlObj.href;
178
+ return /*#__PURE__*/_react.default.createElement("img", {
179
+ src: url,
180
+ onError: () => setState(_objectSpread(_objectSpread({}, state), {}, {
181
+ error: true
182
+ })),
183
+ onLoad: () => setState(_objectSpread(_objectSpread({}, state), {}, {
184
+ loading: false
185
+ })),
186
+ alt: "NFT Display"
187
+ });
188
+ }
189
+
190
+ case 'uri':
191
+ {
192
+ return /*#__PURE__*/_react.default.createElement("img", {
193
+ src: content,
194
+ onError: () => setState(_objectSpread(_objectSpread({}, state), {}, {
195
+ error: true
196
+ })),
197
+ onLoad: () => setState(_objectSpread(_objectSpread({}, state), {}, {
198
+ loading: false
199
+ })),
200
+ alt: "NFT Display"
201
+ });
202
+ }
203
+
204
+ case 'svg_gzipped':
205
+ {
206
+ const buffer = _pako.default.ungzip(fromBase64(content), {});
207
+
208
+ const svg = Buffer.from(buffer).toString('utf8');
209
+
210
+ if (checkSvg && !(0, _isSvg.default)(svg)) {
211
+ throw new Error("Invalid SVG: ".concat(svg));
212
+ }
213
+
214
+ const Embedder = getSvgEmbedder(preferredSvgEmbedder);
215
+ return /*#__PURE__*/_react.default.createElement(Embedder, {
216
+ svg: svg
217
+ });
218
+ }
219
+
220
+ case 'svg':
221
+ {
222
+ if (checkSvg && !(0, _isSvg.default)(content)) {
223
+ throw new Error("Invalid SVG: ".concat(content));
224
+ }
225
+
226
+ const Embedder = getSvgEmbedder(preferredSvgEmbedder);
227
+ return /*#__PURE__*/_react.default.createElement(Embedder, {
228
+ svg: content
229
+ });
230
+ }
231
+ // TODO: 准备测试数据
232
+
233
+ case 'html':
234
+ {
235
+ break;
236
+ }
237
+
238
+ default:
239
+ }
240
+ }
241
+
242
+ throw new Error("unsupported display protocol: ".concat(display.type));
243
+ };
244
+
245
+ return wrapRoot( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (state.loading || !minimumLoadingReady) && (renderLoading ? renderLoading() : /*#__PURE__*/_react.default.createElement(_loading.default, null)), renderNFT()));
246
+ } catch (e) {
247
+ console.error(e);
248
+ return wrapRoot(renderError ? renderError() : /*#__PURE__*/_react.default.createElement(_broken.default, null));
249
+ }
250
+ }
251
+
252
+ NFTDisplay.propTypes = {
253
+ // asset data 可以是 raw data 和 parsed data
254
+ data: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]).isRequired,
255
+ address: _propTypes.default.string.isRequired,
256
+ component: _propTypes.default.string,
257
+ inset: _propTypes.default.bool,
258
+ aspect: _propTypes.default.number,
259
+ className: _propTypes.default.string,
260
+ renderError: _propTypes.default.func,
261
+ renderLoading: _propTypes.default.func,
262
+ // 对于非 url type 的情况, 支持优先选用的 svg 嵌入方式, 默认是 img
263
+ preferredSvgEmbedder: _propTypes.default.oneOf(['img', 'svg']),
264
+ // 针对非 url type 的情况, 检测 svg 有效性, 默认禁用
265
+ checkSvg: _propTypes.default.bool,
266
+ // loading 最小显示时间 (避免闪烁)
267
+ minimumLoadingTime: _propTypes.default.number,
268
+ // 完成回调, 无论加载成功|失败
269
+ onCompleted: _propTypes.default.func
270
+ };
271
+ NFTDisplay.defaultProps = {
272
+ component: 'span',
273
+ inset: false,
274
+ aspect: 0,
275
+ className: '',
276
+ renderError: null,
277
+ renderLoading: null,
278
+ preferredSvgEmbedder: 'img',
279
+ checkSvg: false,
280
+ minimumLoadingTime: 0,
281
+ onCompleted: () => {}
282
+ };
283
+
284
+ const Root = _styledComponents.default.div.withConfig({
285
+ displayName: "NFTDisplay__Root",
286
+ componentId: "sc-7p9mb0-0"
287
+ })(["display:flex;justify-content:center;align-items:center;position:relative;width:150px;height:150px;overflow:hidden;&,img{max-width:100%;max-height:100%;}img{width:100%;height:100%;}&.nft-display--inset{width:100%;height:100%;}"]);
288
+
289
+ function withAspectRatio(Component) {
290
+ // eslint-disable-next-line func-names, react/prop-types
291
+ return function (_ref2) {
292
+ let {
293
+ aspect,
294
+ inset
295
+ } = _ref2,
296
+ rest = _objectWithoutProperties(_ref2, _excluded2);
297
+
298
+ // inset 比 aspect ratio 优先级高, 如果同时设置了 inset 和 aspect, 则后者不生效
299
+ const applyAspectRatio = aspect > 0 && !inset;
300
+
301
+ if (applyAspectRatio) {
302
+ return /*#__PURE__*/_react.default.createElement(_aspectRatioContainer.default, {
303
+ aspect: aspect
304
+ }, /*#__PURE__*/_react.default.createElement(Component, Object.assign({
305
+ inset: true
306
+ }, rest)));
307
+ }
308
+
309
+ return /*#__PURE__*/_react.default.createElement(Component, Object.assign({
310
+ inset: inset
311
+ }, rest));
312
+ };
313
+ }
314
+
315
+ var _default = withAspectRatio(NFTDisplay);
316
+
317
+ exports.default = _default;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Loading;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function Loading() {
15
+ return /*#__PURE__*/_react.default.createElement(Root, {
16
+ className: "nft-display__loading"
17
+ }, "loading...");
18
+ }
19
+
20
+ const Root = _styledComponents.default.span.withConfig({
21
+ displayName: "loading__Root",
22
+ componentId: "sc-jedc6b-0"
23
+ })(["display:flex;justify-content:center;align-items:center;position:absolute;width:100%;height:100%;color:#ccc;background-color:#eee;"]);
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _inlineSvg = _interopRequireDefault(require("./inline-svg"));
13
+
14
+ const _excluded = ["svg", "alt", "fallback"];
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ 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; }
19
+
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
+
22
+ const svgToImgUrl = svg => {
23
+ // fix: #225, https://stackoverflow.com/a/52135328)
24
+ const blob = new Blob([svg], {
25
+ type: 'image/svg+xml'
26
+ });
27
+ return URL.createObjectURL(blob);
28
+ };
29
+ /**
30
+ * 基于 <img> 嵌入 svg
31
+ */
32
+
33
+
34
+ function ImgEmbedder(_ref) {
35
+ let {
36
+ svg,
37
+ alt,
38
+ fallback
39
+ } = _ref,
40
+ rest = _objectWithoutProperties(_ref, _excluded);
41
+
42
+ // 包含 foreignObject 的 svg, fallback 到 shadow dom
43
+ if (fallback && svg.indexOf('</foreignObject>') > -1) {
44
+ return /*#__PURE__*/_react.default.createElement(_inlineSvg.default, {
45
+ svg: svg
46
+ });
47
+ }
48
+
49
+ const url = svgToImgUrl(svg);
50
+ return /*#__PURE__*/_react.default.createElement("img", Object.assign({
51
+ src: url,
52
+ onLoad: () => URL.revokeObjectURL(url),
53
+ alt: alt
54
+ }, rest));
55
+ }
56
+
57
+ ImgEmbedder.propTypes = {
58
+ svg: _propTypes.default.string.isRequired,
59
+ alt: _propTypes.default.string,
60
+ // 对于包含 foreignObject 的 svg, fallback 到 inline svg + shadow DOM
61
+ fallback: _propTypes.default.bool
62
+ };
63
+ ImgEmbedder.defaultProps = {
64
+ alt: '',
65
+ fallback: true
66
+ };
67
+ var _default = ImgEmbedder;
68
+ exports.default = _default;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+
14
+ var _styledComponents2 = _interopRequireDefault(require("react-shadow/styled-components"));
15
+
16
+ const _excluded = ["svg"];
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ 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; }
21
+
22
+ 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; }
23
+
24
+ /**
25
+ * inline svg 的方式嵌入 svg, 使用 shadow DOM 避免样式污染
26
+ */
27
+ function InlineSvg(_ref) {
28
+ let {
29
+ svg
30
+ } = _ref,
31
+ rest = _objectWithoutProperties(_ref, _excluded);
32
+
33
+ return /*#__PURE__*/_react.default.createElement(Root, rest, /*#__PURE__*/_react.default.createElement(Inner, {
34
+ dangerouslySetInnerHTML: {
35
+ __html: svg
36
+ }
37
+ }));
38
+ }
39
+
40
+ InlineSvg.propTypes = {
41
+ svg: _propTypes.default.string.isRequired
42
+ };
43
+ const Root = (0, _styledComponents.default)(_styledComponents2.default.span).withConfig({
44
+ displayName: "inline-svg__Root",
45
+ componentId: "sc-wv8c7s-0"
46
+ })(["display:block;width:100%;height:100%;"]);
47
+
48
+ const Inner = _styledComponents.default.div.withConfig({
49
+ displayName: "inline-svg__Inner",
50
+ componentId: "sc-wv8c7s-1"
51
+ })(["&,& > svg{height:100%;width:100%;min-width:100%;max-width:100%;}"]);
52
+
53
+ var _default = InlineSvg;
54
+ exports.default = _default;
@@ -19,13 +19,13 @@ var _usePrevValue = _interopRequireDefault(require("./usePrevValue"));
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
22
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
23
 
24
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
25
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
27
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
29
 
30
30
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
31
31
 
@@ -50,7 +50,7 @@ let isBodyScrollEnabled = true;
50
50
  let isTransitionAfterComponentsToRenderChanged = false;
51
51
  const containers = [];
52
52
 
53
- const PageScroller = (_ref) => {
53
+ const PageScroller = _ref => {
54
54
  let {
55
55
  animationTimer,
56
56
  blockScrollDown,
@@ -117,13 +117,13 @@ const PageScroller = (_ref) => {
117
117
 
118
118
  while (i < componentsToRenderLength && !(0, _isNil.default)(children[i])) {
119
119
  containers[i] = true;
120
- newComponentsToRender.push(_react.default.createElement("div", {
120
+ newComponentsToRender.push( /*#__PURE__*/_react.default.createElement("div", {
121
121
  key: i,
122
122
  style: {
123
123
  height: '100%',
124
124
  width: '100%'
125
125
  }
126
- }, _react.default.cloneElement(children[i], _objectSpread({}, children[i].props))));
126
+ }, /*#__PURE__*/_react.default.cloneElement(children[i], _objectSpread({}, children[i].props))));
127
127
  i++;
128
128
  }
129
129
 
@@ -232,8 +232,7 @@ const PageScroller = (_ref) => {
232
232
 
233
233
  if (!(0, _isEqual.default)(componentIndex, customPageNumber)) {
234
234
  if (!(0, _isNil.default)(containers[customPageNumber]) && !isScrolling) {
235
- isScrolling = true; // eslint-disable-next-line max-len
236
-
235
+ isScrolling = true;
237
236
  pageContainer.current.style.transform = "translate3d(0, ".concat(customPageNumber * -100, "%, 0)");
238
237
 
239
238
  if ((0, _isNil.default)(containers[customPageNumber]) && !(0, _isNil.default)(children[customPageNumber])) {
@@ -269,13 +268,13 @@ const PageScroller = (_ref) => {
269
268
  }, animationTimer + ANIMATION_TIMER_BUFFER);
270
269
  }
271
270
  }, [animationTimer, componentsToRenderLength, customPageNumber]);
272
- return _react.default.createElement("div", {
271
+ return /*#__PURE__*/_react.default.createElement("div", {
273
272
  style: {
274
273
  height,
275
274
  width,
276
275
  overflow: 'hidden'
277
276
  }
278
- }, _react.default.createElement("div", {
277
+ }, /*#__PURE__*/_react.default.createElement("div", {
279
278
  ref: pageContainer,
280
279
  onWheel: wheelScroll,
281
280
  style: {
@@ -7,9 +7,9 @@ exports.default = usePrevious;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
10
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
11
 
12
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
13
 
14
14
  // eslint-disable-next-line no-unused-vars
15
15
  function usePrevious(value) {
@@ -21,39 +21,36 @@ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography")
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
24
- /* eslint react/jsx-no-bind:"off" */
25
-
26
- /* eslint react/no-this-in-sfc:"off" */
27
- const PricingPlan = (_ref) => {
24
+ const PricingPlan = _ref => {
28
25
  let {
29
26
  plan
30
27
  } = _ref;
31
- return _react.default.createElement(PlanCard, {
28
+ return /*#__PURE__*/_react.default.createElement(PlanCard, {
32
29
  shadow: true
33
- }, _react.default.createElement("div", {
30
+ }, /*#__PURE__*/_react.default.createElement("div", {
34
31
  className: "card-header"
35
- }, _react.default.createElement("div", {
32
+ }, /*#__PURE__*/_react.default.createElement("div", {
36
33
  className: "title"
37
- }, plan.name)), _react.default.createElement(_CardContent.default, {
34
+ }, plan.name)), /*#__PURE__*/_react.default.createElement(_CardContent.default, {
38
35
  className: "card-content"
39
- }, _react.default.createElement("div", {
36
+ }, /*#__PURE__*/_react.default.createElement("div", {
40
37
  className: "plan-content"
41
- }, _react.default.createElement("div", {
38
+ }, /*#__PURE__*/_react.default.createElement("div", {
42
39
  className: "plan-pricing"
43
- }, _react.default.createElement(_Typography.default, {
40
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
44
41
  component: "h2",
45
42
  variant: "h5",
46
43
  className: "price-number"
47
- }, plan.price)), _react.default.createElement("div", {
44
+ }, plan.price)), /*#__PURE__*/_react.default.createElement("div", {
48
45
  className: "plan-services"
49
- }, plan.featureList.map(line => _react.default.createElement(_Typography.default, {
46
+ }, plan.featureList.map(line => /*#__PURE__*/_react.default.createElement(_Typography.default, {
50
47
  component: "p",
51
48
  variant: "body1",
52
49
  align: "center",
53
50
  key: line
54
- }, line)))), _react.default.createElement("div", {
51
+ }, line)))), /*#__PURE__*/_react.default.createElement("div", {
55
52
  className: "plan-actions"
56
- }, plan.showButton && _react.default.createElement(_Button.default, {
53
+ }, plan.showButton && /*#__PURE__*/_react.default.createElement(_Button.default, {
57
54
  fullWidth: true,
58
55
  variant: "outlined",
59
56
  color: "primary",
@@ -17,26 +17,26 @@ var _PricingPlan = _interopRequireDefault(require("./PricingPlan"));
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
- const PricingTable = (_ref) => {
20
+ const PricingTable = _ref => {
21
21
  let {
22
22
  plans
23
23
  } = _ref;
24
24
 
25
25
  if (plans && plans.length > 0) {
26
- return _react.default.createElement(Div, {
26
+ return /*#__PURE__*/_react.default.createElement(Div, {
27
27
  variant: "even"
28
- }, _react.default.createElement(_Grid.default, {
28
+ }, /*#__PURE__*/_react.default.createElement(_Grid.default, {
29
29
  container: true,
30
30
  spacing: 2,
31
31
  justify: "center"
32
- }, plans.map(x => _react.default.createElement(_Grid.default, {
32
+ }, plans.map(x => /*#__PURE__*/_react.default.createElement(_Grid.default, {
33
33
  item: true,
34
34
  className: "plan-item",
35
35
  key: x.id,
36
36
  xs: 12,
37
37
  sm: 6,
38
38
  md: 3
39
- }, _react.default.createElement(_PricingPlan.default, {
39
+ }, /*#__PURE__*/_react.default.createElement(_PricingPlan.default, {
40
40
  plan: x
41
41
  })))));
42
42
  }