@1money/component-ui 0.1.15-alpha.0 → 0.1.16-alpha.0
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/es/business/FilePreview/FilePreview.d.ts +6 -0
- package/es/business/FilePreview/FilePreview.js +78 -0
- package/es/business/FilePreview/ImagePreview.d.ts +11 -0
- package/es/business/FilePreview/ImagePreview.js +42 -0
- package/es/business/FilePreview/PdfPreview.d.ts +12 -0
- package/es/business/FilePreview/PdfPreview.js +49 -0
- package/es/business/FilePreview/PreviewContent.d.ts +7 -0
- package/es/business/FilePreview/PreviewContent.js +253 -0
- package/es/business/FilePreview/SpreadsheetPreview.d.ts +15 -0
- package/es/business/FilePreview/SpreadsheetPreview.js +239 -0
- package/es/business/FilePreview/index.d.ts +4 -0
- package/es/business/FilePreview/index.js +7 -0
- package/es/business/FilePreview/interface.d.ts +40 -0
- package/es/business/FilePreview/interface.js +2 -0
- package/es/business/FilePreview/style/FilePreview.css +106 -0
- package/es/business/FilePreview/style/css.js +2 -0
- package/es/business/FilePreview/style/index.d.ts +1 -0
- package/es/business/FilePreview/style/index.js +2 -0
- package/es/business/FilePreview/utils.d.ts +11 -0
- package/es/business/FilePreview/utils.js +218 -0
- package/es/business/index.d.ts +1 -0
- package/es/business/index.js +2 -1
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -0
- package/es/index.js +2 -1
- package/es/locale/en_US/business.js +12 -1
- package/es/locale/interface.d.ts +11 -0
- package/es/locale/pt_BR/business.js +12 -1
- package/es/locale/zh_CN/business.js +12 -1
- package/lib/business/FilePreview/FilePreview.d.ts +6 -0
- package/lib/business/FilePreview/FilePreview.js +86 -0
- package/lib/business/FilePreview/ImagePreview.d.ts +11 -0
- package/lib/business/FilePreview/ImagePreview.js +49 -0
- package/lib/business/FilePreview/PdfPreview.d.ts +12 -0
- package/lib/business/FilePreview/PdfPreview.js +56 -0
- package/lib/business/FilePreview/PreviewContent.d.ts +7 -0
- package/lib/business/FilePreview/PreviewContent.js +260 -0
- package/lib/business/FilePreview/SpreadsheetPreview.d.ts +15 -0
- package/lib/business/FilePreview/SpreadsheetPreview.js +250 -0
- package/lib/business/FilePreview/index.d.ts +4 -0
- package/lib/business/FilePreview/index.js +33 -0
- package/lib/business/FilePreview/interface.d.ts +40 -0
- package/lib/business/FilePreview/interface.js +6 -0
- package/lib/business/FilePreview/style/FilePreview.css +106 -0
- package/lib/business/FilePreview/style/css.js +4 -0
- package/lib/business/FilePreview/style/index.d.ts +1 -0
- package/lib/business/FilePreview/style/index.js +4 -0
- package/lib/business/FilePreview/utils.d.ts +11 -0
- package/lib/business/FilePreview/utils.js +230 -0
- package/lib/business/index.d.ts +1 -0
- package/lib/business/index.js +13 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +8 -1
- package/lib/locale/en_US/business.js +12 -1
- package/lib/locale/interface.d.ts +11 -0
- package/lib/locale/pt_BR/business.js +12 -1
- package/lib/locale/zh_CN/business.js +12 -1
- package/package.json +9 -2
- package/scripts/mcp-server/examples.generated.json +18 -0
- package/scripts/mcp-server/index.generated.json +223 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PreviewContent = PreviewContent;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _useSafeState5 = _interopRequireDefault(require("@1money/hooks/useSafeState"));
|
|
12
|
+
var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
|
|
13
|
+
var _Button = require("../../components/Button");
|
|
14
|
+
var _Typography = require("../../components/Typography");
|
|
15
|
+
var _Spinner = require("../../components/Spinner");
|
|
16
|
+
var _classnames = _interopRequireDefault(require("../../utils/classnames"));
|
|
17
|
+
var _ImagePreview = require("./ImagePreview");
|
|
18
|
+
var _PdfPreview = require("./PdfPreview");
|
|
19
|
+
var _SpreadsheetPreview = require("./SpreadsheetPreview");
|
|
20
|
+
var _utils = require("./utils");
|
|
21
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
22
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
23
|
+
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
24
|
+
function adopt(value) {
|
|
25
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
26
|
+
resolve(value);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
30
|
+
function fulfilled(value) {
|
|
31
|
+
try {
|
|
32
|
+
step(generator.next(value));
|
|
33
|
+
} catch (e) {
|
|
34
|
+
reject(e);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function rejected(value) {
|
|
38
|
+
try {
|
|
39
|
+
step(generator["throw"](value));
|
|
40
|
+
} catch (e) {
|
|
41
|
+
reject(e);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function step(result) {
|
|
45
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
46
|
+
}
|
|
47
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
function PreviewContent(props) {
|
|
51
|
+
var _this = this;
|
|
52
|
+
var file = props.file,
|
|
53
|
+
loadFile = props.loadFile,
|
|
54
|
+
fileName = props.fileName,
|
|
55
|
+
requestOptions = props.requestOptions,
|
|
56
|
+
prefixCls = props.prefixCls,
|
|
57
|
+
locale = props.locale,
|
|
58
|
+
_props$maxFileSize = props.maxFileSize,
|
|
59
|
+
maxFileSize = _props$maxFileSize === void 0 ? _utils.DEFAULT_MAX_FILE_SIZE : _props$maxFileSize,
|
|
60
|
+
onError = props.onError;
|
|
61
|
+
var classes = (0, _classnames["default"])(prefixCls);
|
|
62
|
+
var _useSafeState = (0, _useSafeState5["default"])(0),
|
|
63
|
+
_useSafeState2 = (0, _slicedToArray2["default"])(_useSafeState, 2),
|
|
64
|
+
attempt = _useSafeState2[0],
|
|
65
|
+
setAttempt = _useSafeState2[1];
|
|
66
|
+
var request = (0, _react.useMemo)(function () {
|
|
67
|
+
return {
|
|
68
|
+
src: file === null || file === void 0 ? void 0 : file.src,
|
|
69
|
+
name: file === null || file === void 0 ? void 0 : file.name,
|
|
70
|
+
mimeType: file === null || file === void 0 ? void 0 : file.mimeType,
|
|
71
|
+
loadFile: loadFile,
|
|
72
|
+
requestOptions: requestOptions,
|
|
73
|
+
maxFileSize: maxFileSize,
|
|
74
|
+
attempt: attempt
|
|
75
|
+
};
|
|
76
|
+
}, [file === null || file === void 0 ? void 0 : file.src, file === null || file === void 0 ? void 0 : file.name, file === null || file === void 0 ? void 0 : file.mimeType, loadFile, requestOptions, maxFileSize, attempt]);
|
|
77
|
+
var _useSafeState3 = (0, _useSafeState5["default"])(),
|
|
78
|
+
_useSafeState4 = (0, _slicedToArray2["default"])(_useSafeState3, 2),
|
|
79
|
+
result = _useSafeState4[0],
|
|
80
|
+
setResult = _useSafeState4[1];
|
|
81
|
+
var reportError = (0, _useEventCallback["default"])(function (error) {
|
|
82
|
+
return onError === null || onError === void 0 ? void 0 : onError(error);
|
|
83
|
+
});
|
|
84
|
+
(0, _react.useEffect)(function () {
|
|
85
|
+
var controller = new AbortController();
|
|
86
|
+
var run = function run() {
|
|
87
|
+
return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
|
|
88
|
+
var target, _name, kind, blob, failure, _t, _t2;
|
|
89
|
+
return _regenerator().w(function (_context) {
|
|
90
|
+
while (1) switch (_context.p = _context.n) {
|
|
91
|
+
case 0:
|
|
92
|
+
_context.p = 0;
|
|
93
|
+
if (!loadFile) {
|
|
94
|
+
_context.n = 2;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
_context.n = 1;
|
|
98
|
+
return loadFile(controller.signal);
|
|
99
|
+
case 1:
|
|
100
|
+
_t = _context.v;
|
|
101
|
+
_context.n = 3;
|
|
102
|
+
break;
|
|
103
|
+
case 2:
|
|
104
|
+
_t = request.src != null ? {
|
|
105
|
+
src: request.src,
|
|
106
|
+
name: request.name,
|
|
107
|
+
mimeType: request.mimeType
|
|
108
|
+
} : undefined;
|
|
109
|
+
case 3:
|
|
110
|
+
target = _t;
|
|
111
|
+
if (!controller.signal.aborted) {
|
|
112
|
+
_context.n = 4;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
return _context.a(2);
|
|
116
|
+
case 4:
|
|
117
|
+
if (target) {
|
|
118
|
+
_context.n = 5;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
throw new Error('No file was provided.');
|
|
122
|
+
case 5:
|
|
123
|
+
_name = (0, _utils.getFileName)(target);
|
|
124
|
+
kind = (0, _utils.getPreviewKind)(target);
|
|
125
|
+
if (!(kind === 'unsupported')) {
|
|
126
|
+
_context.n = 6;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
setResult({
|
|
130
|
+
request: request,
|
|
131
|
+
name: _name,
|
|
132
|
+
kind: kind
|
|
133
|
+
});
|
|
134
|
+
return _context.a(2);
|
|
135
|
+
case 6:
|
|
136
|
+
if (!(!Number.isFinite(maxFileSize) || maxFileSize <= 0)) {
|
|
137
|
+
_context.n = 7;
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
throw new Error('Invalid preview size limit.');
|
|
141
|
+
case 7:
|
|
142
|
+
_context.n = 8;
|
|
143
|
+
return (0, _utils.readPreviewBlob)(target, controller.signal, maxFileSize, requestOptions);
|
|
144
|
+
case 8:
|
|
145
|
+
blob = _context.v;
|
|
146
|
+
if (!(kind === 'pdf')) {
|
|
147
|
+
_context.n = 9;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
_context.n = 9;
|
|
151
|
+
return (0, _utils.validatePdfBlob)(blob);
|
|
152
|
+
case 9:
|
|
153
|
+
if (!controller.signal.aborted) setResult({
|
|
154
|
+
request: request,
|
|
155
|
+
name: _name,
|
|
156
|
+
kind: kind,
|
|
157
|
+
blob: blob
|
|
158
|
+
});
|
|
159
|
+
_context.n = 12;
|
|
160
|
+
break;
|
|
161
|
+
case 10:
|
|
162
|
+
_context.p = 10;
|
|
163
|
+
_t2 = _context.v;
|
|
164
|
+
if (!controller.signal.aborted) {
|
|
165
|
+
_context.n = 11;
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
return _context.a(2);
|
|
169
|
+
case 11:
|
|
170
|
+
failure = _t2 instanceof Error ? _t2 : new Error('Unable to preview this file.');
|
|
171
|
+
setResult({
|
|
172
|
+
request: request,
|
|
173
|
+
error: failure
|
|
174
|
+
});
|
|
175
|
+
reportError(failure);
|
|
176
|
+
case 12:
|
|
177
|
+
return _context.a(2);
|
|
178
|
+
}
|
|
179
|
+
}, _callee, null, [[0, 10]]);
|
|
180
|
+
}));
|
|
181
|
+
};
|
|
182
|
+
void run();
|
|
183
|
+
return function () {
|
|
184
|
+
return controller.abort();
|
|
185
|
+
};
|
|
186
|
+
}, [request, loadFile, maxFileSize, requestOptions, reportError, setResult]);
|
|
187
|
+
var current = (result === null || result === void 0 ? void 0 : result.request) === request ? result : undefined;
|
|
188
|
+
var name = (current === null || current === void 0 ? void 0 : current.name) || fileName || (file ? (0, _utils.getFileName)(file) : '');
|
|
189
|
+
var fail = (0, _useEventCallback["default"])(function (error) {
|
|
190
|
+
setResult(function (previous) {
|
|
191
|
+
return (previous === null || previous === void 0 ? void 0 : previous.request) === request ? Object.assign(Object.assign({}, previous), {
|
|
192
|
+
error: error
|
|
193
|
+
}) : previous;
|
|
194
|
+
});
|
|
195
|
+
reportError(error);
|
|
196
|
+
});
|
|
197
|
+
var loading = (0, _jsxRuntime.jsxs)("div", {
|
|
198
|
+
className: classes('message'),
|
|
199
|
+
role: 'status',
|
|
200
|
+
children: [(0, _jsxRuntime.jsx)(_Spinner.Spinner, {
|
|
201
|
+
size: 24
|
|
202
|
+
}), (0, _jsxRuntime.jsx)(_Typography.Typography.Body, {
|
|
203
|
+
size: "md",
|
|
204
|
+
children: locale.loading
|
|
205
|
+
})]
|
|
206
|
+
});
|
|
207
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
208
|
+
className: classes('content'),
|
|
209
|
+
children: [name && (0, _jsxRuntime.jsx)(_Typography.Typography.Body, {
|
|
210
|
+
className: classes('filename'),
|
|
211
|
+
size: 'sm',
|
|
212
|
+
color: 'default-secondary',
|
|
213
|
+
children: name
|
|
214
|
+
}), !current ? loading : current.error ? (0, _jsxRuntime.jsxs)("div", {
|
|
215
|
+
className: classes('message'),
|
|
216
|
+
role: 'alert',
|
|
217
|
+
children: [(0, _jsxRuntime.jsx)(_Typography.Typography.Body, {
|
|
218
|
+
size: "md",
|
|
219
|
+
children: locale.failed
|
|
220
|
+
}), (0, _jsxRuntime.jsx)(_Button.Button, {
|
|
221
|
+
size: 'small',
|
|
222
|
+
onClick: function onClick() {
|
|
223
|
+
return setAttempt(function (value) {
|
|
224
|
+
return value + 1;
|
|
225
|
+
});
|
|
226
|
+
},
|
|
227
|
+
children: locale.retry
|
|
228
|
+
})]
|
|
229
|
+
}) : current.kind === 'unsupported' ? (0, _jsxRuntime.jsx)("div", {
|
|
230
|
+
className: classes('message'),
|
|
231
|
+
role: 'status',
|
|
232
|
+
children: (0, _jsxRuntime.jsx)(_Typography.Typography.Body, {
|
|
233
|
+
size: "md",
|
|
234
|
+
children: locale.unsupported
|
|
235
|
+
})
|
|
236
|
+
}) : current.blob && (current.kind === 'image' ? (0, _jsxRuntime.jsx)(_ImagePreview.ImagePreview, {
|
|
237
|
+
blob: current.blob,
|
|
238
|
+
name: name || locale.preview,
|
|
239
|
+
classes: classes,
|
|
240
|
+
onError: fail,
|
|
241
|
+
loading: loading
|
|
242
|
+
}) : current.kind === 'pdf' ? (0, _jsxRuntime.jsx)(_PdfPreview.PdfPreview, {
|
|
243
|
+
blob: current.blob,
|
|
244
|
+
name: name,
|
|
245
|
+
classes: classes,
|
|
246
|
+
locale: locale,
|
|
247
|
+
loading: loading
|
|
248
|
+
}) : (0, _jsxRuntime.jsx)(_SpreadsheetPreview.SpreadsheetPreview, {
|
|
249
|
+
blob: current.blob,
|
|
250
|
+
name: name,
|
|
251
|
+
classes: classes,
|
|
252
|
+
locale: locale,
|
|
253
|
+
loading: loading,
|
|
254
|
+
onError: fail,
|
|
255
|
+
maxRows: props.maxRows,
|
|
256
|
+
maxColumns: props.maxColumns
|
|
257
|
+
}))]
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbGVQcmV2aWV3L1ByZXZpZXdDb250ZW50LmpzIiwiYnVzaW5lc3Mvc3JjL2J1c2luZXNzL0ZpbGVQcmV2aWV3L1ByZXZpZXdDb250ZW50LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlU2FmZVN0YXRlNSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9CdXR0b24iLCJfVHlwb2dyYXBoeSIsIl9TcGlubmVyIiwiX2NsYXNzbmFtZXMiLCJfSW1hZ2VQcmV2aWV3IiwiX1BkZlByZXZpZXciLCJfU3ByZWFkc2hlZXRQcmV2aWV3IiwiX3V0aWxzIiwiX3JlZ2VuZXJhdG9yIiwiZSIsInQiLCJyIiwiU3ltYm9sIiwibiIsIml0ZXJhdG9yIiwibyIsInRvU3RyaW5nVGFnIiwiaSIsImMiLCJwcm90b3R5cGUiLCJHZW5lcmF0b3IiLCJ1IiwiT2JqZWN0IiwiY3JlYXRlIiwiX3JlZ2VuZXJhdG9yRGVmaW5lMiIsImYiLCJwIiwieSIsIkciLCJ2IiwiYSIsImQiLCJiaW5kIiwibGVuZ3RoIiwibCIsIlR5cGVFcnJvciIsImNhbGwiLCJkb25lIiwidmFsdWUiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiZ2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImRpc3BsYXlOYW1lIiwidyIsIm0iLCJkZWZpbmVQcm9wZXJ0eSIsIl9yZWdlbmVyYXRvckRlZmluZSIsIl9pbnZva2UiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJyZWplY3RlZCIsInJlc3VsdCIsInRoZW4iLCJhcHBseSIsIlByZXZpZXdDb250ZW50IiwicHJvcHMiLCJfdGhpcyIsImZpbGUiLCJsb2FkRmlsZSIsImZpbGVOYW1lIiwicmVxdWVzdE9wdGlvbnMiLCJwcmVmaXhDbHMiLCJsb2NhbGUiLCJfcHJvcHMkbWF4RmlsZVNpemUiLCJtYXhGaWxlU2l6ZSIsIkRFRkFVTFRfTUFYX0ZJTEVfU0laRSIsIm9uRXJyb3IiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImF0dGVtcHQiLCJzZXRBdHRlbXB0IiwicmVxdWVzdCIsInVzZU1lbW8iLCJzcmMiLCJuYW1lIiwibWltZVR5cGUiLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic2V0UmVzdWx0IiwicmVwb3J0RXJyb3IiLCJ1c2VFdmVudENhbGxiYWNrIiwiZXJyb3IiLCJ1c2VFZmZlY3QiLCJjb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwicnVuIiwiX2NhbGxlZSIsInRhcmdldCIsIl9uYW1lIiwia2luZCIsImJsb2IiLCJmYWlsdXJlIiwiX3QiLCJfdDIiLCJfY29udGV4dCIsInNpZ25hbCIsInVuZGVmaW5lZCIsImFib3J0ZWQiLCJFcnJvciIsImdldEZpbGVOYW1lIiwiZ2V0UHJldmlld0tpbmQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsInJlYWRQcmV2aWV3QmxvYiIsInZhbGlkYXRlUGRmQmxvYiIsImFib3J0IiwiY3VycmVudCIsImZhaWwiLCJwcmV2aW91cyIsImFzc2lnbiIsImxvYWRpbmciLCJfanN4cyIsImNsYXNzTmFtZSIsInJvbGUiLCJjaGlsZHJlbiIsIl9qc3giLCJTcGlubmVyIiwic2l6ZSIsIlR5cG9ncmFwaHkiLCJCb2R5IiwiY29sb3IiLCJmYWlsZWQiLCJCdXR0b24iLCJvbkNsaWNrIiwicmV0cnkiLCJ1bnN1cHBvcnRlZCIsIkltYWdlUHJldmlldyIsInByZXZpZXciLCJQZGZQ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QUFBLEVBQUNXLDBCQUFZLEVBQUE7TUFBQ3BDLElBQUksRUFBRWdCLE9BQU8sQ0FBQ2hCLElBQUk7TUFBRWhCLElBQUksRUFBRUEsSUFBSSxJQUFJaEIsTUFBTSxDQUFDcUUsT0FBTztNQUFFaEUsT0FBTyxFQUFFQSxPQUFPO01BQUVELE9BQU8sRUFBRTZDLElBQUk7TUFBRUcsT0FBTyxFQUFFQTtJQUFPLENBQUEsQ0FBSSxHQUM5SUosT0FBTyxDQUFDakIsSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFBMEIsZUFBQSxFQUFDYSxzQkFBVSxFQUFBO01BQUN0QyxJQUFJLEVBQUVnQixPQUFPLENBQUNoQixJQUFJO01BQUVoQixJQUFJLEVBQUVBLElBQUk7TUFBRVgsT0FBTyxFQUFFQSxPQUFPO01BQUVMLE1BQU0sRUFBRUEsTUFBTTtNQUFFb0QsT0FBTyxFQUFFQTtJQUFPLENBQUEsQ0FBSSxHQUN6SCxJQUFBSyxlQUFBLEVBQUNjLHNDQUFrQixFQUFBO01BQUN2QyxJQUFJLEVBQUVnQixPQUFPLENBQUNoQixJQUFJO01BQUVoQixJQUFJLEVBQUVBLElBQUk7TUFBRVgsT0FBTyxFQUFFQSxPQUFPO01BQUVMLE1BQU0sRUFBRUEsTUFBTTtNQUFFb0QsT0FBTyxFQUFFQSxPQUFPO01BQUVoRCxPQUFPLEVBQUU2QyxJQUFJO01BQUV1QixPQUFPLEVBQUUvRSxLQUFLLENBQUMrRSxPQUFPO01BQUVDLFVBQVUsRUFBRWhGLEtBQUssQ0FBQ2dGO0lBQVUsQ0FBQSxDQUFJLENBQ3BMO0VBQUEsQ0FBQSxDQUNHO0FBRVYiLCJmaWxlIjoiYnVzaW5lc3MvRmlsZVByZXZpZXcvUHJldmlld0NvbnRlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0J1dHRvbic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1NwaW5uZXInO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBJbWFnZVByZXZpZXcgfSBmcm9tICcuL0ltYWdlUHJldmlldyc7XG5pbXBvcnQgeyBQZGZQcmV2aWV3IH0gZnJvbSAnLi9QZGZQcmV2aWV3JztcbmltcG9ydCB7IFNwcmVhZHNoZWV0UHJldmlldyB9IGZyb20gJy4vU3ByZWFkc2hlZXRQcmV2aWV3JztcbmltcG9ydCB7IERFRkFVTFRfTUFYX0ZJTEVfU0laRSwgZ2V0RmlsZU5hbWUsIGdldFByZXZpZXdLaW5kLCByZWFkUHJldmlld0Jsb2IsIHZhbGlkYXRlUGRmQmxvYiB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IGZ1bmN0aW9uIFByZXZpZXdDb250ZW50KHByb3BzKSB7XG4gICAgY29uc3QgeyBmaWxlLCBsb2FkRmlsZSwgZmlsZU5hbWUsIHJlcXVlc3RPcHRpb25zLCBwcmVmaXhDbHMsIGxvY2FsZSwgbWF4RmlsZVNpemUgPSBERUZBVUxUX01BWF9GSUxFX1NJWkUsIG9uRXJyb3IgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW2F0dGVtcHQsIHNldEF0dGVtcHRdID0gdXNlU2FmZVN0YXRlKDApO1xuICAgIGNvbnN0IHJlcXVlc3QgPSB1c2VNZW1vKCgpID0+ICh7IHNyYzogZmlsZSA9PT0gbnVsbCB8fCBmaWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWxlLnNyYywgbmFtZTogZmlsZSA9PT0gbnVsbCB8fCBmaWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWxlLm5hbWUsIG1pbWVUeXBlOiBmaWxlID09PSBudWxsIHx8IGZpbGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpbGUubWltZVR5cGUsXG4gICAgICAgIGxvYWRGaWxlLCByZXF1ZXN0T3B0aW9ucywgbWF4RmlsZVNpemUsIGF0dGVtcHQgfSksIFtmaWxlID09PSBudWxsIHx8IGZpbGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpbGUuc3JjLCBmaWxlID09PSBudWxsIHx8IGZpbGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpbGUubmFtZSwgZmlsZSA9PT0gbnVsbCB8fCBmaWxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWxlLm1pbWVUeXBlLCBsb2FkRmlsZSwgcmVxdWVzdE9wdGlvbnMsIG1heEZpbGVTaXplLCBhdHRlbXB0XSk7XG4gICAgY29uc3QgW3Jlc3VsdCwgc2V0UmVzdWx0XSA9IHVzZVNhZmVTdGF0ZSgpO1xuICAgIGNvbnN0IHJlcG9ydEVycm9yID0gdXNlRXZlbnRDYWxsYmFjaygoZXJyb3IpID0+IG9uRXJyb3IgPT09IG51bGwgfHwgb25FcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25FcnJvcihlcnJvcikpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICAgIGNvbnN0IHJ1biA9ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbG9hZEZpbGUgPyB5aWVsZCBsb2FkRmlsZShjb250cm9sbGVyLnNpZ25hbCkgOlxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnNyYyAhPSBudWxsID8geyBzcmM6IHJlcXVlc3Quc3JjLCBuYW1lOiByZXF1ZXN0Lm5hbWUsIG1pbWVUeXBlOiByZXF1ZXN0Lm1pbWVUeXBlIH0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBmaWxlIHdhcyBwcm92aWRlZC4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gZ2V0RmlsZU5hbWUodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBjb25zdCBraW5kID0gZ2V0UHJldmlld0tpbmQodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBpZiAoa2luZCA9PT0gJ3Vuc3VwcG9ydGVkJykge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoeyByZXF1ZXN0LCBuYW1lLCBraW5kIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG1heEZpbGVTaXplKSB8fCBtYXhGaWxlU2l6ZSA8PSAwKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcHJldmlldyBzaXplIGxpbWl0LicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSB5aWVsZCByZWFkUHJldmlld0Jsb2IodGFyZ2V0LCBjb250cm9sbGVyLnNpZ25hbCwgbWF4RmlsZVNpemUsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgICAgICAgICBpZiAoa2luZCA9PT0gJ3BkZicpXG4gICAgICAgICAgICAgICAgICAgIHlpZWxkIHZhbGlkYXRlUGRmQmxvYihibG9iKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpXG4gICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdCh7IHJlcXVlc3QsIG5hbWUsIGtpbmQsIGJsb2IgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbGxlci5zaWduYWwuYWJvcnRlZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhaWx1cmUgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoJ1VuYWJsZSB0byBwcmV2aWV3IHRoaXMgZmlsZS4nKTtcbiAgICAgICAgICAgICAgICBzZXRSZXN1bHQoeyByZXF1ZXN0LCBlcnJvcjogZmFpbHVyZSB9KTtcbiAgICAgICAgICAgICAgICByZXBvcnRFcnJvcihmYWlsdXJlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHZvaWQgcnVuKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiBjb250cm9sbGVyLmFib3J0KCk7XG4gICAgfSwgW3JlcXVlc3QsIGxvYWRGaWxlLCBtYXhGaWxlU2l6ZSwgcmVxdWVzdE9wdGlvbnMsIHJlcG9ydEVycm9yLCBzZXRSZXN1bHRdKTtcbiAgICBjb25zdCBjdXJyZW50ID0gKHJlc3VsdCA9PT0gbnVsbCB8fCByZXN1bHQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc3VsdC5yZXF1ZXN0KSA9PT0gcmVxdWVzdCA/IHJlc3VsdCA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBuYW1lID0gKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY3VycmVudC5uYW1lKSB8fCBmaWxlTmFtZSB8fCAoZmlsZSA/IGdldEZpbGVOYW1lKGZpbGUpIDogJycpO1xuICAgIGNvbnN0IGZhaWwgPSB1c2VFdmVudENhbGxiYWNrKChlcnJvcikgPT4ge1xuICAgICAgICBzZXRSZXN1bHQocHJldmlvdXMgPT4gKHByZXZpb3VzID09PSBudWxsIHx8IHByZXZpb3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcmV2aW91cy5yZXF1ZXN0KSA9PT0gcmVxdWVzdCA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldmlvdXMpLCB7IGVycm9yIH0pIDogcHJldmlvdXMpO1xuICAgICAgICByZXBvcnRFcnJvcihlcnJvcik7XG4gICAgfSk7XG4gICAgY29uc3QgbG9hZGluZyA9IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdtZXNzYWdlJyksIHJvbGU6ICdzdGF0dXMnLCBjaGlsZHJlbjogW19qc3goU3Bpbm5lciwgeyBzaXplOiAyNCB9KSwgX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgc2l6ZTogXCJtZFwiLCBjaGlsZHJlbjogbG9jYWxlLmxvYWRpbmcgfSldIH0pO1xuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRlbnQnKSwgY2hpbGRyZW46IFtuYW1lICYmIF9qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZmlsZW5hbWUnKSwgc2l6ZTogJ3NtJywgY29sb3I6ICdkZWZhdWx0LXNlY29uZGFyeScsIGNoaWxkcmVuOiBuYW1lIH0pLCAhY3VycmVudCA/IGxvYWRpbmcgOiBjdXJyZW50LmVycm9yID8gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdtZXNzYWdlJyksIHJvbGU6ICdhbGVydCcsIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgc2l6ZTogXCJtZFwiLCBjaGlsZHJlbjogbG9jYWxlLmZhaWxlZCB9KSwgX2pzeChCdXR0b24sIHsgc2l6ZTogJ3NtYWxsJywgb25DbGljazogKCkgPT4gc2V0QXR0ZW1wdCh2YWx1ZSA9PiB2YWx1ZSArIDEpLCBjaGlsZHJlbjogbG9jYWxlLnJldHJ5IH0pXSB9KSkgOiBjdXJyZW50LmtpbmQgPT09ICd1bnN1cHBvcnRlZCcgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScpLCByb2xlOiAnc3RhdHVzJywgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IHNpemU6IFwibWRcIiwgY2hpbGRyZW46IGxvY2FsZS51bnN1cHBvcnRlZCB9KSB9KSkgOiBjdXJyZW50LmJsb2IgJiYgKGN1cnJlbnQua2luZCA9PT0gJ2ltYWdlJyA/IF9qc3goSW1hZ2VQcmV2aWV3LCB7IGJsb2I6IGN1cnJlbnQuYmxvYiwgbmFtZTogbmFtZSB8fCBsb2NhbGUucHJldmlldywgY2xhc3NlczogY2xhc3Nlcywgb25FcnJvcjogZmFpbCwgbG9hZGluZzogbG9hZGluZyB9KSA6XG4gICAgICAgICAgICAgICAgY3VycmVudC5raW5kID09PSAncGRmJyA/IF9qc3goUGRmUHJldmlldywgeyBibG9iOiBjdXJyZW50LmJsb2IsIG5hbWU6IG5hbWUsIGNsYXNzZXM6IGNsYXNzZXMsIGxvY2FsZTogbG9jYWxlLCBsb2FkaW5nOiBsb2FkaW5nIH0pIDpcbiAgICAgICAgICAgICAgICAgICAgX2pzeChTcHJlYWRzaGVldFByZXZpZXcsIHsgYmxvYjogY3VycmVudC5ibG9iLCBuYW1lOiBuYW1lLCBjbGFzc2VzOiBjbGFzc2VzLCBsb2NhbGU6IGxvY2FsZSwgbG9hZGluZzogbG9hZGluZywgb25FcnJvcjogZmFpbCwgbWF4Um93czogcHJvcHMubWF4Um93cywgbWF4Q29sdW1uczogcHJvcHMubWF4Q29sdW1ucyB9KSldIH0pKTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { BusinessLocale } from "../../locale/interface";
|
|
3
|
+
import type classnames from "../../utils/classnames";
|
|
4
|
+
interface SpreadsheetPreviewProps {
|
|
5
|
+
blob: Blob;
|
|
6
|
+
name: string;
|
|
7
|
+
classes: ReturnType<typeof classnames>;
|
|
8
|
+
locale: BusinessLocale['FilePreview'];
|
|
9
|
+
loading: ReactNode;
|
|
10
|
+
onError: (error: Error) => void;
|
|
11
|
+
maxRows?: number;
|
|
12
|
+
maxColumns?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare function SpreadsheetPreview({ blob, name, classes, locale, loading, onError, maxRows, maxColumns }: SpreadsheetPreviewProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
15
|
+
export {};
|