@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.
- package/LICENSE +1 -1
- package/README.md +0 -56
- package/lib/ActionButton/index.js +6 -4
- package/lib/ActivityIndicator/index.js +75 -23
- package/lib/Alert/index.js +15 -11
- package/lib/Async/index.js +1 -1
- package/lib/Badge/index.js +17 -15
- package/lib/Blocklet/index.js +261 -0
- package/lib/Button/wrap.js +96 -43
- package/lib/ButtonGroup/index.js +3 -16
- package/lib/Center/index.js +30 -4
- package/lib/ClickToCopy/index.js +10 -8
- package/lib/CodeBlock/index.js +40 -13
- package/lib/Colors/index.js +15 -0
- package/lib/Colors/themes/default.js +85 -0
- package/lib/ContactForm/index.js +9 -10
- package/lib/CookieConsent/index.js +98 -0
- package/lib/CountDown/index.js +18 -14
- package/lib/Dialog/confirm.js +84 -0
- package/lib/Dialog/dialog.js +137 -0
- package/lib/Dialog/index.js +23 -0
- package/lib/Earth/index.js +33 -33
- package/lib/Empty/index.js +61 -0
- package/lib/Footer/index.js +16 -18
- package/lib/Icon/image.js +10 -13
- package/lib/Icon/index.js +10 -8
- package/lib/Img/index.js +212 -0
- package/lib/InfoRow/index.js +7 -6
- package/lib/Layout/dashboard/header.js +60 -42
- package/lib/Layout/dashboard/index.js +72 -60
- package/lib/Layout/dashboard/sidebar.js +41 -25
- package/lib/Layout/index.js +113 -51
- package/lib/Locale/browser-lang.js +0 -2
- package/lib/Locale/context.js +85 -61
- package/lib/Locale/selector.js +33 -20
- package/lib/Logo/index.js +15 -13
- package/lib/Metric/index.js +5 -6
- package/lib/NFTDisplay/README.md +59 -0
- package/lib/NFTDisplay/aspect-ratio-container.js +52 -0
- package/lib/NFTDisplay/broken.js +25 -0
- package/lib/NFTDisplay/index.js +317 -0
- package/lib/NFTDisplay/loading.js +23 -0
- package/lib/NFTDisplay/svg-embedder/img.js +68 -0
- package/lib/NFTDisplay/svg-embedder/inline-svg.js +54 -0
- package/lib/PageScroller/index.js +10 -11
- package/lib/PageScroller/usePrevValue.js +2 -2
- package/lib/PricingTable/PricingPlan.js +12 -15
- package/lib/PricingTable/index.js +5 -5
- package/lib/QRCode/index.js +89 -0
- package/lib/Result/common.js +176 -0
- package/lib/Result/index.js +61 -0
- package/lib/Result/result.js +69 -0
- package/lib/Result/translations.js +61 -0
- package/lib/Screenshot/index.js +14 -13
- package/lib/Spinner/index.js +37 -0
- package/lib/SplitButton/index.js +126 -0
- package/lib/Switch/index.js +107 -0
- package/lib/Tabs/index.js +24 -47
- package/lib/Tag/index.js +15 -13
- package/lib/Terminal/Player.js +43 -45
- package/lib/Terminal/index.js +3 -1
- package/lib/Terminal/util.js +2 -3
- package/lib/TextCollapse/index.js +21 -14
- package/lib/Theme/index.js +79 -63
- package/lib/Theme/responsiveFontSizes.js +8 -8
- package/lib/Toast/index.js +12 -11
- package/lib/Util/index.js +197 -26
- package/lib/Video/index.js +8 -11
- package/lib/Wallet/Action.js +15 -13
- package/lib/Wallet/Download.js +60 -58
- package/lib/Wallet/Open.js +2 -2
- package/lib/WechatPrompt/index.js +10 -10
- package/lib/index.js +6 -6
- package/lib/withTheme/index.js +5 -17
- package/lib/withTracker/error_boundary.js +3 -3
- package/lib/withTracker/index.js +6 -7
- package/package.json +23 -17
- package/src/ActionButton/index.js +65 -0
- package/src/ActivityIndicator/index.js +141 -0
- package/src/Alert/index.js +104 -0
- package/src/Async/index.js +39 -0
- package/src/Badge/index.js +71 -0
- package/src/Blocklet/index.js +424 -0
- package/src/Button/index.js +4 -0
- package/src/Button/wrap.js +101 -0
- package/src/ButtonGroup/index.js +6 -0
- package/src/Center/index.js +40 -0
- package/src/ClickToCopy/index.js +90 -0
- package/src/CodeBlock/index.js +160 -0
- package/src/Colors/index.js +1 -0
- package/src/Colors/themes/default.js +54 -0
- package/src/ContactForm/index.js +240 -0
- package/src/CookieConsent/index.js +90 -0
- package/src/CountDown/index.js +151 -0
- package/src/Dialog/confirm.js +76 -0
- package/src/Dialog/dialog.js +162 -0
- package/src/Dialog/index.js +2 -0
- package/src/DriftBot/index.js +81 -0
- package/src/Earth/countries.json +8057 -0
- package/src/Earth/index.js +511 -0
- package/src/Earth/util.js +69 -0
- package/src/Empty/index.js +41 -0
- package/src/Footer/index.js +110 -0
- package/src/Icon/image.js +55 -0
- package/src/Icon/index.js +69 -0
- package/src/Img/index.js +172 -0
- package/src/InfoRow/index.js +83 -0
- package/src/Layout/dashboard/header.js +157 -0
- package/src/Layout/dashboard/index.js +150 -0
- package/src/Layout/dashboard/sidebar.js +122 -0
- package/src/Layout/index.js +318 -0
- package/src/Locale/browser-lang.js +63 -0
- package/src/Locale/context.js +94 -0
- package/src/Locale/images/globe-dark.png +0 -0
- package/src/Locale/images/globe-light.png +0 -0
- package/src/Locale/selector.js +135 -0
- package/src/Logo/images/logo-dark-text.svg +3 -0
- package/src/Logo/images/logo-dark-top.svg +6 -0
- package/src/Logo/images/logo-light-text.svg +3 -0
- package/src/Logo/images/logo-light-top.svg +6 -0
- package/src/Logo/index.js +47 -0
- package/src/Metric/index.js +115 -0
- package/src/NFTDisplay/README.md +59 -0
- package/src/NFTDisplay/aspect-ratio-container.js +34 -0
- package/src/NFTDisplay/broken.js +18 -0
- package/src/NFTDisplay/index.js +257 -0
- package/src/NFTDisplay/loading.js +17 -0
- package/src/NFTDisplay/svg-embedder/img.js +36 -0
- package/src/NFTDisplay/svg-embedder/inline-svg.js +37 -0
- package/src/PageScroller/index.js +342 -0
- package/src/PageScroller/usePrevValue.js +12 -0
- package/src/PricingTable/PricingPlan.js +112 -0
- package/src/PricingTable/index.js +43 -0
- package/src/QRCode/index.js +56 -0
- package/src/Result/common.js +116 -0
- package/src/Result/index.js +31 -0
- package/src/Result/result.js +57 -0
- package/src/Result/translations.js +56 -0
- package/src/Screenshot/devices.css +1366 -0
- package/src/Screenshot/index.js +181 -0
- package/src/Spinner/index.js +19 -0
- package/src/SplitButton/index.js +112 -0
- package/src/Switch/index.js +78 -0
- package/src/Tabs/index.js +46 -0
- package/src/Tag/index.js +73 -0
- package/src/Terminal/Player.js +364 -0
- package/src/Terminal/index.js +150 -0
- package/src/Terminal/player.css +378 -0
- package/src/Terminal/util.js +167 -0
- package/src/Terminal/xterm.css +171 -0
- package/src/TextCollapse/index.js +92 -0
- package/src/Theme/index.js +184 -0
- package/src/Theme/responsiveFontSizes.js +94 -0
- package/src/Toast/index.js +118 -0
- package/src/Util/index.js +281 -0
- package/src/Video/index.js +72 -0
- package/src/Wallet/Action.js +105 -0
- package/src/Wallet/Download.js +130 -0
- package/src/Wallet/Open.js +50 -0
- package/src/Wallet/images/abtwallet.png +0 -0
- package/src/Wallet/images/android_download.svg +23 -0
- package/src/Wallet/images/app-store.svg +20 -0
- package/src/Wallet/images/google-play.svg +70 -0
- package/src/WechatPrompt/images/android.png +0 -0
- package/src/WechatPrompt/images/ios.png +0 -0
- package/src/WechatPrompt/index.js +81 -0
- package/src/index.js +63 -0
- package/src/withTheme/index.js +72 -0
- package/src/withTracker/README.md +34 -0
- package/src/withTracker/error_boundary.js +34 -0
- package/src/withTracker/index.js +70 -0
- package/lib/GraphQLPlayground/graphiql.css +0 -1850
- package/lib/GraphQLPlayground/index.js +0 -302
- 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
|
|
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);
|
|
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]
|
|
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 =
|
|
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;
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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
|
}
|