@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,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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL3NyYy9idXNpbmVzcy9GaWxlUHJldmlldy9GaWxlUHJldmlldy50c3giLCJidXNpbmVzcy9GaWxlUHJldmlldy9GaWxlUHJldmlldy5qcyJdLCJuYW1lcyI6WyJfc2xpY2VkVG9BcnJheSIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwiQnV0dG9uIiwiRGlhbG9nIiwiSWNvbnMiLCJ1c2VMb2NhbGUiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJQcmV2aWV3Q29udGVudCIsIkZpbGVQcmV2aWV3IiwicHJvcHMiLCJfYSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJyZWYiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0cmlnZ2VyIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJ0aXRsZSIsIndpZHRoIiwiZGlhbG9nUHJvcHMiLCJsb2NhbGVPdmVycmlkZSIsImxvY2FsZSIsIk9iamVjdCIsImFzc2lnbiIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwiY2xhc3NlcyIsImNoYW5nZU9wZW4iLCJuZXh0Iiwib3BlblByZXZpZXciLCJjaGlsZHJlbiIsInVuZGVmaW5lZCIsInR5cGUiLCJzaXplIiwidmFyaWFudCIsImNvbG9yIiwicHJldmlldyIsIm9uQ2xpY2siLCJpY29uU3RhcnQiLCJuYW1lIiwib25DYW5jZWwiLCJmb290ZXIiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsT0FBQUEsY0FBQTtBQ0NiLFNBQVNDLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxRQUFRLElBQUlDLFNBQVMsRUFBRUMsSUFBSSxJ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QUFBLENBQUEsR0FBWEEsV0FBVyxDQUFFWCxTQUFTLENBQUM7TUFBQXdCLFFBQUEsRUFDL0ROLE9BQU8sSUFBSXZDLElBQUEsQ0FBQ2UsY0FBYyxFQUFBb0IsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUtuQixLQUFLLEVBQUE7UUFBRUcsU0FBUyxFQUFFQSxTQUFTO1FBQUVjLE1BQU0sRUFBRUE7TUFBTSxDQUFBLENBQUE7SUFBSSxDQUFBLENBQUEsQ0FDeEU7RUFBQSxDQUFBLENBQ1I7QUFFUCxDQUFDO0FBRUQsNEJBQWU3QixJQUFJLENBQUNXLFdBQVcsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9GaWxlUHJldmlldy9GaWxlUHJldmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvQnV0dG9uJztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRGlhbG9nJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9JY29ucyc7XG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0NvbmZpZ1Byb3ZpZGVyJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgUHJldmlld0NvbnRlbnQgfSBmcm9tICcuL1ByZXZpZXdDb250ZW50JztcbmltcG9ydCAnLi9zdHlsZSc7XG5leHBvcnQgY29uc3QgRmlsZVByZXZpZXcgPSBwcm9wcyA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzID0gJ2ZpbGUtcHJldmlldycsIGNsYXNzTmFtZSwgcmVmLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBvbk9wZW5DaGFuZ2UsIHRyaWdnZXIsIGRpc2FibGVkID0gZmFsc2UsIHRpdGxlLCB3aWR0aCwgZGlhbG9nUHJvcHMsIGxvY2FsZTogbG9jYWxlT3ZlcnJpZGUsIH0gPSBwcm9wcztcbiAgICBjb25zdCBsb2NhbGUgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHVzZUxvY2FsZSgnRmlsZVByZXZpZXcnKSksIGxvY2FsZU92ZXJyaWRlKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4sIG9wZW4pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgY2hhbmdlT3BlbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHQpID0+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 {};