@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,6 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { FilePreviewProps } from './interface';
|
|
3
|
+
import './style';
|
|
4
|
+
export declare const FilePreview: FC<FilePreviewProps>;
|
|
5
|
+
declare const _default: import("react").NamedExoticComponent<FilePreviewProps>;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { memo } from 'react';
|
|
6
|
+
import useControlledState from '@1money/hooks/useControlledState';
|
|
7
|
+
import useEventCallback from '@1money/hooks/useEventCallback';
|
|
8
|
+
import { Button } from '../../components/Button';
|
|
9
|
+
import { Dialog } from '../../components/Dialog';
|
|
10
|
+
import { Icons } from '../../components/Icons';
|
|
11
|
+
import { useLocale } from '../../components/ConfigProvider';
|
|
12
|
+
import { default as classnames, joinCls } from '../../utils/classnames';
|
|
13
|
+
import { PreviewContent } from './PreviewContent';
|
|
14
|
+
import './style';
|
|
15
|
+
export var FilePreview = function FilePreview(props) {
|
|
16
|
+
var _a;
|
|
17
|
+
var _props$prefixCls = props.prefixCls,
|
|
18
|
+
prefixCls = _props$prefixCls === void 0 ? 'file-preview' : _props$prefixCls,
|
|
19
|
+
className = props.className,
|
|
20
|
+
ref = props.ref,
|
|
21
|
+
open = props.open,
|
|
22
|
+
_props$defaultOpen = props.defaultOpen,
|
|
23
|
+
defaultOpen = _props$defaultOpen === void 0 ? false : _props$defaultOpen,
|
|
24
|
+
onOpenChange = props.onOpenChange,
|
|
25
|
+
trigger = props.trigger,
|
|
26
|
+
_props$disabled = props.disabled,
|
|
27
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
28
|
+
title = props.title,
|
|
29
|
+
width = props.width,
|
|
30
|
+
dialogProps = props.dialogProps,
|
|
31
|
+
localeOverride = props.locale;
|
|
32
|
+
var locale = Object.assign(Object.assign({}, useLocale('FilePreview')), localeOverride);
|
|
33
|
+
var _useControlledState = useControlledState(defaultOpen, open),
|
|
34
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
35
|
+
visible = _useControlledState2[0],
|
|
36
|
+
setVisible = _useControlledState2[1];
|
|
37
|
+
var classes = classnames(prefixCls);
|
|
38
|
+
var changeOpen = useEventCallback(function (next) {
|
|
39
|
+
if (next && disabled) return;
|
|
40
|
+
setVisible(next);
|
|
41
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(next);
|
|
42
|
+
});
|
|
43
|
+
var openPreview = useEventCallback(function () {
|
|
44
|
+
return changeOpen(true);
|
|
45
|
+
});
|
|
46
|
+
return _jsxs(_Fragment, {
|
|
47
|
+
children: [trigger === undefined ? _jsx(Button, {
|
|
48
|
+
type: 'button',
|
|
49
|
+
size: 'small',
|
|
50
|
+
variant: 'text',
|
|
51
|
+
color: 'grey',
|
|
52
|
+
disabled: disabled,
|
|
53
|
+
"aria-label": locale.preview,
|
|
54
|
+
"aria-haspopup": 'dialog',
|
|
55
|
+
onClick: openPreview,
|
|
56
|
+
iconStart: _jsx(Icons, {
|
|
57
|
+
name: 'viewBalance',
|
|
58
|
+
size: 16
|
|
59
|
+
})
|
|
60
|
+
}) : trigger === null || trigger === void 0 ? void 0 : trigger(openPreview), _jsx(Dialog, Object.assign({}, dialogProps, {
|
|
61
|
+
width: (_a = width !== null && width !== void 0 ? width : dialogProps === null || dialogProps === void 0 ? void 0 : dialogProps.width) !== null && _a !== void 0 ? _a : 'min(90vw, 64rem)',
|
|
62
|
+
ref: ref,
|
|
63
|
+
open: visible,
|
|
64
|
+
title: title !== null && title !== void 0 ? title : locale.preview,
|
|
65
|
+
onCancel: function onCancel() {
|
|
66
|
+
return changeOpen(false);
|
|
67
|
+
},
|
|
68
|
+
footer: null,
|
|
69
|
+
className: joinCls(classes(), className, dialogProps === null || dialogProps === void 0 ? void 0 : dialogProps.className),
|
|
70
|
+
children: visible && _jsx(PreviewContent, Object.assign({}, props, {
|
|
71
|
+
prefixCls: prefixCls,
|
|
72
|
+
locale: locale
|
|
73
|
+
}))
|
|
74
|
+
}))]
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
export default /*#__PURE__*/memo(FilePreview);
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NyYy9idXNpbmVzcy9GaWxlUHJldmlldy9GaWxlUHJldmlldy50c3giLCJidXNpbmVzcy9GaWxlUHJldmlldy9GaWxlUHJldmlldy5qcyJdLCJuYW1lcyI6WyJfc2xpY2VkVG9BcnJheSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwiQnV0dG9uIiwiRGlhbG9nIiwiSWNvbnMiLCJ1c2VMb2NhbGUiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJQcmV2aWV3Q29udGVudCIsIkZpbGVQcmV2aWV3IiwicHJvcHMiLCJfYSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyZWYiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0cmlnZ2VyIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJ0aXRsZSIsIndpZHRoIiwiZGlhbG9nUHJvcHMiLCJsb2NhbGVPdmVycmlkZSIsImxvY2FsZSIsIk9iamVjdCIsImFzc2lnbiIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwiY2xhc3NlcyIsImNoYW5nZU9wZW4iLCJuZXh0Iiwib3BlblByZXZpZXciLCJjaGlsZHJlbiIsInVuZGVmaW5lZCIsInR5cGUiLCJzaXplIiwidmFyaWFudCIsImNvbG9yIiwicHJldmlldyIsIm9uQ2xpY2siLCJpY29uU3RhcnQiLCJuYW1lIiwib25DYW5jZWwiLCJmb290ZXIiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsT0FBQUEsY0FBQTtBQ0NiLFNBQVNDLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxRQUFRLElBQUlDLFNBQVMsRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FEQ3JGLFNBQVNDLElBQUksUUFBUSxPQUFPO0FBQzVCLE9BQU9DLGtCQUFrQixNQUFNLGtDQUFrQztBQUNqRSxPQUFPQyxnQkFBZ0IsTUFBTSxnQ0FBZ0M7QUFDN0QsU0FBU0MsTUFBTSxRQUFRLHlCQUF5QjtBQUNoRCxTQUFTQyxNQUFNLFFBQVEseUJBQXlCO0FBQ2hELFNBQVNDLEtBQUssUUFBUSx3QkFBd0I7QUFDOUMsU0FBU0MsU0FBUyxRQUFRLGlDQUFpQztBQUMzRCxTQUFTQyxPQUFPLElBQUlDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUN2RSxTQUFTQyxjQUFjLFFBQVEsa0JBQWtCO0FBR2pELE9BQU8sU0FBUztBQUVoQixPQUFPLElBQU1DLFdBQVcsR0FBeUIsU0FBcENBLFdBQVdBLENBQXlCQyxLQUFLLEVBQUc7RUNGckQsSUFBSUMsRUFBRTtFREdSLElBQUFDLGdCQUFBLEdBR0lGLEtBQUssQ0FGUEcsU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsY0FBYyxHQUFBQSxnQkFBQTtJQUFFRSxTQUFTLEdBRW5DSixLQUFLLENBRnFCSSxTQUFTO0lBQUVDLEdBQUcsR0FFeENMLEtBQUssQ0FGZ0NLLEdBQUc7SUFBRUMsSUFBSSxHQUU5Q04sS0FBSyxDQUZxQ00sSUFBSTtJQUFBQyxrQkFBQSxHQUU5Q1AsS0FBSyxDQUYyQ1EsV0FBVztJQUFYQSxXQUFXLEdBQUFELGtCQUFBLGNBQUcsS0FBSyxHQUFBQSxrQkFBQTtJQUNyRUUsWUFBWSxHQUNWVCxLQUFLLENBRFBTLFlBQVk7SUFBRUMsT0FBTyxHQUNuQlYsS0FBSyxDQURPVSxPQUFPO0lBQUFDLGVBQUEsR0FDbkJYLEtBQUssQ0FEZ0JZLFFBQVE7SUFBUkEsUUFBUSxHQUFBRCxlQUFBLGNBQUcsS0FBSyxHQUFBQSxlQUFBO0lBQUVFLEtBQUssR0FDNUNiLEtBQUssQ0FEa0NhLEtBQUs7SUFBRUMsS0FBSyxHQUNuRGQsS0FBSyxDQUR5Q2MsS0FBSztJQUFFQyxXQUFXLEdBQ2hFZixLQUFLLENBRGdEZSxXQUFXO0lBQVVDLGNBQWMsR0FDeEZoQixLQUFLLENBRDZEaUIsTUFBTTtFQUU1RSxJQUFNQSxNQUFNLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxDQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBUXpCLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQSxFQUFLc0IsY0FBYyxDQUFFO0VBQ2pFLElBQUFJLG1CQUFBLEdBQThCL0Isa0JBQWtCLENBQUNtQixXQUFXLEVBQUVGLElBQUksQ0FBQztJQUFBZSxvQkFBQSxHQUFBeEMsY0FBQSxDQUFBdUMsbUJBQUE7SUFBNURFLE9BQU8sR0FBQUQsb0JBQUE7SUFBRUUsVUFBVSxHQUFBRixvQkFBQTtFQUMxQixJQUFNRyxPQUFPLEdBQUc1QixVQUFVLENBQUNPLFNBQVMsQ0FBQztFQUNyQyxJQUFNc0IsVUFBVSxHQUFHbkMsZ0JBQWdCLENBQUMsVUFBQ29DLElBQWEsRUFBSTtJQUNwRCxJQUFJQSxJQUFJLElBQUlkLFFBQVEsRUFBRTtJQUN0QlcsVUFBVSxDQUFDRyxJQUFJLENBQUM7SUFDaEJqQixZQUFZLEtBQUEsSUFBQSxJQUFaQSxZQUFZLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVpBLFlBQVksQ0FBR2lCLElBQUksQ0FBQztFQUN0QixDQUFDLENBQUM7RUFDRixJQUFNQyxXQUFXLEdBQUdyQyxnQkFBZ0IsQ0FBQztJQUFBLE9BQU1tQyxVQUFVLENBQUMsSUFBSSxDQUFDO0VBQUEsRUFBQztFQUU1RCxPQUNFdEMsS0FBQSxDQUFBRixTQUFBLEVBQUE7SUFBQTJDLFFBQUEsRUFBQSxDQUNHbEIsT0FBTyxLQUFLbUIsU0FBUyxHQUNwQjlDLElBQUEsQ0FBQ1EsTUFBTSxFQUFBO01BQUN1QyxJQUFJLEVBQUMsUUFBUTtNQUFDQyxJQUFJLEVBQUMsT0FBTztNQUFDQyxPQUFPLEVBQUMsTUFBTTtNQUFDQyxLQUFLLEVBQUMsTUFBTTtNQUFDckIsUUFBUSxFQUFFQSxRQUFRO01BQUEsWUFBQSxFQUNuRUssTUFBTSxDQUFDaUIsT0FBTztNQUFBLGVBQUEsRUFBZ0IsUUFBUTtNQUFDQyxPQUFPLEVBQUVSLFdBQVc7TUFDdkVTLFNBQVMsRUFBRXJELElBQUEsQ0FBQ1UsS0FBSyxFQUFBO1FBQUM0QyxJQUFJLEVBQUMsYUFBYTtRQUFDTixJQUFJLEVBQUU7TUFBRSxDQUFBO0lBQUksQ0FBQSxDQUFJLEdBQ3JEckIsT0FBTyxLQUFBLElBQUEsSUFBUEEsT0FBTyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFQQSxPQUFPLENBQUdpQixXQUFXLENBQUMsRUFDMUI1QyxJQUFBLENBQUNTLE1BQU0sRUFBQTBCLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLSixXQUFXLEVBQUE7TUFBRUQsS0FBSyxFQUFFLENBQUFiLEVBQUEsR0FBQWEsS0FBSyxLQUFBLElBQUEsSUFBTEEsS0FBSyxLQUFBLEtBQUEsQ0FBQSxHQUFMQSxLQUFLLEdBQUlDLFdBQVcsS0FBQSxJQUFBLElBQVhBLFdBQVcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWEEsV0FBVyxDQUFFRCxLQUFLLE1BQUEsSUFBQSxJQUFBYixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxrQkFBa0I7TUFBRUksR0FBRyxFQUFFQSxHQUFHO01BQUVDLElBQUksRUFBRWdCLE9BQU87TUFDeEdULEtBQUssRUFBRUEsS0FBSyxLQUFBLElBQUEsSUFBTEEsS0FBSyxLQUFBLEtBQUEsQ0FBQSxHQUFMQSxLQUFLLEdBQUlJLE1BQU0sQ0FBQ2lCLE9BQU87TUFBRUksUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUE7UUFBQSxPQUFRYixVQUFVLENBQUMsS0FBSyxDQUFDO01BQUE7TUFBRWMsTUFBTSxFQUFFLElBQUk7TUFDL0VuQyxTQUFTLEVBQUVQLE9BQU8sQ0FBQzJCLE9BQU8sQ0FBQSxDQUFFLEVBQUVwQixTQUFTLEVBQUVXLFdBQVcsS0FBQSxJQUFBLElBQVhBLFdBQVcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWEEsV0FBVyxDQUFFWCxTQUFTLENBQUM7TUFBQXdCLFFBQUEsRUFDL0ROLE9BQU8sSUFBSXZDLElBQUEsQ0FBQ2UsY0FBYyxFQUFBb0IsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUtuQixLQUFLLEVBQUE7UUFBRUcsU0FBUyxFQUFFQSxTQUFTO1FBQUVjLE1BQU0sRUFBRUE7TUFBTSxDQUFBLENBQUE7SUFBSSxDQUFBLENBQUEsQ0FDeEU7RUFBQSxDQUFBLENBQ1I7QUFFUCxDQUFDO0FBRUQsNEJBQWU3QixJQUFJLENBQUNXLFdBQVcsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9GaWxlUHJldmlldy9GaWxlUHJldmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRGlhbG9nJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9JY29ucyc7XG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0NvbmZpZ1Byb3ZpZGVyJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgUHJldmlld0NvbnRlbnQgfSBmcm9tICcuL1ByZXZpZXdDb250ZW50JztcbmltcG9ydCAnLi9zdHlsZSc7XG5leHBvcnQgY29uc3QgRmlsZVByZXZpZXcgPSBwcm9wcyA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzID0gJ2ZpbGUtcHJldmlldycsIGNsYXNzTmFtZSwgcmVmLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIGRpc2FibGVkID0gZmFsc2UsIHRpdGxlLCB3aWR0aCwgZGlhbG9nUHJvcHMsIGxvY2FsZTogbG9jYWxlT3ZlcnJpZGUsIH0gPSBwcm9wcztcbiAgICBjb25zdCBsb2NhbGUgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHVzZUxvY2FsZSgnRmlsZVByZXZpZXcnKSksIGxvY2FsZU92ZXJyaWRlKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4sIG9wZW4pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgY2hhbmdlT3BlbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHQpID0+IHtcbiAgICAgICAgaWYgKG5leHQgJiYgZGlzYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldFZpc2libGUobmV4dCk7XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0KTtcbiAgICB9KTtcbiAgICBjb25zdCBvcGVuUHJldmlldyA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4gY2hhbmdlT3Blbih0cnVlKSk7XG4gICAgcmV0dXJuIChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFt0cmlnZ2VyID09PSB1bmRlZmluZWQgPyAoX2pzeChCdXR0b24sIHsgdHlwZTogJ2J1dHRvbicsIHNpemU6ICdzbWFsbCcsIHZhcmlhbnQ6ICd0ZXh0JywgY29sb3I6ICdncmV5JywgZGlzYWJsZWQ6IGRpc2FibGVkLCBcImFyaWEtbGFiZWxcIjogbG9jYWxlLnByZXZpZXcsIFwiYXJpYS1oYXNwb3B1cFwiOiAnZGlhbG9nJywgb25DbGljazogb3BlblByZXZpZXcsIGljb25TdGFydDogX2pzeChJY29ucywgeyBuYW1lOiAndmlld0JhbGFuY2UnLCBzaXplOiAxNiB9KSB9KSkgOiB0cmlnZ2VyID09PSBudWxsIHx8IHRyaWdnZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRyaWdnZXIob3BlblByZXZpZXcpLCBfanN4KERpYWxvZywgT2JqZWN0LmFzc2lnbih7fSwgZGlhbG9nUHJvcHMsIHsgd2lkdGg6IChfYSA9IHdpZHRoICE9PSBudWxsICYmIHdpZHRoICE9PSB2b2lkIDAgPyB3aWR0aCA6IGRpYWxvZ1Byb3BzID09PSBudWxsIHx8IGRpYWxvZ1Byb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkaWFsb2dQcm9wcy53aWR0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ21pbig5MHZ3LCA2NHJlbSknLCByZWY6IHJlZiwgb3BlbjogdmlzaWJsZSwgdGl0bGU6IHRpdGxlICE9PSBudWxsICYmIHRpdGxlICE9PSB2b2lkIDAgPyB0aXRsZSA6IGxvY2FsZS5wcmV2aWV3LCBvbkNhbmNlbDogKCkgPT4gY2hhbmdlT3BlbihmYWxzZSksIGZvb3RlcjogbnVsbCwgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NOYW1lLCBkaWFsb2dQcm9wcyA9PT0gbnVsbCB8fCBkaWFsb2dQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGlhbG9nUHJvcHMuY2xhc3NOYW1lKSwgY2hpbGRyZW46IHZpc2libGUgJiYgX2pzeChQcmV2aWV3Q29udGVudCwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIHsgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIGxvY2FsZTogbG9jYWxlIH0pKSB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKEZpbGVQcmV2aWV3KTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type classnames from "../../utils/classnames";
|
|
3
|
+
interface ImagePreviewProps {
|
|
4
|
+
blob: Blob;
|
|
5
|
+
name: string;
|
|
6
|
+
classes: ReturnType<typeof classnames>;
|
|
7
|
+
loading: ReactNode;
|
|
8
|
+
onError: (error: Error) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function ImagePreview({ blob, name, classes, loading, onError }: ImagePreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect } from 'react';
|
|
4
|
+
import useSafeState from '@1money/hooks/useSafeState';
|
|
5
|
+
export function ImagePreview(_ref) {
|
|
6
|
+
var blob = _ref.blob,
|
|
7
|
+
name = _ref.name,
|
|
8
|
+
classes = _ref.classes,
|
|
9
|
+
loading = _ref.loading,
|
|
10
|
+
_onError = _ref.onError;
|
|
11
|
+
var _useSafeState = useSafeState(''),
|
|
12
|
+
_useSafeState2 = _slicedToArray(_useSafeState, 2),
|
|
13
|
+
url = _useSafeState2[0],
|
|
14
|
+
setUrl = _useSafeState2[1];
|
|
15
|
+
var _useSafeState3 = useSafeState(false),
|
|
16
|
+
_useSafeState4 = _slicedToArray(_useSafeState3, 2),
|
|
17
|
+
loaded = _useSafeState4[0],
|
|
18
|
+
setLoaded = _useSafeState4[1];
|
|
19
|
+
useEffect(function () {
|
|
20
|
+
var objectUrl = URL.createObjectURL(blob);
|
|
21
|
+
setUrl(objectUrl);
|
|
22
|
+
return function () {
|
|
23
|
+
return URL.revokeObjectURL(objectUrl);
|
|
24
|
+
};
|
|
25
|
+
}, [blob, setUrl]);
|
|
26
|
+
return _jsxs("div", {
|
|
27
|
+
className: classes('viewport'),
|
|
28
|
+
children: [!loaded && loading, url && _jsx("img", {
|
|
29
|
+
className: classes('image'),
|
|
30
|
+
src: url,
|
|
31
|
+
alt: name,
|
|
32
|
+
hidden: !loaded,
|
|
33
|
+
onLoad: function onLoad() {
|
|
34
|
+
return setLoaded(true);
|
|
35
|
+
},
|
|
36
|
+
onError: function onError() {
|
|
37
|
+
return _onError(new Error('Unable to decode the image.'));
|
|
38
|
+
}
|
|
39
|
+
})]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbGVQcmV2aWV3L0ltYWdlUHJldmlldy5qcyIsImJ1c2luZXNzL3NyYy9idXNpbmVzcy9GaWxlUHJldmlldy9JbWFnZVByZXZpZXcudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJ1c2VFZmZlY3QiLCJ1c2VTYWZlU3RhdGUiLCJJbWFnZVByZXZpZXciLCJfcmVmIiwiYmxvYiIsIm5hbWUiLCJjbGFzc2VzIiwibG9hZGluZyIsIm9uRXJyb3IiLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInVybCIsInNldFVybCIsIl91c2VTYWZlU3RhdGUzIiwiX3VzZVNhZmVTdGF0ZTQiLCJsb2FkZWQiLCJzZXRMb2FkZWQiLCJvYmplY3RVcmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJyZXZva2VPYmplY3RVUkwiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsInNyYyIsImFsdCIsImhpZGRlbiIsIm9uTG9hZCIsIkVycm9yIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0E5RCxTQUFTQyxTQUFTLFFBQVEsT0FBTztBQUNqQyxPQUFPQyxZQUFZLE1BQU0sNEJBQTRCO0FBWXJELE9BQU0sU0FBVUMsWUFBWUEsQ0FBQUMsSUFBQSxFQUE2RDtFQUFBLElBQTFEQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtJQUFFQyxJQUFJLEdBQUFGLElBQUEsQ0FBSkUsSUFBSTtJQUFFQyxPQUFPLEdBQUFILElBQUEsQ0FBUEcsT0FBTztJQUFFQyxPQUFPLEdBQUFKLElBQUEsQ0FBUEksT0FBTztJQUFFQyxRQUFPLEdBQUFMLElBQUEsQ0FBUEssT0FBTztFQUNsRSxJQUFBQyxhQUFBLEdBQXNCUixZQUFZLENBQUMsRUFBRSxDQUFDO0lBQUFTLGNBQUEsR0FBQUMsY0FBQSxDQUFBRixhQUFBO0lBQS9CRyxHQUFHLEdBQUFGLGNBQUE7SUFBRUcsTUFBTSxHQUFBSCxjQUFBO0VBQ2xCLElBQUFJLGNBQUEsR0FBNEJiLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFBQWMsY0FBQSxHQUFBSixjQUFBLENBQUFHLGNBQUE7SUFBeENFLE1BQU0sR0FBQUQsY0FBQTtJQUFFRSxTQUFTLEdBQUFGLGNBQUE7RUFDeEJmLFNBQVMsQ0FBQyxZQUFLO0lBQ2IsSUFBTWtCLFNBQVMsR0FBR0MsR0FBRyxDQUFDQyxlQUFlLENBQUNoQixJQUFJLENBQUM7SUFDM0NTLE1BQU0sQ0FBQ0ssU0FBUyxDQUFDO0lBQ2pCLE9BQU87TUFBQSxPQUFNQyxHQUFHLENBQUNFLGVBQWUsQ0FBQ0gsU0FBUyxDQUFDO0lBQUE7RUFDN0MsQ0FBQyxFQUFFLENBQUNkLElBQUksRUFBRVMsTUFBTSxDQUFDLENBQUM7RUFDbEIsT0FBT2QsS0FBQSxDQUFBLEtBQUEsRUFBQTtJQUFLdUIsU0FBUyxFQUFFaEIsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUFBaUIsUUFBQSxFQUFBLENBQ3ZDLENBQUNQLE1BQU0sSUFBSVQsT0FBTyxFQUNsQkssR0FBRyxJQUFJZixJQUFBLENBQUEsS0FBQSxFQUFBO01BQUt5QixTQUFTLEVBQUVoQixPQUFPLENBQUMsT0FBTyxDQUFDO01BQUVrQixHQUFHLEVBQUVaLEdBQUc7TUFBRWEsR0FBRyxFQUFFcEIsSUFBSTtNQUFFcUIsTUFBTSxFQUFFLENBQUNWLE1BQU07TUFDNUVXLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFBO1FBQUEsT0FBUVYsU0FBUyxDQUFDLElBQUksQ0FBQztNQUFBO01BQUVULE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1FBQUEsT0FBUUEsUUFBTyxDQUFDLElBQUlvQixLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztNQUFBO0lBQUEsQ0FBQSxDQUFJO0VBQUEsQ0FBQSxDQUNqRztBQUNSIiwiZmlsZSI6ImJ1c2luZXNzL0ZpbGVQcmV2aWV3L0ltYWdlUHJldmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmV4cG9ydCBmdW5jdGlvbiBJbWFnZVByZXZpZXcoeyBibG9iLCBuYW1lLCBjbGFzc2VzLCBsb2FkaW5nLCBvbkVycm9yIH0pIHtcbiAgICBjb25zdCBbdXJsLCBzZXRVcmxdID0gdXNlU2FmZVN0YXRlKCcnKTtcbiAgICBjb25zdCBbbG9hZGVkLCBzZXRMb2FkZWRdID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBvYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICBzZXRVcmwob2JqZWN0VXJsKTtcbiAgICAgICAgcmV0dXJuICgpID0+IFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTtcbiAgICB9LCBbYmxvYiwgc2V0VXJsXSk7XG4gICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd2aWV3cG9ydCcpLCBjaGlsZHJlbjogWyFsb2FkZWQgJiYgbG9hZGluZywgdXJsICYmIF9qc3goXCJpbWdcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ltYWdlJyksIHNyYzogdXJsLCBhbHQ6IG5hbWUsIGhpZGRlbjogIWxvYWRlZCwgb25Mb2FkOiAoKSA9PiBzZXRMb2FkZWQodHJ1ZSksIG9uRXJyb3I6ICgpID0+IG9uRXJyb3IobmV3IEVycm9yKCdVbmFibGUgdG8gZGVjb2RlIHRoZSBpbWFnZS4nKSkgfSldIH0pO1xufSIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { BusinessLocale } from "../../locale/interface";
|
|
3
|
+
import type classnames from "../../utils/classnames";
|
|
4
|
+
interface PdfPreviewProps {
|
|
5
|
+
blob: Blob;
|
|
6
|
+
name: string;
|
|
7
|
+
classes: ReturnType<typeof classnames>;
|
|
8
|
+
locale: BusinessLocale['FilePreview'];
|
|
9
|
+
loading: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export declare function PdfPreview({ blob, name, classes, locale, loading }: PdfPreviewProps): 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;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect } from 'react';
|
|
4
|
+
import useSafeState from '@1money/hooks/useSafeState';
|
|
5
|
+
import { Link } from '../../components/Link';
|
|
6
|
+
import { Typography } from '../../components/Typography';
|
|
7
|
+
export function PdfPreview(_ref) {
|
|
8
|
+
var blob = _ref.blob,
|
|
9
|
+
name = _ref.name,
|
|
10
|
+
classes = _ref.classes,
|
|
11
|
+
locale = _ref.locale,
|
|
12
|
+
loading = _ref.loading;
|
|
13
|
+
var _useSafeState = useSafeState(''),
|
|
14
|
+
_useSafeState2 = _slicedToArray(_useSafeState, 2),
|
|
15
|
+
url = _useSafeState2[0],
|
|
16
|
+
setUrl = _useSafeState2[1];
|
|
17
|
+
useEffect(function () {
|
|
18
|
+
// Signed URLs may return attachment headers or application/octet-stream.
|
|
19
|
+
var objectUrl = URL.createObjectURL(new Blob([blob], {
|
|
20
|
+
type: 'application/pdf'
|
|
21
|
+
}));
|
|
22
|
+
setUrl(objectUrl);
|
|
23
|
+
return function () {
|
|
24
|
+
return URL.revokeObjectURL(objectUrl);
|
|
25
|
+
};
|
|
26
|
+
}, [blob, setUrl]);
|
|
27
|
+
if (!url) return loading;
|
|
28
|
+
// Older browsers may not expose the capability flag; try their native viewer.
|
|
29
|
+
var canEmbed = navigator.pdfViewerEnabled !== false;
|
|
30
|
+
return _jsxs(_Fragment, {
|
|
31
|
+
children: [canEmbed ? _jsx("iframe", {
|
|
32
|
+
className: classes('pdf'),
|
|
33
|
+
src: url,
|
|
34
|
+
title: name || locale.preview
|
|
35
|
+
}) : _jsx("div", {
|
|
36
|
+
className: classes('message'),
|
|
37
|
+
role: 'status',
|
|
38
|
+
children: _jsx(Typography.Body, {
|
|
39
|
+
size: 'md',
|
|
40
|
+
children: locale.pdfUnavailable
|
|
41
|
+
})
|
|
42
|
+
}), _jsx(Link, {
|
|
43
|
+
href: url,
|
|
44
|
+
download: name || 'document.pdf',
|
|
45
|
+
children: locale.download
|
|
46
|
+
})]
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbGVQcmV2aWV3L1BkZlByZXZpZXcuanMiLCJidXNpbmVzcy9zcmMvYnVzaW5lc3MvRmlsZVByZXZpZXcvUGRmUHJldmlldy50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwidXNlRWZmZWN0IiwidXNlU2FmZVN0YXRlIiwiTGluayIsIlR5cG9ncmFwaHkiLCJQZGZQcmV2aWV3IiwiX3JlZiIsImJsb2IiLCJuYW1lIiwiY2xhc3NlcyIsImxvY2FsZSIsImxvYWRpbmciLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInVybCIsInNldFVybCIsIm9iamVjdFVybCIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsIkJsb2IiLCJ0eXBlIiwicmV2b2tlT2JqZWN0VVJMIiwiY2FuRW1iZWQiLCJuYXZpZ2F0b3IiLCJwZGZWaWV3ZXJFbmFibGVkIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJzcmMiLCJ0aXRsZSIsInByZXZpZXciLCJyb2xlIiwiQm9keSIsInNpemUiLCJwZGZVbmF2YWlsYWJsZSIsImhyZWYiLCJkb3dubG9hZCJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxRQUFRLElBQUlDLFNBQVMsRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQXJGLFNBQVNDLFNBQVMsUUFBUSxPQUFPO0FBQ2pDLE9BQU9DLFlBQVksTUFBTSw0QkFBNEI7QUFDckQsU0FBU0MsSUFBSSxRQUFRLHVCQUF1QjtBQUM1QyxTQUFTQyxVQUFVLFFBQVEsNkJBQTZCO0FBYXhELE9BQU0sU0FBVUMsVUFBVUEsQ0FBQUMsSUFBQSxFQUEwRDtFQUFBLElBQXZEQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtJQUFFQyxJQUFJLEdBQUFGLElBQUEsQ0FBSkUsSUFBSTtJQUFFQyxPQUFPLEdBQUFILElBQUEsQ0FBUEcsT0FBTztJQUFFQyxNQUFNLEdBQUFKLElBQUEsQ0FBTkksTUFBTTtJQUFFQyxPQUFPLEdBQUFMLElBQUEsQ0FBUEssT0FBTztFQUMvRCxJQUFBQyxhQUFBLEdBQXNCVixZQUFZLENBQUMsRUFBRSxDQUFDO0lBQUFXLGNBQUEsR0FBQUMsY0FBQSxDQUFBRixhQUFBO0lBQS9CRyxHQUFHLEdBQUFGLGNBQUE7SUFBRUcsTUFBTSxHQUFBSCxjQUFBO0VBQ2xCWixTQUFTLENBQUMsWUFBSztJQUNiO0lBQ0EsSUFBTWdCLFNBQVMsR0FBR0MsR0FBRyxDQUFDQyxlQUFlLENBQUMsSUFBSUMsSUFBSSxDQUFDLENBQUNiLElBQUksQ0FBQyxFQUFFO01BQUVjLElBQUksRUFBRTtJQUFpQixDQUFFLENBQUMsQ0FBQztJQUNwRkwsTUFBTSxDQUFDQyxTQUFTLENBQUM7SUFDakIsT0FBTztNQUFBLE9BQU1DLEdBQUcsQ0FBQ0ksZUFBZSxDQUFDTCxTQUFTLENBQUM7SUFBQTtFQUM3QyxDQUFDLEVBQUUsQ0FBQ1YsSUFBSSxFQUFFUyxNQUFNLENBQUMsQ0FBQztFQUVsQixJQUFJLENBQUNELEdBQUcsRUFBRSxPQUFPSixPQUFPO0VBQ3hCO0VBQ0EsSUFBTVksUUFBUSxHQUFHQyxTQUFTLENBQUNDLGdCQUFnQixLQUFLLEtBQUs7RUFDckQsT0FBT3pCLEtBQUEsQ0FBQUYsU0FBQSxFQUFBO0lBQUE0QixRQUFBLEVBQUEsQ0FDSkgsUUFBUSxHQUNQM0IsSUFBQSxDQUFBLFFBQUEsRUFBQTtNQUFRK0IsU0FBUyxFQUFFbEIsT0FBTyxDQUFDLEtBQUssQ0FBQztNQUFFbUIsR0FBRyxFQUFFYixHQUFHO01BQUVjLEtBQUssRUFBRXJCLElBQUksSUFBSUUsTUFBTSxDQUFDb0I7SUFBTyxDQUFBLENBQUksR0FFOUVsQyxJQUFBLENBQUEsS0FBQSxFQUFBO01BQUsrQixTQUFTLEVBQUVsQixPQUFPLENBQUMsU0FBUyxDQUFDO01BQUVzQixJQUFJLEVBQUMsUUFBUTtNQUFBTCxRQUFBLEVBQy9DOUIsSUFBQSxDQUFDUSxVQUFVLENBQUM0QixJQUFJLEVBQUE7UUFBQ0MsSUFBSSxFQUFDLElBQUk7UUFBQVAsUUFBQSxFQUFFaEIsTUFBTSxDQUFDd0I7TUFBYyxDQUFBO0lBQW1CLENBQUEsQ0FFdkUsRUFDRHRDLElBQUEsQ0FBQ08sSUFBSSxFQUFBO01BQUNnQyxJQUFJLEVBQUVwQixHQUFHO01BQUVxQixRQUFRLEVBQUU1QixJQUFJLElBQUksY0FBYztNQUFBa0IsUUFBQSxFQUFHaEIsTUFBTSxDQUFDMEI7SUFBUSxDQUFBLENBQVE7RUFBQSxDQUFBLENBQzFFO0FBQ0wiLCJmaWxlIjoiYnVzaW5lc3MvRmlsZVByZXZpZXcvUGRmUHJldmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VTYWZlU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VTYWZlU3RhdGUnO1xuaW1wb3J0IHsgTGluayB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvTGluayc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmV4cG9ydCBmdW5jdGlvbiBQZGZQcmV2aWV3KHsgYmxvYiwgbmFtZSwgY2xhc3NlcywgbG9jYWxlLCBsb2FkaW5nIH0pIHtcbiAgICBjb25zdCBbdXJsLCBzZXRVcmxdID0gdXNlU2FmZVN0YXRlKCcnKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBTaWduZWQgVVJMcyBtYXkgcmV0dXJuIGF0dGFjaG1lbnQgaGVhZGVycyBvciBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0uXG4gICAgICAgIGNvbnN0IG9iamVjdFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2Jsb2JdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pKTtcbiAgICAgICAgc2V0VXJsKG9iamVjdFVybCk7XG4gICAgICAgIHJldHVybiAoKSA9PiBVUkwucmV2b2tlT2JqZWN0VVJMKG9iamVjdFVybCk7XG4gICAgfSwgW2Jsb2IsIHNldFVybF0pO1xuICAgIGlmICghdXJsKVxuICAgICAgICByZXR1cm4gbG9hZGluZztcbiAgICAvLyBPbGRlciBicm93c2VycyBtYXkgbm90IGV4cG9zZSB0aGUgY2FwYWJpbGl0eSBmbGFnOyB0cnkgdGhlaXIgbmF0aXZlIHZpZXdlci5cbiAgICBjb25zdCBjYW5FbWJlZCA9IG5hdmlnYXRvci5wZGZWaWV3ZXJFbmFibGVkICE9PSBmYWxzZTtcbiAgICByZXR1cm4gX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbY2FuRW1iZWQgPyAoX2pzeChcImlmcmFtZVwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGRmJyksIHNyYzogdXJsLCB0aXRsZTogbmFtZSB8fCBsb2NhbGUucHJldmlldyB9KSkgOiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScpLCByb2xlOiAnc3RhdHVzJywgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IHNpemU6ICdtZCcsIGNoaWxkcmVuOiBsb2NhbGUucGRmVW5hdmFpbGFibGUgfSkgfSkpLCBfanN4KExpbmssIHsgaHJlZjogdXJsLCBkb3dubG9hZDogbmFtZSB8fCAnZG9jdW1lbnQucGRmJywgY2hpbGRyZW46IGxvY2FsZS5kb3dubG9hZCB9KV0gfSk7XG59IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FilePreviewProps } from './interface';
|
|
2
|
+
import type { BusinessLocale } from "../../locale/interface";
|
|
3
|
+
export interface PreviewContentProps extends Omit<FilePreviewProps, 'locale'> {
|
|
4
|
+
prefixCls: string;
|
|
5
|
+
locale: BusinessLocale['FilePreview'];
|
|
6
|
+
}
|
|
7
|
+
export declare function PreviewContent(props: PreviewContentProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
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 }; })(); }
|
|
3
|
+
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); }
|
|
4
|
+
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
5
|
+
function adopt(value) {
|
|
6
|
+
return value instanceof P ? value : new P(function (resolve) {
|
|
7
|
+
resolve(value);
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) {
|
|
12
|
+
try {
|
|
13
|
+
step(generator.next(value));
|
|
14
|
+
} catch (e) {
|
|
15
|
+
reject(e);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function rejected(value) {
|
|
19
|
+
try {
|
|
20
|
+
step(generator["throw"](value));
|
|
21
|
+
} catch (e) {
|
|
22
|
+
reject(e);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function step(result) {
|
|
26
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
27
|
+
}
|
|
28
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
32
|
+
import { useEffect, useMemo } from 'react';
|
|
33
|
+
import useSafeState from '@1money/hooks/useSafeState';
|
|
34
|
+
import useEventCallback from '@1money/hooks/useEventCallback';
|
|
35
|
+
import { Button } from '../../components/Button';
|
|
36
|
+
import { Typography } from '../../components/Typography';
|
|
37
|
+
import { Spinner } from '../../components/Spinner';
|
|
38
|
+
import classnames from '../../utils/classnames';
|
|
39
|
+
import { ImagePreview } from './ImagePreview';
|
|
40
|
+
import { PdfPreview } from './PdfPreview';
|
|
41
|
+
import { SpreadsheetPreview } from './SpreadsheetPreview';
|
|
42
|
+
import { DEFAULT_MAX_FILE_SIZE, getFileName, getPreviewKind, readPreviewBlob, validatePdfBlob } from './utils';
|
|
43
|
+
export function PreviewContent(props) {
|
|
44
|
+
var _this = this;
|
|
45
|
+
var file = props.file,
|
|
46
|
+
loadFile = props.loadFile,
|
|
47
|
+
fileName = props.fileName,
|
|
48
|
+
requestOptions = props.requestOptions,
|
|
49
|
+
prefixCls = props.prefixCls,
|
|
50
|
+
locale = props.locale,
|
|
51
|
+
_props$maxFileSize = props.maxFileSize,
|
|
52
|
+
maxFileSize = _props$maxFileSize === void 0 ? DEFAULT_MAX_FILE_SIZE : _props$maxFileSize,
|
|
53
|
+
onError = props.onError;
|
|
54
|
+
var classes = classnames(prefixCls);
|
|
55
|
+
var _useSafeState = useSafeState(0),
|
|
56
|
+
_useSafeState2 = _slicedToArray(_useSafeState, 2),
|
|
57
|
+
attempt = _useSafeState2[0],
|
|
58
|
+
setAttempt = _useSafeState2[1];
|
|
59
|
+
var request = useMemo(function () {
|
|
60
|
+
return {
|
|
61
|
+
src: file === null || file === void 0 ? void 0 : file.src,
|
|
62
|
+
name: file === null || file === void 0 ? void 0 : file.name,
|
|
63
|
+
mimeType: file === null || file === void 0 ? void 0 : file.mimeType,
|
|
64
|
+
loadFile: loadFile,
|
|
65
|
+
requestOptions: requestOptions,
|
|
66
|
+
maxFileSize: maxFileSize,
|
|
67
|
+
attempt: attempt
|
|
68
|
+
};
|
|
69
|
+
}, [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]);
|
|
70
|
+
var _useSafeState3 = useSafeState(),
|
|
71
|
+
_useSafeState4 = _slicedToArray(_useSafeState3, 2),
|
|
72
|
+
result = _useSafeState4[0],
|
|
73
|
+
setResult = _useSafeState4[1];
|
|
74
|
+
var reportError = useEventCallback(function (error) {
|
|
75
|
+
return onError === null || onError === void 0 ? void 0 : onError(error);
|
|
76
|
+
});
|
|
77
|
+
useEffect(function () {
|
|
78
|
+
var controller = new AbortController();
|
|
79
|
+
var run = function run() {
|
|
80
|
+
return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
|
|
81
|
+
var target, _name, kind, blob, failure, _t, _t2;
|
|
82
|
+
return _regenerator().w(function (_context) {
|
|
83
|
+
while (1) switch (_context.p = _context.n) {
|
|
84
|
+
case 0:
|
|
85
|
+
_context.p = 0;
|
|
86
|
+
if (!loadFile) {
|
|
87
|
+
_context.n = 2;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
_context.n = 1;
|
|
91
|
+
return loadFile(controller.signal);
|
|
92
|
+
case 1:
|
|
93
|
+
_t = _context.v;
|
|
94
|
+
_context.n = 3;
|
|
95
|
+
break;
|
|
96
|
+
case 2:
|
|
97
|
+
_t = request.src != null ? {
|
|
98
|
+
src: request.src,
|
|
99
|
+
name: request.name,
|
|
100
|
+
mimeType: request.mimeType
|
|
101
|
+
} : undefined;
|
|
102
|
+
case 3:
|
|
103
|
+
target = _t;
|
|
104
|
+
if (!controller.signal.aborted) {
|
|
105
|
+
_context.n = 4;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
return _context.a(2);
|
|
109
|
+
case 4:
|
|
110
|
+
if (target) {
|
|
111
|
+
_context.n = 5;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
throw new Error('No file was provided.');
|
|
115
|
+
case 5:
|
|
116
|
+
_name = getFileName(target);
|
|
117
|
+
kind = getPreviewKind(target);
|
|
118
|
+
if (!(kind === 'unsupported')) {
|
|
119
|
+
_context.n = 6;
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
setResult({
|
|
123
|
+
request: request,
|
|
124
|
+
name: _name,
|
|
125
|
+
kind: kind
|
|
126
|
+
});
|
|
127
|
+
return _context.a(2);
|
|
128
|
+
case 6:
|
|
129
|
+
if (!(!Number.isFinite(maxFileSize) || maxFileSize <= 0)) {
|
|
130
|
+
_context.n = 7;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
throw new Error('Invalid preview size limit.');
|
|
134
|
+
case 7:
|
|
135
|
+
_context.n = 8;
|
|
136
|
+
return readPreviewBlob(target, controller.signal, maxFileSize, requestOptions);
|
|
137
|
+
case 8:
|
|
138
|
+
blob = _context.v;
|
|
139
|
+
if (!(kind === 'pdf')) {
|
|
140
|
+
_context.n = 9;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
_context.n = 9;
|
|
144
|
+
return validatePdfBlob(blob);
|
|
145
|
+
case 9:
|
|
146
|
+
if (!controller.signal.aborted) setResult({
|
|
147
|
+
request: request,
|
|
148
|
+
name: _name,
|
|
149
|
+
kind: kind,
|
|
150
|
+
blob: blob
|
|
151
|
+
});
|
|
152
|
+
_context.n = 12;
|
|
153
|
+
break;
|
|
154
|
+
case 10:
|
|
155
|
+
_context.p = 10;
|
|
156
|
+
_t2 = _context.v;
|
|
157
|
+
if (!controller.signal.aborted) {
|
|
158
|
+
_context.n = 11;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
return _context.a(2);
|
|
162
|
+
case 11:
|
|
163
|
+
failure = _t2 instanceof Error ? _t2 : new Error('Unable to preview this file.');
|
|
164
|
+
setResult({
|
|
165
|
+
request: request,
|
|
166
|
+
error: failure
|
|
167
|
+
});
|
|
168
|
+
reportError(failure);
|
|
169
|
+
case 12:
|
|
170
|
+
return _context.a(2);
|
|
171
|
+
}
|
|
172
|
+
}, _callee, null, [[0, 10]]);
|
|
173
|
+
}));
|
|
174
|
+
};
|
|
175
|
+
void run();
|
|
176
|
+
return function () {
|
|
177
|
+
return controller.abort();
|
|
178
|
+
};
|
|
179
|
+
}, [request, loadFile, maxFileSize, requestOptions, reportError, setResult]);
|
|
180
|
+
var current = (result === null || result === void 0 ? void 0 : result.request) === request ? result : undefined;
|
|
181
|
+
var name = (current === null || current === void 0 ? void 0 : current.name) || fileName || (file ? getFileName(file) : '');
|
|
182
|
+
var fail = useEventCallback(function (error) {
|
|
183
|
+
setResult(function (previous) {
|
|
184
|
+
return (previous === null || previous === void 0 ? void 0 : previous.request) === request ? Object.assign(Object.assign({}, previous), {
|
|
185
|
+
error: error
|
|
186
|
+
}) : previous;
|
|
187
|
+
});
|
|
188
|
+
reportError(error);
|
|
189
|
+
});
|
|
190
|
+
var loading = _jsxs("div", {
|
|
191
|
+
className: classes('message'),
|
|
192
|
+
role: 'status',
|
|
193
|
+
children: [_jsx(Spinner, {
|
|
194
|
+
size: 24
|
|
195
|
+
}), _jsx(Typography.Body, {
|
|
196
|
+
size: "md",
|
|
197
|
+
children: locale.loading
|
|
198
|
+
})]
|
|
199
|
+
});
|
|
200
|
+
return _jsxs("div", {
|
|
201
|
+
className: classes('content'),
|
|
202
|
+
children: [name && _jsx(Typography.Body, {
|
|
203
|
+
className: classes('filename'),
|
|
204
|
+
size: 'sm',
|
|
205
|
+
color: 'default-secondary',
|
|
206
|
+
children: name
|
|
207
|
+
}), !current ? loading : current.error ? _jsxs("div", {
|
|
208
|
+
className: classes('message'),
|
|
209
|
+
role: 'alert',
|
|
210
|
+
children: [_jsx(Typography.Body, {
|
|
211
|
+
size: "md",
|
|
212
|
+
children: locale.failed
|
|
213
|
+
}), _jsx(Button, {
|
|
214
|
+
size: 'small',
|
|
215
|
+
onClick: function onClick() {
|
|
216
|
+
return setAttempt(function (value) {
|
|
217
|
+
return value + 1;
|
|
218
|
+
});
|
|
219
|
+
},
|
|
220
|
+
children: locale.retry
|
|
221
|
+
})]
|
|
222
|
+
}) : current.kind === 'unsupported' ? _jsx("div", {
|
|
223
|
+
className: classes('message'),
|
|
224
|
+
role: 'status',
|
|
225
|
+
children: _jsx(Typography.Body, {
|
|
226
|
+
size: "md",
|
|
227
|
+
children: locale.unsupported
|
|
228
|
+
})
|
|
229
|
+
}) : current.blob && (current.kind === 'image' ? _jsx(ImagePreview, {
|
|
230
|
+
blob: current.blob,
|
|
231
|
+
name: name || locale.preview,
|
|
232
|
+
classes: classes,
|
|
233
|
+
onError: fail,
|
|
234
|
+
loading: loading
|
|
235
|
+
}) : current.kind === 'pdf' ? _jsx(PdfPreview, {
|
|
236
|
+
blob: current.blob,
|
|
237
|
+
name: name,
|
|
238
|
+
classes: classes,
|
|
239
|
+
locale: locale,
|
|
240
|
+
loading: loading
|
|
241
|
+
}) : _jsx(SpreadsheetPreview, {
|
|
242
|
+
blob: current.blob,
|
|
243
|
+
name: name,
|
|
244
|
+
classes: classes,
|
|
245
|
+
locale: locale,
|
|
246
|
+
loading: loading,
|
|
247
|
+
onError: fail,
|
|
248
|
+
maxRows: props.maxRows,
|
|
249
|
+
maxColumns: props.maxColumns
|
|
250
|
+
}))]
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0ZpbGVQcmV2aWV3L1ByZXZpZXdDb250ZW50LmpzIiwiYnVzaW5lc3Mvc3JjL2J1c2luZXNzL0ZpbGVQcmV2aWV3L1ByZXZpZXdDb250ZW50LnRzeCJdLCJuYW1lcyI6WyJlIiwidCIsInIiLCJTeW1ib2wiLCJuIiwiaXRlcmF0b3IiLCJvIiwidG9TdHJpbmdUYWciLCJpIiwiYyIsInByb3RvdHlwZSIsIkdlbmVyYXRvciIsInUiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiY2FsbCIsImRvbmUiLCJ2YWx1ZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJfcmVnZW5lcmF0b3IiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwidGhlbiIsImFwcGx5IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTYWZlU3RhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwiQnV0dG9uIiwiVHlwb2dyYXBoeSIsIlNwaW5uZXIiLCJjbGFzc25hbWVzIiwiSW1hZ2VQcmV2aWV3IiwiUGRmUHJldmlldyIsIlNwcmVhZHNoZWV0UHJldmlldyIsIkRFRkFVTFRfTUFYX0ZJTEVfU0laRSIsImdldEZpbGVOYW1lIiwiZ2V0UHJldmlld0tpbmQiLCJyZWFkUHJldmlld0Jsb2IiLCJ2YWxpZGF0ZVBkZkJsb2IiLCJQcmV2aWV3Q29udGVudCIsInByb3BzIiwiX3RoaXMiLCJmaWxlIiwibG9hZEZpbGUiLCJmaWxlTmFtZSIsInJlcXVlc3RPcHRpb25zIiwicHJlZml4Q2xzIiwibG9jYWxlIiwiX3Byb3BzJG1heEZpbGVTaXplIiwibWF4RmlsZVNpemUiLCJvbkVycm9yIiwiY2xhc3NlcyIsIl91c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYXR0ZW1wdCIsInNldEF0dGVtcHQiLCJyZXF1ZXN0Iiwic3JjIiwibmFtZSIsIm1pbWVUeXBlIiwiX3VzZVNhZmVTdGF0ZTMiLCJfdXNlU2FmZVN0YXRlNCIsInNldFJlc3VsdCIsInJlcG9ydEVycm9yIiwiZXJyb3IiLCJjb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwicnVuIiwiX2NhbGxlZSIsInRhcmdldCIsIl9uYW1lIiwia2luZCIsImJsb2IiLCJmYWlsdXJlIiwiX3QiLCJfdDIiLCJfY29udGV4dCIsInNpZ25hbCIsInVuZGVmaW5lZCIsImFib3J0ZWQiLCJFcnJvciIsIk51bWJlciIsImlzRmluaXRlIiwiYWJvcnQiLCJjdXJyZW50IiwiZmFpbCIsInByZXZpb3VzIiwiYXNzaWduIiwibG9hZGluZyIsImNsYXNzTmFtZSIsInJvbGUiLCJjaGlsZHJlbiIsInNpemUiLCJCb2R5IiwiY29sb3IiLCJmYWlsZWQiLCJvbkNsaWNrIiwicmV0cnkiLCJ1bnN1cHBvcnRlZCIsInByZXZpZXciLCJtYXhSb3dzIiwibWF4Q29sdW1ucyJdLCJtYXBwaW5ncyI6IjswQkFDQSx1S0FBQUEsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLFdB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Q3lDLElBQUksRUFBRVksT0FBTyxDQUFDWixJQUFJO01BQUVkLElBQUksRUFBRUEsSUFBSTtNQUFFUixPQUFPLEVBQUVBLE9BQU87TUFBRUosTUFBTSxFQUFFQSxNQUFNO01BQUUwQyxPQUFPLEVBQUVBO0lBQU8sQ0FBQSxDQUFJLEdBQ3pIckUsSUFBQSxDQUFDYSxrQkFBa0IsRUFBQTtNQUFDd0MsSUFBSSxFQUFFWSxPQUFPLENBQUNaLElBQUk7TUFBRWQsSUFBSSxFQUFFQSxJQUFJO01BQUVSLE9BQU8sRUFBRUEsT0FBTztNQUFFSixNQUFNLEVBQUVBLE1BQU07TUFBRTBDLE9BQU8sRUFBRUEsT0FBTztNQUFFdkMsT0FBTyxFQUFFb0MsSUFBSTtNQUFFZSxPQUFPLEVBQUU3RCxLQUFLLENBQUM2RCxPQUFPO01BQUVDLFVBQVUsRUFBRTlELEtBQUssQ0FBQzhEO0lBQVUsQ0FBQSxDQUFJLENBQ3BMO0VBQUEsQ0FBQSxDQUNHO0FBRVYiLCJmaWxlIjoiYnVzaW5lc3MvRmlsZVByZXZpZXcvUHJldmlld0NvbnRlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0J1dHRvbic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1NwaW5uZXInO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBJbWFnZVByZXZpZXcgfSBmcm9tICcuL0ltYWdlUHJldmlldyc7XG5pbXBvcnQgeyBQZGZQcmV2aWV3IH0gZnJvbSAnLi9QZGZQcmV2aWV3JztcbmltcG9ydCB7IFNwcmVhZHNoZWV0UHJldmlldyB9IGZyb20gJy4vU3ByZWFkc2hlZXRQcmV2aWV3JztcbmltcG9ydCB7IERFRkFVTFRfTUFYX0ZJTEVfU0laRSwgZ2V0RmlsZU5hbWUsIGdldFByZXZpZXdLaW5kLCByZWFkUHJldmlld0Jsb2IsIHZhbGlkYXRlUGRmQmxvYiB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IGZ1bmN0aW9uIFByZXZpZXdDb250ZW50KHByb3BzKSB7XG4gICAgY29uc3QgeyBmaWxlLCBsb2FkRmlsZSwgZmlsZU5hbWUsIHJlcXVlc3RPcHRpb25zLCBwcmVmaXhDbHMsIGxvY2FsZSwgbWF4RmlsZVNpemUgPSBERUZBVUxUX01BWF9GSUxFX1NJWkUsIG9uRXJyb3IgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW2F0dGVtcHQsIHNldEF0dGVtcHRdID0gdXNlU2FmZVN0YXRlKDApO1xuICAgIGNvbnN0IHJlcXVlc3QgPSB1c2VNZW1vKCgpID0+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 {};
|