@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.
Files changed (61) hide show
  1. package/es/business/FilePreview/FilePreview.d.ts +6 -0
  2. package/es/business/FilePreview/FilePreview.js +78 -0
  3. package/es/business/FilePreview/ImagePreview.d.ts +11 -0
  4. package/es/business/FilePreview/ImagePreview.js +42 -0
  5. package/es/business/FilePreview/PdfPreview.d.ts +12 -0
  6. package/es/business/FilePreview/PdfPreview.js +49 -0
  7. package/es/business/FilePreview/PreviewContent.d.ts +7 -0
  8. package/es/business/FilePreview/PreviewContent.js +253 -0
  9. package/es/business/FilePreview/SpreadsheetPreview.d.ts +15 -0
  10. package/es/business/FilePreview/SpreadsheetPreview.js +239 -0
  11. package/es/business/FilePreview/index.d.ts +4 -0
  12. package/es/business/FilePreview/index.js +7 -0
  13. package/es/business/FilePreview/interface.d.ts +40 -0
  14. package/es/business/FilePreview/interface.js +2 -0
  15. package/es/business/FilePreview/style/FilePreview.css +106 -0
  16. package/es/business/FilePreview/style/css.js +2 -0
  17. package/es/business/FilePreview/style/index.d.ts +1 -0
  18. package/es/business/FilePreview/style/index.js +2 -0
  19. package/es/business/FilePreview/utils.d.ts +11 -0
  20. package/es/business/FilePreview/utils.js +218 -0
  21. package/es/business/index.d.ts +1 -0
  22. package/es/business/index.js +2 -1
  23. package/es/index.css +1 -1
  24. package/es/index.d.ts +2 -0
  25. package/es/index.js +2 -1
  26. package/es/locale/en_US/business.js +12 -1
  27. package/es/locale/interface.d.ts +11 -0
  28. package/es/locale/pt_BR/business.js +12 -1
  29. package/es/locale/zh_CN/business.js +12 -1
  30. package/lib/business/FilePreview/FilePreview.d.ts +6 -0
  31. package/lib/business/FilePreview/FilePreview.js +86 -0
  32. package/lib/business/FilePreview/ImagePreview.d.ts +11 -0
  33. package/lib/business/FilePreview/ImagePreview.js +49 -0
  34. package/lib/business/FilePreview/PdfPreview.d.ts +12 -0
  35. package/lib/business/FilePreview/PdfPreview.js +56 -0
  36. package/lib/business/FilePreview/PreviewContent.d.ts +7 -0
  37. package/lib/business/FilePreview/PreviewContent.js +260 -0
  38. package/lib/business/FilePreview/SpreadsheetPreview.d.ts +15 -0
  39. package/lib/business/FilePreview/SpreadsheetPreview.js +250 -0
  40. package/lib/business/FilePreview/index.d.ts +4 -0
  41. package/lib/business/FilePreview/index.js +33 -0
  42. package/lib/business/FilePreview/interface.d.ts +40 -0
  43. package/lib/business/FilePreview/interface.js +6 -0
  44. package/lib/business/FilePreview/style/FilePreview.css +106 -0
  45. package/lib/business/FilePreview/style/css.js +4 -0
  46. package/lib/business/FilePreview/style/index.d.ts +1 -0
  47. package/lib/business/FilePreview/style/index.js +4 -0
  48. package/lib/business/FilePreview/utils.d.ts +11 -0
  49. package/lib/business/FilePreview/utils.js +230 -0
  50. package/lib/business/index.d.ts +1 -0
  51. package/lib/business/index.js +13 -1
  52. package/lib/index.css +1 -1
  53. package/lib/index.d.ts +2 -0
  54. package/lib/index.js +8 -1
  55. package/lib/locale/en_US/business.js +12 -1
  56. package/lib/locale/interface.d.ts +11 -0
  57. package/lib/locale/pt_BR/business.js +12 -1
  58. package/lib/locale/zh_CN/business.js +12 -1
  59. package/package.json +9 -2
  60. package/scripts/mcp-server/examples.generated.json +18 -0
  61. 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 {};