@tap-payments/os-micro-frontend-shared 0.1.280 → 0.1.281

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 (30) hide show
  1. package/build/components/ColorPicker/ColorPicker.js +0 -1
  2. package/build/components/TableReports/DownloadIconButton.d.ts +6 -0
  3. package/build/components/TableReports/DownloadIconButton.js +20 -0
  4. package/build/components/TableReports/Downloads.d.ts +10 -0
  5. package/build/components/TableReports/Downloads.js +24 -0
  6. package/build/components/TableReports/RecordLoading.d.ts +1 -0
  7. package/build/components/TableReports/RecordLoading.js +6 -0
  8. package/build/components/TableReports/TableReports.d.ts +5 -0
  9. package/build/components/TableReports/TableReports.js +53 -0
  10. package/build/components/TableReports/components/DownloadButton/DownloadButton.d.ts +8 -0
  11. package/build/components/TableReports/components/DownloadButton/DownloadButton.js +16 -0
  12. package/build/components/TableReports/components/DownloadButton/index.d.ts +2 -0
  13. package/build/components/TableReports/components/DownloadButton/index.js +2 -0
  14. package/build/components/TableReports/components/DownloadButton/style.d.ts +264 -0
  15. package/build/components/TableReports/components/DownloadButton/style.js +15 -0
  16. package/build/components/TableReports/hooks/index.d.ts +1 -0
  17. package/build/components/TableReports/hooks/index.js +1 -0
  18. package/build/components/TableReports/hooks/useDownloadReport.d.ts +11 -0
  19. package/build/components/TableReports/hooks/useDownloadReport.js +58 -0
  20. package/build/components/TableReports/index.d.ts +7 -0
  21. package/build/components/TableReports/index.js +7 -0
  22. package/build/components/TableReports/style.d.ts +324 -0
  23. package/build/components/TableReports/style.js +163 -0
  24. package/build/components/TableReports/type.d.ts +32 -0
  25. package/build/components/TableReports/type.js +1 -0
  26. package/build/components/TableReports/utils.d.ts +2 -0
  27. package/build/components/TableReports/utils.js +32 -0
  28. package/build/components/index.d.ts +2 -0
  29. package/build/components/index.js +2 -0
  30. package/package.json +1 -1
@@ -15,7 +15,6 @@ const DEFAULT_OPTIONS = {
15
15
  const ColorPicker = ({ id, value = '#ffffff', onChange, onReset, sx, options = DEFAULT_OPTIONS }) => {
16
16
  const [anchorEl, setAnchorEl] = useState(null);
17
17
  const { disableAlpha = false, hideReset = false } = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options);
18
- console.log('disableAlpha', disableAlpha);
19
18
  const rootRef = useRef(null);
20
19
  const handleOpen = useCallback(() => {
21
20
  setAnchorEl(rootRef.current);
@@ -0,0 +1,6 @@
1
+ import { DownloadedReport } from './type';
2
+ export type DownloadIconButtonProps = {
3
+ onDownload?: () => Promise<DownloadedReport>;
4
+ };
5
+ declare function DownloadIconButton({ onDownload }: DownloadIconButtonProps): import("react/jsx-runtime").JSX.Element;
6
+ export default DownloadIconButton;
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CircularProgress } from '@mui/material';
3
+ import { motion } from 'framer-motion';
4
+ import { doneIcon, redVerifyIcon, reportIcon } from '../../constants/index.js';
5
+ import { CircularProgressWrapper, LoadingButton, Counting, DownloadIcon } from './style';
6
+ import { useDownloadReport } from './hooks';
7
+ function DownloadIconButton({ onDownload }) {
8
+ const { loading, error, success, handleDownloadReport } = useDownloadReport({ onDownload });
9
+ if (loading) {
10
+ return (_jsx(motion.div, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } }, { children: _jsx(LoadingButton, { children: _jsxs(CircularProgressWrapper, { children: [_jsx(Counting, { children: "1" }), _jsx(CircularProgress, {})] }) }) })));
11
+ }
12
+ if (success) {
13
+ return (_jsx(motion.div, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } }, { children: _jsx(LoadingButton, { children: _jsx(DownloadIcon, { src: doneIcon, alt: "done" }) }) })));
14
+ }
15
+ if (error) {
16
+ return (_jsx(motion.div, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } }, { children: _jsx(LoadingButton, { children: _jsx(DownloadIcon, { src: redVerifyIcon, alt: "failed" }) }) })));
17
+ }
18
+ return _jsx(DownloadIcon, { onClick: handleDownloadReport, src: reportIcon, alt: "reports" });
19
+ }
20
+ export default DownloadIconButton;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { DownloadedReport, ReportItem } from './type';
3
+ type DownloadsProps = {
4
+ reports: ReportItem[];
5
+ isLoading?: boolean;
6
+ onDownloadReport?: (reportId: string) => Promise<DownloadedReport>;
7
+ };
8
+ declare function Downloads({ reports, isLoading, onDownloadReport }: DownloadsProps): import("react/jsx-runtime").JSX.Element;
9
+ declare const _default: import("react").MemoExoticComponent<typeof Downloads>;
10
+ export default _default;
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo, useCallback } from 'react';
3
+ import dayjs from 'dayjs';
4
+ import { csvIcon } from '../../constants/index.js';
5
+ import { getRelativeTime } from '../../utils/index.js';
6
+ import DownloadIconButton from './DownloadIconButton';
7
+ import { RecordLoading } from './RecordLoading';
8
+ import { DownloadedFile, DownloadedFileInfo, DownloadedFileDetails, DownloadedFileName, DownloadedFileTime, DownloadsStyled } from './style';
9
+ import { getReportDate } from './utils';
10
+ function Downloads({ reports, isLoading = false, onDownloadReport }) {
11
+ const handleDownloadReport = useCallback((reportId) => {
12
+ if (!onDownloadReport)
13
+ return Promise.reject(new Error('No download report function provided'));
14
+ return onDownloadReport(reportId);
15
+ }, [onDownloadReport]);
16
+ const reportsList = reports.map((report) => {
17
+ const isMoreThanDayAgo = dayjs(report.created_at).isBefore(dayjs().subtract(1, 'day'));
18
+ return (_jsxs(DownloadedFile, { children: [_jsx("img", { src: csvIcon, alt: "download" }), _jsxs(DownloadedFileDetails, { children: [_jsxs(DownloadedFileInfo, { children: [_jsx(DownloadedFileName, { children: report.result_file }), _jsx(DownloadedFileTime, { children: !isMoreThanDayAgo ? getRelativeTime(new Date(report.created_at)) : getReportDate(new Date(report.created_at)) })] }), _jsx(DownloadIconButton, { onDownload: () => handleDownloadReport(report.id) })] })] }, report.id));
19
+ });
20
+ if (isLoading)
21
+ return (_jsxs(DownloadsStyled, { children: [_jsx(RecordLoading, {}), _jsx(RecordLoading, {})] }));
22
+ return _jsx(DownloadsStyled, { children: reportsList });
23
+ }
24
+ export default memo(Downloads);
@@ -0,0 +1 @@
1
+ export declare function RecordLoading(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Skeleton from '../Skeleton';
3
+ import { RecordLoadingWrapper } from './style';
4
+ export function RecordLoading() {
5
+ return (_jsxs(RecordLoadingWrapper, { children: [_jsx(Skeleton, { width: "16px", height: "16px", variant: "rectangular" }), _jsx(Skeleton, { width: "100%", variant: "text" }), _jsx(Skeleton, { width: "12px", height: "12px", variant: "circular" })] }));
6
+ }
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { TableReportsProps } from './type';
3
+ declare function TableReports(props: TableReportsProps): import("react/jsx-runtime").JSX.Element;
4
+ declare const _default: React.MemoExoticComponent<typeof TableReports>;
5
+ export default _default;
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo, useState, useCallback } from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import { motion, AnimatePresence } from 'framer-motion';
5
+ import CircularProgress from '@mui/material/CircularProgress';
6
+ import LinearProgress from '@mui/material/LinearProgress';
7
+ import Popper from '@mui/material/Popper';
8
+ import { CustomBackdrop, Tooltip } from '../index.js';
9
+ import { csvIcon, doneIcon, redVerifyIcon, reportsIconOutlined } from '../../constants/index.js';
10
+ import Downloads from './Downloads';
11
+ import { ReportsWrapper, ReportsDropdown, FileType, FileTypeName, ExportButton, LinearProgressStyled, LoadingButton, CircularProgressWrapper, Counting, OpenApp, } from './style';
12
+ function TableReports(props) {
13
+ var _a;
14
+ const { progress, reportsQueryResult, isStatusReady: isReady, isStatusFailed: isFailed, isLoading, notificationState, onOpenDropdown, onRequestReportFile, onOpenReportsApp, hideOpenReportsApp = false, onDownloadReport, } = props;
15
+ const [anchorEl, setAnchorEl] = useState(null);
16
+ const { t } = useTranslation();
17
+ const open = Boolean(anchorEl);
18
+ const { data: reportsData, isLoading: isLoadingReportsData } = reportsQueryResult;
19
+ const openDropdown = useCallback((event) => {
20
+ if (isLoading || isReady)
21
+ return;
22
+ onOpenDropdown === null || onOpenDropdown === void 0 ? void 0 : onOpenDropdown();
23
+ setAnchorEl(event.currentTarget);
24
+ }, [isLoading, isReady, onOpenDropdown]);
25
+ const onCloseDropdown = useCallback(() => {
26
+ setAnchorEl(null);
27
+ }, []);
28
+ const handleRequestReportFile = useCallback(() => {
29
+ if (!isLoading) {
30
+ onCloseDropdown();
31
+ onRequestReportFile === null || onRequestReportFile === void 0 ? void 0 : onRequestReportFile();
32
+ }
33
+ }, [isLoading, onCloseDropdown, onRequestReportFile]);
34
+ const openReportsApp = (e) => {
35
+ e.stopPropagation();
36
+ onOpenReportsApp === null || onOpenReportsApp === void 0 ? void 0 : onOpenReportsApp();
37
+ onCloseDropdown();
38
+ };
39
+ const getExportButtonContent = () => {
40
+ if (isLoading) {
41
+ return (_jsx(motion.div, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } }, { children: _jsxs(LoadingButton, { children: [_jsxs(CircularProgressWrapper, { children: [_jsx(Counting, { children: "1" }), _jsx(CircularProgress, {})] }), _jsx("span", { children: t('preparing') }), _jsx(LinearProgressStyled, { children: _jsx(LinearProgress, { variant: "determinate", value: progress }) })] }) })));
42
+ }
43
+ if (isReady) {
44
+ return (_jsx(motion.div, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } }, { children: _jsxs(LoadingButton, { children: [_jsx("img", { src: doneIcon, alt: "done" }), _jsx("span", { children: t('ready') }), _jsx(LinearProgressStyled, Object.assign({ className: "done" }, { children: _jsx(LinearProgress, { variant: "determinate", value: 100 }) }))] }) })));
45
+ }
46
+ if (isFailed) {
47
+ return (_jsx(motion.div, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } }, { children: _jsxs(LoadingButton, { children: [_jsx("img", { src: redVerifyIcon, alt: "failed" }), _jsx("span", { children: t('failed') }), _jsx(LinearProgressStyled, Object.assign({ className: "failed" }, { children: _jsx(LinearProgress, { variant: "determinate", value: 100 }) }))] }) })));
48
+ }
49
+ return _jsx("img", { src: reportsIconOutlined, alt: "reports" });
50
+ };
51
+ return (_jsxs(ReportsWrapper, Object.assign({ "data-testid": "TableReports_ReportsWrapper" }, { children: [_jsx(AnimatePresence, { children: _jsx(Tooltip, Object.assign({ title: t('reports') }, { children: _jsx(ExportButton, Object.assign({ "data-testid": "TableReports_ExportButton", onClick: openDropdown, notificationState: notificationState, open: open, loading: isLoading, ready: isReady, failed: isFailed, sx: Object.assign({}, ((isLoading || isReady || isFailed) && { borderBottom: 'none' })), initial: { width: 'auto' }, transition: { duration: 0.25 } }, { children: getExportButtonContent() })) })) }), open && _jsx(CustomBackdrop, { onClick: onCloseDropdown }), _jsx(Popper, Object.assign({ open: open, anchorEl: anchorEl, placement: "bottom-end" }, { children: _jsxs(ReportsDropdown, Object.assign({ sx: { width: 208 } }, { children: [_jsxs(FileType, Object.assign({ onClick: handleRequestReportFile }, { children: [_jsx("img", { src: csvIcon, alt: "download" }), _jsx(FileTypeName, { children: "csv" })] })), _jsx(Downloads, { reports: (_a = reportsData === null || reportsData === void 0 ? void 0 : reportsData.reports) !== null && _a !== void 0 ? _a : [], isLoading: isLoadingReportsData, onDownloadReport: onDownloadReport }), !hideOpenReportsApp && _jsx(OpenApp, Object.assign({ onClick: openReportsApp }, { children: t('openReportsApp') }))] })) }))] })));
52
+ }
53
+ export default memo(TableReports);
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { DownloadedReport } from '../../type';
3
+ type DownloadButtonProps = {
4
+ onDownload: () => Promise<DownloadedReport>;
5
+ };
6
+ declare function DownloadButton({ onDownload }: DownloadButtonProps): import("react/jsx-runtime").JSX.Element;
7
+ declare const _default: import("react").MemoExoticComponent<typeof DownloadButton>;
8
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import CircularProgress from '@mui/material/CircularProgress';
5
+ import { AnimatePresence, motion } from 'framer-motion';
6
+ import { exclamationWhiteIcon } from '../../../../constants/index.js';
7
+ import { Icon } from '../../../index.js';
8
+ import { Button } from './style';
9
+ import { useDownloadReport } from '../../hooks';
10
+ function DownloadButton({ onDownload }) {
11
+ const { loading, error, success, handleDownloadReport } = useDownloadReport({ onDownload });
12
+ const { t } = useTranslation();
13
+ const isIdle = !loading && !error && !success;
14
+ return (_jsx(Button, Object.assign({ onClick: handleDownloadReport }, { children: _jsxs(AnimatePresence, Object.assign({ mode: "wait", initial: false }, { children: [loading && (_jsx(motion.div, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, style: { display: 'flex', alignItems: 'center' } }, { children: _jsx(CircularProgress, { size: "10px", sx: { color: 'rgba(255, 255, 255, 0.62)' } }) }), "loading")), !!error && (_jsx(motion.div, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } }, { children: _jsx(Icon, { src: exclamationWhiteIcon, sx: { width: 'auto', height: 'auto' }, alt: "error" }) }), "error")), isIdle && (_jsx(motion.div, Object.assign({ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } }, { children: t('download') }), "text"))] })) })));
15
+ }
16
+ export default memo(DownloadButton);
@@ -0,0 +1,2 @@
1
+ import DownloadButton from './DownloadButton';
2
+ export default DownloadButton;
@@ -0,0 +1,2 @@
1
+ import DownloadButton from './DownloadButton';
2
+ export default DownloadButton;
@@ -0,0 +1,264 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="react" />
3
+ export declare const Button: import("@emotion/styled").StyledComponent<{
4
+ hidden?: boolean | undefined;
5
+ color?: string | undefined;
6
+ content?: string | undefined;
7
+ translate?: "yes" | "no" | undefined;
8
+ id?: string | undefined;
9
+ defaultChecked?: boolean | undefined;
10
+ defaultValue?: string | number | readonly string[] | undefined;
11
+ suppressContentEditableWarning?: boolean | undefined;
12
+ suppressHydrationWarning?: boolean | undefined;
13
+ accessKey?: string | undefined;
14
+ autoCapitalize?: (string & {}) | "none" | "off" | "on" | "sentences" | "words" | "characters" | undefined;
15
+ autoFocus?: boolean | undefined;
16
+ className?: string | undefined;
17
+ contentEditable?: "inherit" | (boolean | "false" | "true") | "plaintext-only" | undefined;
18
+ contextMenu?: string | undefined;
19
+ dir?: string | undefined;
20
+ draggable?: (boolean | "false" | "true") | undefined;
21
+ enterKeyHint?: "search" | "enter" | "done" | "go" | "next" | "previous" | "send" | undefined;
22
+ lang?: string | undefined;
23
+ nonce?: string | undefined;
24
+ slot?: string | undefined;
25
+ spellCheck?: (boolean | "false" | "true") | undefined;
26
+ tabIndex?: number | undefined;
27
+ title?: string | undefined;
28
+ radioGroup?: string | undefined;
29
+ role?: import("react").AriaRole | undefined;
30
+ about?: string | undefined;
31
+ datatype?: string | undefined;
32
+ inlist?: any;
33
+ prefix?: string | undefined;
34
+ property?: string | undefined;
35
+ rel?: string | undefined;
36
+ resource?: string | undefined;
37
+ rev?: string | undefined;
38
+ typeof?: string | undefined;
39
+ vocab?: string | undefined;
40
+ autoCorrect?: string | undefined;
41
+ autoSave?: string | undefined;
42
+ itemProp?: string | undefined;
43
+ itemScope?: boolean | undefined;
44
+ itemType?: string | undefined;
45
+ itemID?: string | undefined;
46
+ itemRef?: string | undefined;
47
+ results?: number | undefined;
48
+ security?: string | undefined;
49
+ unselectable?: "off" | "on" | undefined;
50
+ inputMode?: "none" | "text" | "email" | "search" | "numeric" | "url" | "tel" | "decimal" | undefined;
51
+ is?: string | undefined;
52
+ exportparts?: string | undefined;
53
+ part?: string | undefined;
54
+ "aria-activedescendant"?: string | undefined;
55
+ "aria-atomic"?: (boolean | "false" | "true") | undefined;
56
+ "aria-autocomplete"?: "none" | "list" | "both" | "inline" | undefined;
57
+ "aria-braillelabel"?: string | undefined;
58
+ "aria-brailleroledescription"?: string | undefined;
59
+ "aria-busy"?: (boolean | "false" | "true") | undefined;
60
+ "aria-checked"?: boolean | "false" | "true" | "mixed" | undefined;
61
+ "aria-colcount"?: number | undefined;
62
+ "aria-colindex"?: number | undefined;
63
+ "aria-colindextext"?: string | undefined;
64
+ "aria-colspan"?: number | undefined;
65
+ "aria-controls"?: string | undefined;
66
+ "aria-current"?: boolean | "page" | "date" | "false" | "true" | "time" | "step" | "location" | undefined;
67
+ "aria-describedby"?: string | undefined;
68
+ "aria-description"?: string | undefined;
69
+ "aria-details"?: string | undefined;
70
+ "aria-disabled"?: (boolean | "false" | "true") | undefined;
71
+ "aria-dropeffect"?: "none" | "copy" | "link" | "move" | "execute" | "popup" | undefined;
72
+ "aria-errormessage"?: string | undefined;
73
+ "aria-expanded"?: (boolean | "false" | "true") | undefined;
74
+ "aria-flowto"?: string | undefined;
75
+ "aria-grabbed"?: (boolean | "false" | "true") | undefined;
76
+ "aria-haspopup"?: boolean | "grid" | "false" | "true" | "dialog" | "listbox" | "menu" | "tree" | undefined;
77
+ "aria-hidden"?: (boolean | "false" | "true") | undefined;
78
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
79
+ "aria-keyshortcuts"?: string | undefined;
80
+ "aria-label"?: string | undefined;
81
+ "aria-labelledby"?: string | undefined;
82
+ "aria-level"?: number | undefined;
83
+ "aria-live"?: "off" | "assertive" | "polite" | undefined;
84
+ "aria-modal"?: (boolean | "false" | "true") | undefined;
85
+ "aria-multiline"?: (boolean | "false" | "true") | undefined;
86
+ "aria-multiselectable"?: (boolean | "false" | "true") | undefined;
87
+ "aria-orientation"?: "horizontal" | "vertical" | undefined;
88
+ "aria-owns"?: string | undefined;
89
+ "aria-placeholder"?: string | undefined;
90
+ "aria-posinset"?: number | undefined;
91
+ "aria-pressed"?: boolean | "false" | "true" | "mixed" | undefined;
92
+ "aria-readonly"?: (boolean | "false" | "true") | undefined;
93
+ "aria-relevant"?: "all" | "text" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
94
+ "aria-required"?: (boolean | "false" | "true") | undefined;
95
+ "aria-roledescription"?: string | undefined;
96
+ "aria-rowcount"?: number | undefined;
97
+ "aria-rowindex"?: number | undefined;
98
+ "aria-rowindextext"?: string | undefined;
99
+ "aria-rowspan"?: number | undefined;
100
+ "aria-selected"?: (boolean | "false" | "true") | undefined;
101
+ "aria-setsize"?: number | undefined;
102
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
103
+ "aria-valuemax"?: number | undefined;
104
+ "aria-valuemin"?: number | undefined;
105
+ "aria-valuenow"?: number | undefined;
106
+ "aria-valuetext"?: string | undefined;
107
+ dangerouslySetInnerHTML?: {
108
+ __html: string | TrustedHTML;
109
+ } | undefined;
110
+ onCopy?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
111
+ onCopyCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
112
+ onCut?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
113
+ onCutCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
114
+ onPaste?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
115
+ onPasteCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
116
+ onCompositionEnd?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
117
+ onCompositionEndCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
118
+ onCompositionStart?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
119
+ onCompositionStartCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
120
+ onCompositionUpdate?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
121
+ onCompositionUpdateCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
122
+ onFocus?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
123
+ onFocusCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
124
+ onBlur?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
125
+ onBlurCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
126
+ onChange?: import("react").FormEventHandler<HTMLDivElement> | undefined;
127
+ onChangeCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
128
+ onBeforeInput?: import("react").InputEventHandler<HTMLDivElement> | undefined;
129
+ onBeforeInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
130
+ onInput?: import("react").FormEventHandler<HTMLDivElement> | undefined;
131
+ onInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
132
+ onReset?: import("react").FormEventHandler<HTMLDivElement> | undefined;
133
+ onResetCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
134
+ onSubmit?: import("react").FormEventHandler<HTMLDivElement> | undefined;
135
+ onSubmitCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
136
+ onInvalid?: import("react").FormEventHandler<HTMLDivElement> | undefined;
137
+ onInvalidCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
138
+ onLoad?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
139
+ onLoadCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
140
+ onError?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
141
+ onErrorCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
142
+ onKeyDown?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
143
+ onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
144
+ onKeyPress?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
145
+ onKeyPressCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
146
+ onKeyUp?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
147
+ onKeyUpCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
148
+ onAbort?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
149
+ onAbortCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
150
+ onCanPlay?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
151
+ onCanPlayCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
152
+ onCanPlayThrough?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
153
+ onCanPlayThroughCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
154
+ onDurationChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
155
+ onDurationChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
156
+ onEmptied?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
157
+ onEmptiedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
158
+ onEncrypted?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
159
+ onEncryptedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
160
+ onEnded?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
161
+ onEndedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
162
+ onLoadedData?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
163
+ onLoadedDataCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
164
+ onLoadedMetadata?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
165
+ onLoadedMetadataCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
166
+ onLoadStart?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
167
+ onLoadStartCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
168
+ onPause?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
169
+ onPauseCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
170
+ onPlay?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
171
+ onPlayCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
172
+ onPlaying?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
173
+ onPlayingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
174
+ onProgress?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
175
+ onProgressCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
176
+ onRateChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
177
+ onRateChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
178
+ onSeeked?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
179
+ onSeekedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
180
+ onSeeking?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
181
+ onSeekingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
182
+ onStalled?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
183
+ onStalledCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
184
+ onSuspend?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
185
+ onSuspendCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
186
+ onTimeUpdate?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
187
+ onTimeUpdateCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
188
+ onVolumeChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
189
+ onVolumeChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
190
+ onWaiting?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
191
+ onWaitingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
192
+ onAuxClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
193
+ onAuxClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
194
+ onClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
195
+ onClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
196
+ onContextMenu?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
197
+ onContextMenuCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
198
+ onDoubleClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
199
+ onDoubleClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
200
+ onDragCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
201
+ onDragEndCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
202
+ onDragEnter?: import("react").DragEventHandler<HTMLDivElement> | undefined;
203
+ onDragEnterCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
204
+ onDragExit?: import("react").DragEventHandler<HTMLDivElement> | undefined;
205
+ onDragExitCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
206
+ onDragLeave?: import("react").DragEventHandler<HTMLDivElement> | undefined;
207
+ onDragLeaveCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
208
+ onDragOver?: import("react").DragEventHandler<HTMLDivElement> | undefined;
209
+ onDragOverCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
210
+ onDragStartCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
211
+ onDrop?: import("react").DragEventHandler<HTMLDivElement> | undefined;
212
+ onDropCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
213
+ onMouseDown?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
214
+ onMouseDownCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
215
+ onMouseEnter?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
216
+ onMouseLeave?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
217
+ onMouseMove?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
218
+ onMouseMoveCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
219
+ onMouseOut?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
220
+ onMouseOutCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
221
+ onMouseOver?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
222
+ onMouseOverCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
223
+ onMouseUp?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
224
+ onMouseUpCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
225
+ onSelect?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
226
+ onSelectCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
227
+ onTouchCancel?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
228
+ onTouchCancelCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
229
+ onTouchEnd?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
230
+ onTouchEndCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
231
+ onTouchMove?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
232
+ onTouchMoveCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
233
+ onTouchStart?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
234
+ onTouchStartCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
235
+ onPointerDown?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
236
+ onPointerDownCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
237
+ onPointerMove?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
238
+ onPointerMoveCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
239
+ onPointerUp?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
240
+ onPointerUpCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
241
+ onPointerCancel?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
242
+ onPointerCancelCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
243
+ onPointerEnter?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
244
+ onPointerLeave?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
245
+ onPointerOver?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
246
+ onPointerOverCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
247
+ onPointerOut?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
248
+ onPointerOutCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
249
+ onGotPointerCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
250
+ onGotPointerCaptureCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
251
+ onLostPointerCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
252
+ onLostPointerCaptureCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
253
+ onScroll?: import("react").UIEventHandler<HTMLDivElement> | undefined;
254
+ onScrollCapture?: import("react").UIEventHandler<HTMLDivElement> | undefined;
255
+ onWheel?: import("react").WheelEventHandler<HTMLDivElement> | undefined;
256
+ onWheelCapture?: import("react").WheelEventHandler<HTMLDivElement> | undefined;
257
+ onAnimationStartCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
258
+ onAnimationEnd?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
259
+ onAnimationEndCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
260
+ onAnimationIteration?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
261
+ onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
262
+ onTransitionEnd?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
263
+ onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
264
+ } & import("framer-motion").MotionProps & import("react").RefAttributes<HTMLDivElement> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, {}, {}>;
@@ -0,0 +1,15 @@
1
+ import { styled } from '@mui/material/styles';
2
+ import { motion } from 'framer-motion';
3
+ export const Button = styled(motion.div)(({ theme }) => ({
4
+ display: 'flex',
5
+ alignItems: 'center',
6
+ justifyContent: 'center',
7
+ cursor: 'pointer',
8
+ width: 54,
9
+ height: 18,
10
+ backgroundColor: '#1F88D0',
11
+ borderRadius: '2px',
12
+ fontSize: '8px',
13
+ fontWeight: 600,
14
+ color: theme.palette.common.white,
15
+ }));
@@ -0,0 +1 @@
1
+ export * from './useDownloadReport';
@@ -0,0 +1 @@
1
+ export * from './useDownloadReport';
@@ -0,0 +1,11 @@
1
+ import { DownloadedReport } from '../type';
2
+ type UseDownloadReportProps = {
3
+ onDownload?: () => Promise<DownloadedReport>;
4
+ };
5
+ export declare const useDownloadReport: ({ onDownload }: UseDownloadReportProps) => {
6
+ loading: boolean;
7
+ error: unknown;
8
+ success: boolean;
9
+ handleDownloadReport: () => void;
10
+ };
11
+ export {};
@@ -0,0 +1,58 @@
1
+ import { useCallback, useEffect, useReducer } from 'react';
2
+ import { generateFileNameWithExtension } from '../utils';
3
+ import { handleURLDownload } from '../../../utils/index.js';
4
+ import toast from 'react-hot-toast';
5
+ const initialState = {
6
+ loading: false,
7
+ success: false,
8
+ error: null,
9
+ };
10
+ const downloadReportReducer = (state = initialState, action) => {
11
+ switch (action.type) {
12
+ case 'RESET':
13
+ return initialState;
14
+ case 'LOADING':
15
+ return Object.assign(Object.assign({}, state), { loading: true });
16
+ case 'SUCCESS':
17
+ return Object.assign(Object.assign({}, state), { success: true });
18
+ case 'ERROR':
19
+ return Object.assign(Object.assign({}, state), { error: action.error });
20
+ default:
21
+ return state;
22
+ }
23
+ };
24
+ export const useDownloadReport = ({ onDownload }) => {
25
+ const [{ loading, error, success }, dispatch] = useReducer(downloadReportReducer, initialState);
26
+ const setLoading = useCallback(() => dispatch({ type: 'LOADING' }), []);
27
+ const setSuccess = useCallback(() => dispatch({ type: 'SUCCESS' }), []);
28
+ const setError = useCallback((err) => dispatch({ type: 'ERROR', error: err }), []);
29
+ const resetState = useCallback(() => dispatch({ type: 'RESET' }), []);
30
+ useEffect(() => {
31
+ if (success || error) {
32
+ setTimeout(() => {
33
+ resetState();
34
+ }, 3000);
35
+ }
36
+ }, [success, error, resetState]);
37
+ const handleDownloadReport = useCallback(() => {
38
+ if (!onDownload)
39
+ return;
40
+ setLoading();
41
+ onDownload()
42
+ .then((data) => {
43
+ setSuccess();
44
+ handleURLDownload(data.url, generateFileNameWithExtension(data.result_file, data.id));
45
+ })
46
+ .catch((err) => {
47
+ var _a, _b, _c;
48
+ setError(err);
49
+ toast.error(((_c = (_b = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.message) || (err === null || err === void 0 ? void 0 : err.message) || 'Failed to download report');
50
+ });
51
+ }, [onDownload, setLoading, setSuccess, setError]);
52
+ return {
53
+ loading,
54
+ error,
55
+ success,
56
+ handleDownloadReport,
57
+ };
58
+ };
@@ -0,0 +1,7 @@
1
+ import TableReports from './TableReports';
2
+ export { default as DownloadIconButton } from './DownloadIconButton';
3
+ export * from './DownloadIconButton';
4
+ export { default as DownloadButton } from './components/DownloadButton';
5
+ export * from './components/DownloadButton';
6
+ export * from './hooks';
7
+ export default TableReports;
@@ -0,0 +1,7 @@
1
+ import TableReports from './TableReports';
2
+ export { default as DownloadIconButton } from './DownloadIconButton';
3
+ export * from './DownloadIconButton';
4
+ export { default as DownloadButton } from './components/DownloadButton';
5
+ export * from './components/DownloadButton';
6
+ export * from './hooks';
7
+ export default TableReports;
@@ -0,0 +1,324 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="react" />
3
+ type ExportButtonProps = {
4
+ notificationState?: {
5
+ success: boolean;
6
+ failed: boolean;
7
+ };
8
+ open?: boolean;
9
+ loading?: boolean;
10
+ ready?: boolean;
11
+ failed?: boolean;
12
+ };
13
+ export declare const ExportButton: import("@emotion/styled").StyledComponent<{
14
+ hidden?: boolean | undefined;
15
+ color?: string | undefined;
16
+ content?: string | undefined;
17
+ translate?: "yes" | "no" | undefined;
18
+ id?: string | undefined;
19
+ defaultChecked?: boolean | undefined;
20
+ defaultValue?: string | number | readonly string[] | undefined;
21
+ suppressContentEditableWarning?: boolean | undefined;
22
+ suppressHydrationWarning?: boolean | undefined;
23
+ accessKey?: string | undefined;
24
+ autoCapitalize?: (string & {}) | "none" | "off" | "on" | "sentences" | "words" | "characters" | undefined;
25
+ autoFocus?: boolean | undefined;
26
+ className?: string | undefined;
27
+ contentEditable?: "inherit" | (boolean | "false" | "true") | "plaintext-only" | undefined;
28
+ contextMenu?: string | undefined;
29
+ dir?: string | undefined;
30
+ draggable?: (boolean | "false" | "true") | undefined;
31
+ enterKeyHint?: "search" | "enter" | "done" | "go" | "next" | "previous" | "send" | undefined;
32
+ lang?: string | undefined;
33
+ nonce?: string | undefined;
34
+ slot?: string | undefined;
35
+ spellCheck?: (boolean | "false" | "true") | undefined;
36
+ tabIndex?: number | undefined;
37
+ title?: string | undefined;
38
+ radioGroup?: string | undefined;
39
+ role?: import("react").AriaRole | undefined;
40
+ about?: string | undefined;
41
+ datatype?: string | undefined;
42
+ inlist?: any;
43
+ prefix?: string | undefined;
44
+ property?: string | undefined;
45
+ rel?: string | undefined;
46
+ resource?: string | undefined;
47
+ rev?: string | undefined;
48
+ typeof?: string | undefined;
49
+ vocab?: string | undefined;
50
+ autoCorrect?: string | undefined;
51
+ autoSave?: string | undefined;
52
+ itemProp?: string | undefined;
53
+ itemScope?: boolean | undefined;
54
+ itemType?: string | undefined;
55
+ itemID?: string | undefined;
56
+ itemRef?: string | undefined;
57
+ results?: number | undefined;
58
+ security?: string | undefined;
59
+ unselectable?: "off" | "on" | undefined;
60
+ inputMode?: "none" | "text" | "email" | "search" | "numeric" | "url" | "tel" | "decimal" | undefined;
61
+ is?: string | undefined;
62
+ exportparts?: string | undefined;
63
+ part?: string | undefined;
64
+ "aria-activedescendant"?: string | undefined;
65
+ "aria-atomic"?: (boolean | "false" | "true") | undefined;
66
+ "aria-autocomplete"?: "none" | "list" | "both" | "inline" | undefined;
67
+ "aria-braillelabel"?: string | undefined;
68
+ "aria-brailleroledescription"?: string | undefined;
69
+ "aria-busy"?: (boolean | "false" | "true") | undefined;
70
+ "aria-checked"?: boolean | "false" | "true" | "mixed" | undefined;
71
+ "aria-colcount"?: number | undefined;
72
+ "aria-colindex"?: number | undefined;
73
+ "aria-colindextext"?: string | undefined;
74
+ "aria-colspan"?: number | undefined;
75
+ "aria-controls"?: string | undefined;
76
+ "aria-current"?: boolean | "page" | "date" | "false" | "true" | "time" | "step" | "location" | undefined;
77
+ "aria-describedby"?: string | undefined;
78
+ "aria-description"?: string | undefined;
79
+ "aria-details"?: string | undefined;
80
+ "aria-disabled"?: (boolean | "false" | "true") | undefined;
81
+ "aria-dropeffect"?: "none" | "copy" | "link" | "move" | "execute" | "popup" | undefined;
82
+ "aria-errormessage"?: string | undefined;
83
+ "aria-expanded"?: (boolean | "false" | "true") | undefined;
84
+ "aria-flowto"?: string | undefined;
85
+ "aria-grabbed"?: (boolean | "false" | "true") | undefined;
86
+ "aria-haspopup"?: boolean | "grid" | "false" | "true" | "dialog" | "listbox" | "menu" | "tree" | undefined;
87
+ "aria-hidden"?: (boolean | "false" | "true") | undefined;
88
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
89
+ "aria-keyshortcuts"?: string | undefined;
90
+ "aria-label"?: string | undefined;
91
+ "aria-labelledby"?: string | undefined;
92
+ "aria-level"?: number | undefined;
93
+ "aria-live"?: "off" | "assertive" | "polite" | undefined;
94
+ "aria-modal"?: (boolean | "false" | "true") | undefined;
95
+ "aria-multiline"?: (boolean | "false" | "true") | undefined;
96
+ "aria-multiselectable"?: (boolean | "false" | "true") | undefined;
97
+ "aria-orientation"?: "horizontal" | "vertical" | undefined;
98
+ "aria-owns"?: string | undefined;
99
+ "aria-placeholder"?: string | undefined;
100
+ "aria-posinset"?: number | undefined;
101
+ "aria-pressed"?: boolean | "false" | "true" | "mixed" | undefined;
102
+ "aria-readonly"?: (boolean | "false" | "true") | undefined;
103
+ "aria-relevant"?: "all" | "text" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
104
+ "aria-required"?: (boolean | "false" | "true") | undefined;
105
+ "aria-roledescription"?: string | undefined;
106
+ "aria-rowcount"?: number | undefined;
107
+ "aria-rowindex"?: number | undefined;
108
+ "aria-rowindextext"?: string | undefined;
109
+ "aria-rowspan"?: number | undefined;
110
+ "aria-selected"?: (boolean | "false" | "true") | undefined;
111
+ "aria-setsize"?: number | undefined;
112
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
113
+ "aria-valuemax"?: number | undefined;
114
+ "aria-valuemin"?: number | undefined;
115
+ "aria-valuenow"?: number | undefined;
116
+ "aria-valuetext"?: string | undefined;
117
+ dangerouslySetInnerHTML?: {
118
+ __html: string | TrustedHTML;
119
+ } | undefined;
120
+ onCopy?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
121
+ onCopyCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
122
+ onCut?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
123
+ onCutCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
124
+ onPaste?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
125
+ onPasteCapture?: import("react").ClipboardEventHandler<HTMLDivElement> | undefined;
126
+ onCompositionEnd?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
127
+ onCompositionEndCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
128
+ onCompositionStart?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
129
+ onCompositionStartCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
130
+ onCompositionUpdate?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
131
+ onCompositionUpdateCapture?: import("react").CompositionEventHandler<HTMLDivElement> | undefined;
132
+ onFocus?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
133
+ onFocusCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
134
+ onBlur?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
135
+ onBlurCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
136
+ onChange?: import("react").FormEventHandler<HTMLDivElement> | undefined;
137
+ onChangeCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
138
+ onBeforeInput?: import("react").InputEventHandler<HTMLDivElement> | undefined;
139
+ onBeforeInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
140
+ onInput?: import("react").FormEventHandler<HTMLDivElement> | undefined;
141
+ onInputCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
142
+ onReset?: import("react").FormEventHandler<HTMLDivElement> | undefined;
143
+ onResetCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
144
+ onSubmit?: import("react").FormEventHandler<HTMLDivElement> | undefined;
145
+ onSubmitCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
146
+ onInvalid?: import("react").FormEventHandler<HTMLDivElement> | undefined;
147
+ onInvalidCapture?: import("react").FormEventHandler<HTMLDivElement> | undefined;
148
+ onLoad?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
149
+ onLoadCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
150
+ onError?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
151
+ onErrorCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
152
+ onKeyDown?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
153
+ onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
154
+ onKeyPress?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
155
+ onKeyPressCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
156
+ onKeyUp?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
157
+ onKeyUpCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
158
+ onAbort?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
159
+ onAbortCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
160
+ onCanPlay?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
161
+ onCanPlayCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
162
+ onCanPlayThrough?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
163
+ onCanPlayThroughCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
164
+ onDurationChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
165
+ onDurationChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
166
+ onEmptied?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
167
+ onEmptiedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
168
+ onEncrypted?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
169
+ onEncryptedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
170
+ onEnded?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
171
+ onEndedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
172
+ onLoadedData?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
173
+ onLoadedDataCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
174
+ onLoadedMetadata?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
175
+ onLoadedMetadataCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
176
+ onLoadStart?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
177
+ onLoadStartCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
178
+ onPause?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
179
+ onPauseCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
180
+ onPlay?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
181
+ onPlayCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
182
+ onPlaying?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
183
+ onPlayingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
184
+ onProgress?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
185
+ onProgressCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
186
+ onRateChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
187
+ onRateChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
188
+ onSeeked?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
189
+ onSeekedCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
190
+ onSeeking?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
191
+ onSeekingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
192
+ onStalled?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
193
+ onStalledCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
194
+ onSuspend?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
195
+ onSuspendCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
196
+ onTimeUpdate?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
197
+ onTimeUpdateCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
198
+ onVolumeChange?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
199
+ onVolumeChangeCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
200
+ onWaiting?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
201
+ onWaitingCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
202
+ onAuxClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
203
+ onAuxClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
204
+ onClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
205
+ onClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
206
+ onContextMenu?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
207
+ onContextMenuCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
208
+ onDoubleClick?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
209
+ onDoubleClickCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
210
+ onDragCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
211
+ onDragEndCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
212
+ onDragEnter?: import("react").DragEventHandler<HTMLDivElement> | undefined;
213
+ onDragEnterCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
214
+ onDragExit?: import("react").DragEventHandler<HTMLDivElement> | undefined;
215
+ onDragExitCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
216
+ onDragLeave?: import("react").DragEventHandler<HTMLDivElement> | undefined;
217
+ onDragLeaveCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
218
+ onDragOver?: import("react").DragEventHandler<HTMLDivElement> | undefined;
219
+ onDragOverCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
220
+ onDragStartCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
221
+ onDrop?: import("react").DragEventHandler<HTMLDivElement> | undefined;
222
+ onDropCapture?: import("react").DragEventHandler<HTMLDivElement> | undefined;
223
+ onMouseDown?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
224
+ onMouseDownCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
225
+ onMouseEnter?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
226
+ onMouseLeave?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
227
+ onMouseMove?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
228
+ onMouseMoveCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
229
+ onMouseOut?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
230
+ onMouseOutCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
231
+ onMouseOver?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
232
+ onMouseOverCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
233
+ onMouseUp?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
234
+ onMouseUpCapture?: import("react").MouseEventHandler<HTMLDivElement> | undefined;
235
+ onSelect?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
236
+ onSelectCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
237
+ onTouchCancel?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
238
+ onTouchCancelCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
239
+ onTouchEnd?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
240
+ onTouchEndCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
241
+ onTouchMove?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
242
+ onTouchMoveCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
243
+ onTouchStart?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
244
+ onTouchStartCapture?: import("react").TouchEventHandler<HTMLDivElement> | undefined;
245
+ onPointerDown?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
246
+ onPointerDownCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
247
+ onPointerMove?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
248
+ onPointerMoveCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
249
+ onPointerUp?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
250
+ onPointerUpCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
251
+ onPointerCancel?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
252
+ onPointerCancelCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
253
+ onPointerEnter?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
254
+ onPointerLeave?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
255
+ onPointerOver?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
256
+ onPointerOverCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
257
+ onPointerOut?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
258
+ onPointerOutCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
259
+ onGotPointerCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
260
+ onGotPointerCaptureCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
261
+ onLostPointerCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
262
+ onLostPointerCaptureCapture?: import("react").PointerEventHandler<HTMLDivElement> | undefined;
263
+ onScroll?: import("react").UIEventHandler<HTMLDivElement> | undefined;
264
+ onScrollCapture?: import("react").UIEventHandler<HTMLDivElement> | undefined;
265
+ onWheel?: import("react").WheelEventHandler<HTMLDivElement> | undefined;
266
+ onWheelCapture?: import("react").WheelEventHandler<HTMLDivElement> | undefined;
267
+ onAnimationStartCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
268
+ onAnimationEnd?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
269
+ onAnimationEndCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
270
+ onAnimationIteration?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
271
+ onAnimationIterationCapture?: import("react").AnimationEventHandler<HTMLDivElement> | undefined;
272
+ onTransitionEnd?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
273
+ onTransitionEndCapture?: import("react").TransitionEventHandler<HTMLDivElement> | undefined;
274
+ } & import("framer-motion").MotionProps & import("react").RefAttributes<HTMLDivElement> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & ExportButtonProps, {}, {}>;
275
+ export declare const ReportsWrapper: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
276
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
277
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
278
+ export declare const ReportsDropdown: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
279
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
280
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
281
+ export declare const OpenApp: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
282
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
283
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
284
+ export declare const DownloadedFile: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
285
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
286
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
287
+ export declare const DownloadedFileInfo: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
288
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
289
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
290
+ export declare const DownloadedFileDetails: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
291
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
292
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
293
+ export declare const DownloadedFileName: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
294
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
295
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
296
+ export declare const DownloadedFileTime: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
297
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
298
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
299
+ export declare const FileType: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
300
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
301
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
302
+ export declare const FileTypeName: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
303
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
304
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
305
+ export declare const DownloadsStyled: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
306
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
307
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
308
+ export declare const LinearProgressStyled: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
309
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
310
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
311
+ export declare const LoadingButton: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
312
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
313
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
314
+ export declare const CircularProgressWrapper: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
315
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
316
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
317
+ export declare const Counting: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
318
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
319
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
320
+ export declare const DownloadIcon: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
321
+ export declare const RecordLoadingWrapper: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
322
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
323
+ }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
324
+ export {};
@@ -0,0 +1,163 @@
1
+ import { styled, Box, alpha } from '@mui/material';
2
+ import { motion } from 'framer-motion';
3
+ export const ExportButton = styled(motion.div, {
4
+ shouldForwardProp: (props) => props !== 'notificationState' && props !== 'open' && props !== 'loading' && props !== 'ready',
5
+ })(({ theme, notificationState, open, loading, ready, failed }) => (Object.assign(Object.assign({ position: 'relative', border: `1px solid ${theme.palette.divider}`, padding: '0 8px', height: 32, borderRadius: '4px', display: 'flex', alignItems: 'center', overflow: 'hidden', fontSize: '11px', fontWeight: 500, color: theme.palette.text.primary, transition: 'width 2s ease-in-out', cursor: 'pointer' }, (((notificationState === null || notificationState === void 0 ? void 0 : notificationState.success) || (notificationState === null || notificationState === void 0 ? void 0 : notificationState.failed)) &&
6
+ !loading &&
7
+ !ready &&
8
+ !failed && {
9
+ '&:after': {
10
+ content: '""',
11
+ width: 7,
12
+ height: 7,
13
+ backgroundColor: (notificationState === null || notificationState === void 0 ? void 0 : notificationState.failed) ? theme.palette.common.red : theme.palette.success.dark,
14
+ borderRadius: '50%',
15
+ position: 'absolute',
16
+ top: 5,
17
+ border: `1px solid ${theme.palette.common.white}`,
18
+ right: 6,
19
+ },
20
+ })), (open && {
21
+ border: `1px solid ${theme.palette.info.dark}`,
22
+ boxShadow: theme.shadows[7],
23
+ }))));
24
+ export const ReportsWrapper = styled(Box)(() => ({
25
+ position: 'relative',
26
+ }));
27
+ export const ReportsDropdown = styled(Box)(({ theme }) => ({
28
+ background: theme.palette.common.white,
29
+ boxShadow: theme.shadows[9],
30
+ borderRadius: '4px',
31
+ marginTop: '8px',
32
+ }));
33
+ export const OpenApp = styled(Box)(({ theme }) => ({
34
+ background: theme.palette.background.transparent[2],
35
+ backdropFilter: 'blur(2px)',
36
+ color: theme.palette.text.primary,
37
+ fontSize: '11px',
38
+ fontWeight: 500,
39
+ height: 31,
40
+ textAlign: 'center',
41
+ display: 'flex',
42
+ alignItems: 'center',
43
+ justifyContent: 'center',
44
+ cursor: 'pointer',
45
+ overflow: 'hidden',
46
+ borderBottomLeftRadius: '4px',
47
+ borderBottomRightRadius: '4px',
48
+ }));
49
+ export const DownloadedFile = styled(Box)(({ theme }) => ({
50
+ display: 'flex',
51
+ alignItems: 'center',
52
+ gap: '8px',
53
+ padding: '5.5px 8px',
54
+ minHeight: 48,
55
+ height: 'auto',
56
+ borderBottom: `1px solid ${theme.palette.divider}`,
57
+ cursor: 'pointer',
58
+ '&:hover': {
59
+ boxShadow: theme.shadows[3],
60
+ },
61
+ }));
62
+ export const DownloadedFileInfo = styled(Box)(() => ({
63
+ display: 'flex',
64
+ flexDirection: 'column',
65
+ gap: '2px',
66
+ }));
67
+ export const DownloadedFileDetails = styled(Box)(() => ({
68
+ display: 'flex',
69
+ alignItems: 'center',
70
+ justifyContent: 'space-between',
71
+ flex: 1,
72
+ }));
73
+ export const DownloadedFileName = styled(Box)(({ theme }) => ({
74
+ fontSize: '11px',
75
+ color: theme.palette.text.primary,
76
+ fontWeight: 500,
77
+ wordBreak: 'break-all',
78
+ paddingInlineEnd: '8px',
79
+ }));
80
+ export const DownloadedFileTime = styled(Box)(({ theme }) => ({
81
+ fontSize: '9px',
82
+ color: theme.palette.text.textSecondary,
83
+ fontWeight: 600,
84
+ }));
85
+ export const FileType = styled(Box)(({ theme }) => ({
86
+ display: 'flex',
87
+ alignItems: 'center',
88
+ gap: '8px',
89
+ height: 32,
90
+ padding: '4px 8px',
91
+ borderBottom: `1px solid ${theme.palette.divider}`,
92
+ cursor: 'pointer',
93
+ '&:hover': {
94
+ boxShadow: theme.shadows[3],
95
+ },
96
+ }));
97
+ export const FileTypeName = styled(Box)(({ theme }) => ({
98
+ fontSize: '11px',
99
+ color: theme.palette.text.primary,
100
+ fontWeight: 400,
101
+ textTransform: 'uppercase',
102
+ }));
103
+ export const DownloadsStyled = styled(Box)(({ theme }) => ({
104
+ borderTop: `2px solid ${theme.palette.divider}`,
105
+ }));
106
+ export const LinearProgressStyled = styled(Box)(({ theme }) => ({
107
+ position: 'absolute',
108
+ bottom: 0,
109
+ right: 0,
110
+ left: 0,
111
+ '.MuiLinearProgress-root': {
112
+ backgroundColor: theme.palette.divider,
113
+ height: 2,
114
+ },
115
+ '.MuiLinearProgress-bar': {
116
+ background: theme.palette.background.gradient.shadedBlue,
117
+ },
118
+ '&.done .MuiLinearProgress-bar': {
119
+ background: theme.palette.success.dark,
120
+ },
121
+ '&.failed .MuiLinearProgress-bar': {
122
+ background: theme.palette.common.red,
123
+ },
124
+ }));
125
+ export const LoadingButton = styled(Box)(({ theme }) => ({
126
+ display: 'flex',
127
+ alignItems: 'center',
128
+ gap: '8px',
129
+ '.MuiCircularProgress-root': {
130
+ width: '14px !important',
131
+ height: '14px !important',
132
+ display: 'flex',
133
+ },
134
+ '.MuiCircularProgress-circle': {
135
+ strokeWidth: '1.017px',
136
+ stroke: alpha(theme.palette.common.black, 0.62),
137
+ },
138
+ }));
139
+ export const CircularProgressWrapper = styled(Box)(() => ({
140
+ position: 'relative',
141
+ }));
142
+ export const Counting = styled(Box)(({ theme }) => ({
143
+ position: 'absolute',
144
+ color: theme.palette.common.black,
145
+ fontSize: '7.875px',
146
+ fontWeight: 700,
147
+ width: 14,
148
+ height: 14,
149
+ display: 'flex',
150
+ alignItems: 'center',
151
+ justifyContent: 'center',
152
+ }));
153
+ export const DownloadIcon = styled('img')(() => ({
154
+ width: 14,
155
+ height: 14,
156
+ }));
157
+ export const RecordLoadingWrapper = styled(Box)(() => ({
158
+ display: 'flex',
159
+ flexDirection: 'row',
160
+ alignItems: 'center',
161
+ gap: '8px',
162
+ padding: '8px',
163
+ }));
@@ -0,0 +1,32 @@
1
+ export type ReportItem = {
2
+ id: string;
3
+ result_file: string;
4
+ created_at: number;
5
+ };
6
+ export type DownloadedReport = {
7
+ id: string;
8
+ url: string;
9
+ result_file: string;
10
+ created_at: number;
11
+ };
12
+ export interface TableReportsProps {
13
+ progress: number;
14
+ reportsQueryResult: {
15
+ data?: {
16
+ reports?: ReportItem[];
17
+ };
18
+ isLoading?: boolean;
19
+ };
20
+ isStatusReady?: boolean;
21
+ isStatusFailed?: boolean;
22
+ isLoading?: boolean;
23
+ notificationState?: {
24
+ success: boolean;
25
+ failed: boolean;
26
+ };
27
+ onRequestReportFile?: () => Promise<unknown>;
28
+ onOpenDropdown?: () => void;
29
+ onOpenReportsApp?: () => void;
30
+ hideOpenReportsApp?: boolean;
31
+ onDownloadReport?: (reportId: string) => Promise<DownloadedReport>;
32
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare const getReportDate: (date: Date) => string;
2
+ export declare const generateFileNameWithExtension: (fileName: string, newName?: string) => string;
@@ -0,0 +1,32 @@
1
+ import dayjs from 'dayjs';
2
+ export const getReportDate = (date) => {
3
+ const todayDate = new Date();
4
+ const isCurrentYear = dayjs(date).isSame(todayDate, 'year');
5
+ let format = {
6
+ sameDay: 'DD MMM, YYYY',
7
+ nextDay: 'DD MMM, YYYY',
8
+ lastDay: 'DD MMM, YYYY',
9
+ sameElse: 'DD MMM, YYYY',
10
+ lastWeek: 'DD MMM, YYYY',
11
+ nextWeek: 'DD MMM, YYYY',
12
+ };
13
+ if (isCurrentYear) {
14
+ format = {
15
+ sameDay: 'DD MMM',
16
+ nextDay: 'DD MMM',
17
+ lastDay: 'DD MMM',
18
+ sameElse: 'DD MMM',
19
+ lastWeek: 'DD MMM',
20
+ nextWeek: 'DD MMM',
21
+ };
22
+ }
23
+ return dayjs(date).calendar(null, format);
24
+ };
25
+ export const generateFileNameWithExtension = (fileName, newName) => {
26
+ const currentDate = new Date().toISOString().split('T')[0];
27
+ const finalName = newName !== null && newName !== void 0 ? newName : `file_${currentDate}`;
28
+ const extensionRegex = /\.(xlx|xlsx|csv|txt|doc|docx|pdf|jpg|png|gif|zip|rar)$/i;
29
+ const match = extensionRegex.exec(fileName);
30
+ const extension = match ? match[0] : '.csv';
31
+ return `${finalName}${extension}`;
32
+ };
@@ -141,3 +141,5 @@ export * from './MerchantsDropdown';
141
141
  export * from './ViewColumnRadioFilter';
142
142
  export * from './Filters';
143
143
  export * from './StatusFilter';
144
+ export { default as TableReports } from './TableReports';
145
+ export * from './TableReports';
@@ -141,3 +141,5 @@ export * from './MerchantsDropdown';
141
141
  export * from './ViewColumnRadioFilter';
142
142
  export * from './Filters';
143
143
  export * from './StatusFilter';
144
+ export { default as TableReports } from './TableReports';
145
+ export * from './TableReports';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tap-payments/os-micro-frontend-shared",
3
3
  "description": "Shared components and utilities for Tap Payments micro frontends",
4
- "version": "0.1.280",
4
+ "version": "0.1.281",
5
5
  "testVersion": 0,
6
6
  "type": "module",
7
7
  "main": "build/index.js",