@tap-payments/os-micro-frontend-shared 0.1.389 → 0.1.391
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/StatusButton/constant.d.ts +1 -0
- package/build/components/StatusButton/constant.js +2 -1
- package/build/components/StatusButton/style.d.ts +1 -1
- package/build/components/TableCells/CustomCells/InvoiceStatusCell/ChargeStatusIcon.d.ts +11 -0
- package/build/components/TableCells/CustomCells/InvoiceStatusCell/ChargeStatusIcon.js +15 -0
- package/build/components/TableCells/CustomCells/InvoiceStatusCell/InvoiceStatusCell.d.ts +2 -2
- package/build/components/TableCells/CustomCells/InvoiceStatusCell/InvoiceStatusCell.js +39 -59
- package/build/components/TableCells/CustomCells/InvoiceStatusCell/style.d.ts +2 -0
- package/build/components/TableCells/CustomCells/InvoiceStatusCell/style.js +18 -0
- package/build/components/TableCells/CustomCells/InvoiceStatusCell/type.d.ts +2 -1
- package/build/constants/assets.d.ts +1 -0
- package/build/constants/assets.js +1 -0
- package/build/types/table.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { initiatedIcon, abandonedIcon, cancelledIcon, reportsIcon, searchIcon, chevronDownIcon, unAuthorizedIcon, settlementInitiatedIcon, unCapturedIcon, capturedIcon, authorizedIcon, openFlagIcon, closedFlagIcon, reverseActionIcon, authenticatedIcon, unauthenticatedIcon, paidOutFilterIcon, scheduledFilterIcon, completedBlackIcon, dashedCheckIcon, deactivatedIcon, destinationsServiceIcon, destinationWithoutBackgroundIcon,
|
|
1
|
+
import { initiatedIcon, abandonedIcon, cancelledIcon, reportsIcon, searchIcon, chevronDownIcon, unAuthorizedIcon, settlementInitiatedIcon, unCapturedIcon, capturedIcon, authorizedIcon, openFlagIcon, closedFlagIcon, reverseActionIcon, authenticatedIcon, unauthenticatedIcon, paidOutFilterIcon, scheduledFilterIcon, completedBlackIcon, dashedCheckIcon, deactivatedIcon, destinationsServiceIcon, destinationWithoutBackgroundIcon, outstandingIcon,
|
|
2
2
|
// trashBinIcon,
|
|
3
3
|
} from '../../constants/index.js';
|
|
4
4
|
export const statusButtonIcons = {
|
|
@@ -26,4 +26,5 @@ export const statusButtonIcons = {
|
|
|
26
26
|
deactivated: deactivatedIcon,
|
|
27
27
|
destination: destinationsServiceIcon,
|
|
28
28
|
destinationReversed: destinationWithoutBackgroundIcon,
|
|
29
|
+
outstanding: outstandingIcon,
|
|
29
30
|
};
|
|
@@ -21,7 +21,7 @@ export declare const CountBadge: import("@emotion/styled").StyledComponent<impor
|
|
|
21
21
|
}, {}, {}>;
|
|
22
22
|
export declare const StatusIcon: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<Theme> & {
|
|
23
23
|
variant: StatusButtonVariant;
|
|
24
|
-
icon?: "search" | "scheduled" | "paidOut" | "destination" | "reversed" | "checked" | "inProgress" | "initiated" | "abandoned" | "cancelled" | "reports" | "chevronDown" | "unAuthorized" | "unSettled" | "unCaptured" | "captured" | "authorized" | "openFlag" | "closedFlag" | "unauthenticated" | "authenticated" | "dashedChecked" | "deactivated" | "destinationReversed" | undefined;
|
|
24
|
+
icon?: "search" | "scheduled" | "paidOut" | "destination" | "reversed" | "checked" | "inProgress" | "initiated" | "abandoned" | "cancelled" | "reports" | "chevronDown" | "unAuthorized" | "unSettled" | "unCaptured" | "captured" | "authorized" | "openFlag" | "closedFlag" | "unauthenticated" | "authenticated" | "dashedChecked" | "deactivated" | "destinationReversed" | "outstanding" | undefined;
|
|
25
25
|
}, React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
|
26
26
|
export declare const StyledFilterName: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<Theme>, React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, {}>;
|
|
27
27
|
export declare const StyledDropdown: import("@emotion/styled").StyledComponent<import("../DropdownMenu").IProps & import("@mui/system").MUIStyledCommonProps<Theme>, {}, {}>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { type ChargeStatus } from '../../../TableCells';
|
|
3
|
+
interface SmallChargeStatusIconProps {
|
|
4
|
+
chargeStatus?: ChargeStatus;
|
|
5
|
+
chargeTooltip?: string;
|
|
6
|
+
errorCode?: string;
|
|
7
|
+
iconStyles?: CSSProperties;
|
|
8
|
+
iconWrapperStyles?: CSSProperties;
|
|
9
|
+
}
|
|
10
|
+
export declare function ChargeStatusIcon({ chargeStatus, chargeTooltip, errorCode, iconStyles, iconWrapperStyles }: Readonly<SmallChargeStatusIconProps>): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Box from '@mui/material/Box';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import Tooltip from '../../../Tooltip';
|
|
5
|
+
import { statusIcons, unCapturedStatusesStyles } from '../../../TableCells/CustomCells/StatusCell/constant';
|
|
6
|
+
import { StatusIcon } from '../../../TableCells/CustomCells/style';
|
|
7
|
+
import { ErrorChip, StatusIconWrapper } from './style';
|
|
8
|
+
export function ChargeStatusIcon({ chargeStatus, chargeTooltip, errorCode, iconStyles, iconWrapperStyles }) {
|
|
9
|
+
const { t } = useTranslation();
|
|
10
|
+
const unCapturedStatusStyle = chargeStatus ? unCapturedStatusesStyles[chargeStatus] : null;
|
|
11
|
+
const chargeIcon = chargeStatus && statusIcons[chargeStatus] && (_jsx(StatusIconWrapper, Object.assign({ style: iconWrapperStyles }, { children: _jsx(StatusIcon, { src: statusIcons[chargeStatus], alt: "charge-icon", style: Object.assign({ width: '16px', height: '16px' }, iconStyles) }) })));
|
|
12
|
+
if (!chargeStatus)
|
|
13
|
+
return null;
|
|
14
|
+
return (_jsx(Tooltip, Object.assign({ title: chargeTooltip !== null && chargeTooltip !== void 0 ? chargeTooltip : t(chargeStatus) }, { children: _jsxs(Box, Object.assign({ sx: { display: 'flex', gap: '6px', alignItems: 'center' } }, { children: [chargeIcon, errorCode && _jsx(ErrorChip, Object.assign({ style: { background: unCapturedStatusStyle === null || unCapturedStatusStyle === void 0 ? void 0 : unCapturedStatusStyle.color } }, { children: errorCode }))] })) })));
|
|
15
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default function InvoiceStatusCell({ status, date, viewsCount, chargeStatus, errorCode, chargeTooltip,
|
|
1
|
+
import { InvoiceStatusCellProps } from './type';
|
|
2
|
+
export default function InvoiceStatusCell({ status, date, viewsCount, chargeStatus, errorCode, chargeTooltip, remindedCount, ...props }: InvoiceStatusCellProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -9,81 +9,61 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import { jsx as _jsx,
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { useTranslation } from 'react-i18next';
|
|
14
14
|
import dayjs from 'dayjs';
|
|
15
|
-
import
|
|
16
|
-
import camelCase from 'lodash/camelCase';
|
|
17
|
-
import capitalize from 'lodash/capitalize';
|
|
15
|
+
import Box from '@mui/material/Box';
|
|
18
16
|
import { useTheme } from '@mui/material/styles';
|
|
19
17
|
import StyledBadge, { BadgeVariants } from '../../../CountBadge';
|
|
20
18
|
import Tooltip from '../../../Tooltip';
|
|
21
19
|
import { TableCell } from '../../../TableCells';
|
|
22
20
|
import { formatDate } from '../../../TableCells/CustomCells/DueDateCell/utils';
|
|
23
21
|
import { chargeStatusIcons } from '../../../TableCells/CustomCells/AuthenticationStatusCell/constant';
|
|
24
|
-
import {
|
|
22
|
+
import { remindedRedIcon } from '../../../../constants/index.js';
|
|
23
|
+
import { RightLeftExpandingCenterChip } from '../../../RightLeftExpandingCenterChip';
|
|
25
24
|
import { statusIcons } from './constant';
|
|
26
|
-
import {
|
|
25
|
+
import { DateIcon } from './style';
|
|
27
26
|
import { invoiceStatusStyles } from './utils';
|
|
28
|
-
import {
|
|
27
|
+
import { ChargeStatusIcon } from './ChargeStatusIcon';
|
|
28
|
+
import { useMemo } from 'react';
|
|
29
29
|
export default function InvoiceStatusCell(_a) {
|
|
30
|
-
var { status, date, viewsCount, chargeStatus, errorCode, chargeTooltip,
|
|
31
|
-
const theme = useTheme();
|
|
30
|
+
var { status, date, viewsCount, chargeStatus, errorCode, chargeTooltip, remindedCount = 0 } = _a, props = __rest(_a, ["status", "date", "viewsCount", "chargeStatus", "errorCode", "chargeTooltip", "remindedCount"]);
|
|
32
31
|
const { t } = useTranslation();
|
|
32
|
+
const theme = useTheme();
|
|
33
33
|
const icon = status ? statusIcons[status] : null;
|
|
34
34
|
const statusStyles = invoiceStatusStyles(status);
|
|
35
|
-
const showExpansion = viewsCount !== 0 && !!viewsCount && status === 'VIEWED';
|
|
36
35
|
const statusTooltip = `${t((status === null || status === void 0 ? void 0 : status.toLowerCase()) || '')} ${formatDate(dayjs(date).valueOf())}`;
|
|
36
|
+
const statusIcon = useMemo(() => _jsx(ChargeStatusIcon, { chargeStatus: chargeStatus, errorCode: errorCode, chargeTooltip: chargeTooltip }), [chargeStatus, errorCode, chargeTooltip]);
|
|
37
|
+
const remindedIcon = useMemo(() => (_jsx(Tooltip, Object.assign({ title: t('reminded') }, { children: _jsxs(Box, Object.assign({ sx: { display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '6px' } }, { children: [_jsx(DateIcon, { sx: {
|
|
38
|
+
width: '14px',
|
|
39
|
+
height: '14px',
|
|
40
|
+
}, src: remindedRedIcon, alt: "icon" }), _jsx(StyledBadge, Object.assign({ variant: BadgeVariants.DEFAULT, style: {
|
|
41
|
+
background: theme.palette.error.main,
|
|
42
|
+
fontWeight: 600,
|
|
43
|
+
color: theme.palette.common.white,
|
|
44
|
+
} }, { children: remindedCount }))] })) }))), [remindedCount]);
|
|
45
|
+
const centerIcon = useMemo(() => {
|
|
46
|
+
if (icon) {
|
|
47
|
+
return (_jsx(Tooltip, Object.assign({ title: t(statusTooltip || '') }, { children: _jsx(DateIcon, { src: icon, alt: "status icon" }) })));
|
|
48
|
+
}
|
|
49
|
+
if (chargeStatus && chargeStatusIcons[chargeStatus])
|
|
50
|
+
return statusIcon;
|
|
51
|
+
if (remindedCount)
|
|
52
|
+
return remindedIcon;
|
|
53
|
+
return undefined;
|
|
54
|
+
}, [icon, chargeStatus, remindedCount]);
|
|
55
|
+
if (!status && !chargeStatus && !remindedCount)
|
|
56
|
+
return null;
|
|
37
57
|
return (_jsx(TableCell, Object.assign({}, props, { sx: {
|
|
38
58
|
position: 'relative',
|
|
39
59
|
overflow: 'visible',
|
|
40
|
-
} }, { children:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
animate: Object.assign({}, (showExpansion && {
|
|
50
|
-
boxShadow: theme.shadows[4],
|
|
51
|
-
})),
|
|
52
|
-
}, background: statusStyles.background }, { children: (icon || (isTextShown && status)) && (_jsxs(_Fragment, { children: [isTextShown ? (_jsx(StatusTextLabel, Object.assign({ sx: {
|
|
53
|
-
color: statusStyles.color,
|
|
54
|
-
} }, { children: capitalize(status) }))) : (icon && _jsx(DateIcon, { src: icon, alt: "icon" })), _jsx(motion.div, Object.assign({ style: {
|
|
55
|
-
alignItems: 'center',
|
|
56
|
-
justifyContent: 'center',
|
|
57
|
-
gap: '4px',
|
|
58
|
-
display: 'none',
|
|
59
|
-
width: 0,
|
|
60
|
-
}, initial: { width: 0, opacity: 0 }, transition: {
|
|
61
|
-
animate: {
|
|
62
|
-
duration: 0.5,
|
|
63
|
-
},
|
|
64
|
-
fadeIn: {
|
|
65
|
-
duration: 0.2,
|
|
66
|
-
},
|
|
67
|
-
}, variants: {
|
|
68
|
-
animate: {
|
|
69
|
-
width: 'auto',
|
|
70
|
-
display: 'flex',
|
|
71
|
-
},
|
|
72
|
-
fadeIn: {
|
|
73
|
-
transition: {
|
|
74
|
-
delay: 0.5,
|
|
75
|
-
},
|
|
76
|
-
opacity: 1,
|
|
77
|
-
},
|
|
78
|
-
} }, { children: showExpansion && (_jsx(StyledBadge, Object.assign({ variant: BadgeVariants.DEFAULT, style: {
|
|
79
|
-
color: '#fff',
|
|
80
|
-
backgroundColor: statusStyles.color,
|
|
81
|
-
} }, { children: viewsCount }))) }))] })) })) })), _jsx(StatusIconWrapper, Object.assign({ sx: {
|
|
82
|
-
position: 'absolute',
|
|
83
|
-
left: isTextShown ? '88px' : '32px',
|
|
84
|
-
width: isTextShown ? '65px' : '24px',
|
|
85
|
-
} }, { children: chargeStatus && chargeStatusIcons[chargeStatus] && (_jsx(_Fragment, { children: isTextShown ? (_jsx(Tooltip, Object.assign({ title: t(camelCase(chargeStatus)) }, { children: _jsx(StatusTextLabel, Object.assign({ sx: {
|
|
86
|
-
color: invoiceStatusStyles('VIEWED').color,
|
|
87
|
-
backgroundColor: `${invoiceStatusStyles('VIEWED').color}0d`,
|
|
88
|
-
} }, { children: capitalize(chargeStatus) })) }))) : (_jsx(ChargeStatusIcon, { chargeStatus: chargeStatus, errorCode: errorCode, chargeTooltip: chargeTooltip })) })) }))] })) })));
|
|
60
|
+
} }, { children: _jsx(RightLeftExpandingCenterChip, { sx: { justifyContent: 'flex-start' }, expandableCenterRight: !!viewsCount && status === 'VIEWED' && icon
|
|
61
|
+
? [
|
|
62
|
+
_jsx(StyledBadge, Object.assign({ variant: BadgeVariants.DEFAULT, style: {
|
|
63
|
+
marginRight: '8px',
|
|
64
|
+
color: '#fff',
|
|
65
|
+
backgroundColor: statusStyles.color,
|
|
66
|
+
} }, { children: viewsCount })),
|
|
67
|
+
]
|
|
68
|
+
: undefined, centerIcon: centerIcon, leftIcons: !!remindedCount && icon ? [remindedIcon] : undefined, rightIcons: chargeStatus && chargeStatusIcons[chargeStatus] && icon ? [statusIcon] : undefined }) })));
|
|
89
69
|
}
|
|
@@ -266,3 +266,5 @@ export declare const DueDateCellContainer: import("@emotion/styled").StyledCompo
|
|
|
266
266
|
}, {}, {}>;
|
|
267
267
|
export declare const DateIcon: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, {}>;
|
|
268
268
|
export declare const StatusTextLabel: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
269
|
+
export declare const ErrorChip: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
270
|
+
export declare const StatusIconWrapper: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -30,3 +30,21 @@ export const StatusTextLabel = styled('div')(() => ({
|
|
|
30
30
|
padding: '4.5px 8px',
|
|
31
31
|
borderRadius: '24px',
|
|
32
32
|
}));
|
|
33
|
+
export const ErrorChip = styled('div')(({ theme }) => ({
|
|
34
|
+
color: theme.palette.common.white,
|
|
35
|
+
background: theme.palette.error.main,
|
|
36
|
+
fontSize: '0.6rem',
|
|
37
|
+
fontWeight: 600,
|
|
38
|
+
borderRadius: '16px',
|
|
39
|
+
padding: '2px 8px',
|
|
40
|
+
display: 'flex',
|
|
41
|
+
alignItems: 'center',
|
|
42
|
+
justifyContent: 'center',
|
|
43
|
+
}));
|
|
44
|
+
export const StatusIconWrapper = styled('div')(() => ({
|
|
45
|
+
display: 'flex',
|
|
46
|
+
alignItems: 'center',
|
|
47
|
+
justifyContent: 'center',
|
|
48
|
+
width: '16px',
|
|
49
|
+
height: '16px',
|
|
50
|
+
}));
|
|
@@ -2,7 +2,7 @@ import { TableCellProps } from '@mui/material/TableCell';
|
|
|
2
2
|
import { statusIcons } from './constant';
|
|
3
3
|
import { ChargeStatus } from '../type';
|
|
4
4
|
export type StatusIconType = keyof typeof statusIcons;
|
|
5
|
-
export interface
|
|
5
|
+
export interface InvoiceStatusCellProps extends TableCellProps {
|
|
6
6
|
status?: StatusIconType;
|
|
7
7
|
date: Date | '';
|
|
8
8
|
viewsCount?: number;
|
|
@@ -12,4 +12,5 @@ export interface DueCellProps extends TableCellProps {
|
|
|
12
12
|
gatewayTooltip?: string;
|
|
13
13
|
errorCode?: string;
|
|
14
14
|
isTextShown?: boolean;
|
|
15
|
+
remindedCount?: number;
|
|
15
16
|
}
|
|
@@ -77,6 +77,7 @@ export declare const maximizeIcon: string;
|
|
|
77
77
|
export declare const minimizeIcon: string;
|
|
78
78
|
export declare const closeIcon: string;
|
|
79
79
|
export declare const dashedCheckIcon: string;
|
|
80
|
+
export declare const outstandingIcon: string;
|
|
80
81
|
export declare const deactivatedIcon: string;
|
|
81
82
|
export declare const topUpIcon: string;
|
|
82
83
|
export declare const deMaximizeIcon: string;
|
|
@@ -82,6 +82,7 @@ export const maximizeIcon = `${lightUrl}/maximize.svg`;
|
|
|
82
82
|
export const minimizeIcon = `${lightUrl}/minimize.svg`;
|
|
83
83
|
export const closeIcon = `${lightUrl}/close.svg`;
|
|
84
84
|
export const dashedCheckIcon = `${lightUrl}/dashedCheckIcon.svg`;
|
|
85
|
+
export const outstandingIcon = `${lightUrl}/outstandingIcon.svg`;
|
|
85
86
|
export const deactivatedIcon = `${lightUrl}/deactivatedIcon.svg`;
|
|
86
87
|
export const topUpIcon = `${lightUrl}/topup.svg`;
|
|
87
88
|
export const deMaximizeIcon = `${appBaseUrl}/demaximize.svg`;
|
package/build/types/table.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export interface TableStatus<T> {
|
|
|
20
20
|
filterStatus: T;
|
|
21
21
|
totalCount?: number;
|
|
22
22
|
}
|
|
23
|
-
export type TableHeaderStatus = 'all' | 'initiated' | 'captured' | 'unCaptured' | 'inProgress' | 'abandoned' | 'cancelled' | 'reversed' | 'unsettled' | 'unauthorized' | 'completed' | 'authorized' | 'refunded' | 'paidOut' | 'pending' | 'cleared' | 'open' | 'revered' | 'unauthenticated' | 'authenticated' | 'issued' | 'drafted' | 'scheduled' | 'paid' | 'outstanding' | 'draft' | 'expired' | 'transacted' | 'settled' | 'unSettled' | 'summary' | 'chargeSettlements' | 'refundSettlements' | 'destinationSettlements' | 'chargebackSettlements' | 'used' | 'active' | 'expired' | 'consumed' | 'notActive' | 'signedUp' | 'checked' | (string & {}) | undefined;
|
|
23
|
+
export type TableHeaderStatus = 'all' | 'initiated' | 'captured' | 'unCaptured' | 'inProgress' | 'abandoned' | 'cancelled' | 'reversed' | 'unsettled' | 'unauthorized' | 'completed' | 'authorized' | 'refunded' | 'paidOut' | 'pending' | 'cleared' | 'open' | 'revered' | 'unauthenticated' | 'authenticated' | 'issued' | 'drafted' | 'scheduled' | 'paid' | 'outstanding' | 'draft' | 'expired' | 'transacted' | 'settled' | 'unSettled' | 'summary' | 'chargeSettlements' | 'refundSettlements' | 'destinationSettlements' | 'chargebackSettlements' | 'used' | 'active' | 'expired' | 'consumed' | 'notActive' | 'signedUp' | 'checked' | 'outstanding' | (string & {}) | undefined;
|
|
24
24
|
export interface IColumnProps<R = any> {
|
|
25
25
|
header?: string | (() => React.ReactNode);
|
|
26
26
|
render?: (props: IRenderAttr<R, IColumnProps<R>>) => React.ReactNode;
|
package/package.json
CHANGED