@solapi/ui-kit 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -0
- package/dist/GlobalMfa-F9T2HvGA.cjs +1 -0
- package/dist/GlobalMfa-a9UddAbl.js +2176 -0
- package/dist/components/AuthFlow/AuthFlowGoogleOtpForm.d.ts +11 -0
- package/dist/components/AuthFlow/AuthFlowPasswordForm.d.ts +15 -0
- package/dist/components/AuthFlow/AuthFlowQueueItem.d.ts +6 -0
- package/dist/components/AuthFlow/AuthFlowSelfCert.d.ts +16 -0
- package/dist/components/AuthFlow/AuthFlowSimpleCert.d.ts +15 -0
- package/dist/components/AuthFlow/AuthFlowSmsForm.d.ts +33 -0
- package/dist/components/AuthFlow/AuthFlowTimer.d.ts +16 -0
- package/dist/components/AuthFlow/index.d.ts +6 -0
- package/dist/components/Confirm/Confirm.d.ts +3 -0
- package/dist/components/DatePicker/DatePicker.d.ts +21 -0
- package/dist/components/DatePicker/DateTimeField.d.ts +16 -0
- package/dist/components/DatePicker/MonthCalendar.d.ts +19 -0
- package/dist/components/DatePicker/TimeSelector.d.ts +13 -0
- package/dist/components/DatePicker/index.d.ts +4 -0
- package/dist/components/GlobalMfa/GlobalMfa.d.ts +3 -0
- package/dist/components/ListFilter/FilterChip.d.ts +21 -0
- package/dist/components/ListFilter/FilterPanelContent.d.ts +9 -0
- package/dist/components/ListFilter/ListFilter.d.ts +37 -0
- package/dist/components/ListFilter/NumberConditionSelect.d.ts +6 -0
- package/dist/components/ListFilter/SelectOptionButtons.d.ts +9 -0
- package/dist/components/ListFilter/index.d.ts +2 -0
- package/dist/components/Menu/Menu.d.ts +43 -0
- package/dist/components/Menu/index.d.ts +2 -0
- package/dist/components/Mfa/MfaEmail.d.ts +17 -0
- package/dist/components/Mfa/MfaMultiCert.d.ts +23 -0
- package/dist/components/Mfa/MfaPasswordNumPad.d.ts +11 -0
- package/dist/components/Mfa/MfaQueueItem.d.ts +7 -0
- package/dist/components/Mfa/MfaSelfCert.d.ts +20 -0
- package/dist/components/Mfa/MfaSms.d.ts +28 -0
- package/dist/components/Mfa/index.d.ts +4 -0
- package/dist/components/MiniTabs/MiniTabs.d.ts +28 -0
- package/dist/components/MiniTabs/index.d.ts +2 -0
- package/dist/components/Modal/Modal.d.ts +9 -0
- package/dist/components/Snackbar/Snackbar.d.ts +9 -0
- package/dist/components/Tabs/Tabs.d.ts +22 -0
- package/dist/components/Tabs/index.d.ts +1 -0
- package/dist/components/TextInput/TextInput.d.ts +30 -0
- package/dist/components/TextInput/index.d.ts +2 -0
- package/dist/components/common/Box.d.ts +27 -0
- package/dist/components/common/Button.d.ts +22 -0
- package/dist/components/common/Collapse.d.ts +19 -0
- package/dist/components/common/Divider.d.ts +15 -0
- package/dist/components/common/Grid.d.ts +51 -0
- package/dist/components/common/IconButton.d.ts +20 -0
- package/dist/components/common/Info.d.ts +10 -0
- package/dist/components/common/Paper.d.ts +19 -0
- package/dist/components/common/Popover.d.ts +20 -0
- package/dist/components/common/Stack.d.ts +17 -0
- package/dist/components/common/Typography.d.ts +20 -0
- package/dist/components/common/index.d.ts +15 -0
- package/dist/export/GlobalUIProvider.d.ts +20 -0
- package/dist/export/UIHost.d.ts +1 -0
- package/dist/export/UIProvider.d.ts +42 -0
- package/dist/export/index.d.ts +13 -0
- package/dist/federation/componentLoader.d.ts +8 -0
- package/dist/federation/hookLoader.d.ts +8 -0
- package/dist/federation/index.d.ts +4 -0
- package/dist/federation/providerLoader.d.ts +11 -0
- package/dist/federation/safeImport.d.ts +14 -0
- package/dist/federation.cjs +1 -0
- package/dist/federation.js +132 -0
- package/dist/hooks/useConfirm.d.ts +7 -0
- package/dist/hooks/useEnhancedMutation.d.ts +8 -0
- package/dist/hooks/useLingeringValue.d.ts +7 -0
- package/dist/hooks/useModal.d.ts +7 -0
- package/dist/hooks/useSnackbar.d.ts +12 -0
- package/dist/index-BpqgYc0Q.cjs +5 -0
- package/dist/index-DV20NPKR.js +18341 -0
- package/dist/index.cjs +1 -0
- package/dist/index.js +43 -0
- package/dist/lib/createMutationConfig.d.ts +62 -0
- package/dist/lib/phoneUtils.d.ts +1 -0
- package/dist/lib/typeDetector.d.ts +59 -0
- package/dist/stores/createConfirmStore.d.ts +24 -0
- package/dist/stores/createModalStore.d.ts +37 -0
- package/dist/stores/createSnackbarStore.d.ts +20 -0
- package/dist/stores/requestQueueStore.d.ts +41 -0
- package/dist/theme/ThemeProvider.d.ts +29 -0
- package/dist/theme/index.d.ts +8 -0
- package/dist/theme/tokens.d.ts +17 -0
- package/dist/theme/types.d.ts +126 -0
- package/dist/theme/utils.d.ts +52 -0
- package/dist/ui-kit.css +1 -0
- package/dist/utils/scrollLock.d.ts +6 -0
- package/dist/utils/supportAdapter.d.ts +22 -0
- package/package.json +66 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface AuthFlowGoogleOtpFormProps {
|
|
3
|
+
otpName?: string;
|
|
4
|
+
remainingAttemptCount?: number;
|
|
5
|
+
loading?: boolean;
|
|
6
|
+
onSubmitToken: (params: {
|
|
7
|
+
token: string;
|
|
8
|
+
}) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const AuthFlowGoogleOtpForm: React.FC<AuthFlowGoogleOtpFormProps>;
|
|
11
|
+
export default AuthFlowGoogleOtpForm;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface AuthFlowPasswordFormProps {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
loading?: boolean;
|
|
5
|
+
remainingTryCount?: number;
|
|
6
|
+
onSubmitToken: (params: {
|
|
7
|
+
token: string;
|
|
8
|
+
}) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @author EdenCha <eden@nurigo.net>
|
|
12
|
+
* @description 2차 비밀번호 입력 폼 컴포넌트
|
|
13
|
+
*/
|
|
14
|
+
declare const AuthFlowPasswordForm: React.FC<AuthFlowPasswordFormProps>;
|
|
15
|
+
export default AuthFlowPasswordForm;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface AuthFlowSelfCertProps {
|
|
3
|
+
userName?: string;
|
|
4
|
+
phoneNumber?: string;
|
|
5
|
+
userBirth?: string;
|
|
6
|
+
loading?: boolean;
|
|
7
|
+
onSubmitToken: ({ token }: {
|
|
8
|
+
token: string;
|
|
9
|
+
}) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @author EdenCha <eden@nurigo.net>
|
|
13
|
+
* @description 본인인증 컴포넌트 (아임포트 사용)
|
|
14
|
+
*/
|
|
15
|
+
declare const AuthFlowSelfCert: React.FC<AuthFlowSelfCertProps>;
|
|
16
|
+
export default AuthFlowSelfCert;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface AuthFlowSimpleCertProps {
|
|
3
|
+
transactionId?: string | null;
|
|
4
|
+
userName?: string;
|
|
5
|
+
userBirth?: string;
|
|
6
|
+
phoneNumber?: string;
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
onSubmitToken: () => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @author EdenCha <eden@nurigo.net>
|
|
12
|
+
* @description 간편인증 컴포넌트 (KG이니시스)
|
|
13
|
+
*/
|
|
14
|
+
declare const AuthFlowSimpleCert: React.FC<AuthFlowSimpleCertProps>;
|
|
15
|
+
export default AuthFlowSimpleCert;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface RequestConfig {
|
|
3
|
+
data?: string | object;
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
}
|
|
6
|
+
type Factor = 'SMS' | 'EMAIL' | 'ARS';
|
|
7
|
+
interface AuthFlowSmsFormProps {
|
|
8
|
+
isSent: boolean;
|
|
9
|
+
phoneNumber?: string;
|
|
10
|
+
email?: string;
|
|
11
|
+
config?: RequestConfig;
|
|
12
|
+
factor: Factor;
|
|
13
|
+
expireAt?: string | Date | null;
|
|
14
|
+
remainingAttemptCount?: number;
|
|
15
|
+
unlockTime?: Date | string | number;
|
|
16
|
+
lastSentAt?: string | null;
|
|
17
|
+
loading?: boolean;
|
|
18
|
+
onRequestToken: (params: {
|
|
19
|
+
phoneNumber?: string;
|
|
20
|
+
email?: string;
|
|
21
|
+
}) => void;
|
|
22
|
+
onClean: () => void;
|
|
23
|
+
onSubmitToken: (params: {
|
|
24
|
+
token: string;
|
|
25
|
+
}) => void;
|
|
26
|
+
transactionId?: string | null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @author EdenCha <eden@nurigo.net>
|
|
30
|
+
* @description SMS/Email/ARS를 통한 인증 폼 컴포넌트
|
|
31
|
+
*/
|
|
32
|
+
declare const AuthFlowSmsForm: React.FC<AuthFlowSmsFormProps>;
|
|
33
|
+
export default AuthFlowSmsForm;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface AuthFlowTimerProps {
|
|
3
|
+
expireAt?: string | Date | null;
|
|
4
|
+
onExpire?: () => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* 만료 시간 포맷팅 (MM:SS)
|
|
8
|
+
*/
|
|
9
|
+
declare const formatTime: (seconds: number) => string;
|
|
10
|
+
/**
|
|
11
|
+
* @author EdenCha <eden@nurigo.net>
|
|
12
|
+
* @description 인증 타이머 컴포넌트
|
|
13
|
+
*/
|
|
14
|
+
declare const AuthFlowTimer: React.FC<AuthFlowTimerProps>;
|
|
15
|
+
export { formatTime };
|
|
16
|
+
export default AuthFlowTimer;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as AuthFlowSmsForm } from './AuthFlowSmsForm';
|
|
2
|
+
export { default as AuthFlowQueueItem } from './AuthFlowQueueItem';
|
|
3
|
+
export { default as AuthFlowTimer, formatTime } from './AuthFlowTimer';
|
|
4
|
+
export { default as AuthFlowSelfCert } from './AuthFlowSelfCert';
|
|
5
|
+
export { default as AuthFlowPasswordForm } from './AuthFlowPasswordForm';
|
|
6
|
+
export { default as AuthFlowSimpleCert } from './AuthFlowSimpleCert';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author EdenCha <eden@nurigo.net>
|
|
3
|
+
* @description 날짜 범위 선택
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface DatePickerProps {
|
|
7
|
+
/** 선택된 날짜 [시작, 종료] - YYYYMMDD 또는 YYYYMMDDHHmm */
|
|
8
|
+
selectedDate?: string[];
|
|
9
|
+
/** 시간 선택 여부 (datetime) */
|
|
10
|
+
withTime?: boolean;
|
|
11
|
+
/** 날짜 1개만 선택 (시작=종료) */
|
|
12
|
+
selectOnce?: boolean;
|
|
13
|
+
/** 한 번에 보여줄 달력 개수 */
|
|
14
|
+
viewCalendar?: number;
|
|
15
|
+
/** 완료 시 [시작, 종료] 전달 - 각 YYYYMMDD 또는 YYYYMMDDHHmm */
|
|
16
|
+
onComplete?: (result: string[]) => void;
|
|
17
|
+
/** placeholder */
|
|
18
|
+
placeholder?: string;
|
|
19
|
+
}
|
|
20
|
+
declare const DatePicker: React.FC<DatePickerProps>;
|
|
21
|
+
export default DatePicker;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 날짜+시간 직접 입력 (년/월/일 + 옵션으로 시/분)
|
|
3
|
+
* TextInput 사용, endAdornment로 단위(년/월/일/시/분) 표시
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface DateTimeFieldProps {
|
|
7
|
+
year: number;
|
|
8
|
+
month: number;
|
|
9
|
+
day: number;
|
|
10
|
+
hour?: number;
|
|
11
|
+
minute?: number;
|
|
12
|
+
withTime?: boolean;
|
|
13
|
+
onChange: (value: string) => void;
|
|
14
|
+
}
|
|
15
|
+
declare const DateTimeField: React.FC<DateTimeFieldProps>;
|
|
16
|
+
export default DateTimeField;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author EdenCha <eden@nurigo.net>
|
|
3
|
+
* @description 달력 테이블 (월별 그리드)
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import moment from 'moment';
|
|
7
|
+
export interface MonthCalendarProps {
|
|
8
|
+
currentDate: moment.Moment;
|
|
9
|
+
selectingDate: string[];
|
|
10
|
+
selectedDate: string[];
|
|
11
|
+
minRange?: moment.Moment;
|
|
12
|
+
maxRange?: moment.Moment;
|
|
13
|
+
viewCalendar?: number;
|
|
14
|
+
onClickTableTd: (date: string) => void;
|
|
15
|
+
onClickPrevMonth: () => void;
|
|
16
|
+
onClickNextMonth: () => void;
|
|
17
|
+
}
|
|
18
|
+
declare const MonthCalendar: React.FC<MonthCalendarProps>;
|
|
19
|
+
export default MonthCalendar;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 시간 입력 – 오전/오후, 시(12시간), 분 선택
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
export interface TimeSelectorProps {
|
|
6
|
+
label?: string;
|
|
7
|
+
value?: string;
|
|
8
|
+
minTime?: string;
|
|
9
|
+
maxTime?: string;
|
|
10
|
+
onChange: (value: string) => void;
|
|
11
|
+
}
|
|
12
|
+
declare const TimeSelector: React.FC<TimeSelectorProps>;
|
|
13
|
+
export default TimeSelector;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ListFilterItemData } from './ListFilter';
|
|
3
|
+
export declare const NUMBER_CONDITIONS: readonly [{
|
|
4
|
+
readonly title: "와(과) 같음 (=)";
|
|
5
|
+
readonly value: "eq";
|
|
6
|
+
}, {
|
|
7
|
+
readonly title: "와(과) 같지 않음 (!=)";
|
|
8
|
+
readonly value: "ne";
|
|
9
|
+
}, {
|
|
10
|
+
readonly title: "보다 큼 (>)";
|
|
11
|
+
readonly value: "gt";
|
|
12
|
+
}, {
|
|
13
|
+
readonly title: "보다 작음 (<)";
|
|
14
|
+
readonly value: "lt";
|
|
15
|
+
}];
|
|
16
|
+
declare const FilterChip: React.MemoExoticComponent<({ itemData, onClickItem, onRemoveItem }: {
|
|
17
|
+
itemData: ListFilterItemData;
|
|
18
|
+
onClickItem: (e: React.MouseEvent, ref: React.RefObject<HTMLButtonElement | null>, data: ListFilterItemData) => void;
|
|
19
|
+
onRemoveItem: (e: React.MouseEvent, ref: React.RefObject<HTMLButtonElement | null>, data: ListFilterItemData) => void;
|
|
20
|
+
}) => import("react/jsx-runtime").JSX.Element>;
|
|
21
|
+
export default FilterChip;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ListFilterItemData } from './ListFilter';
|
|
3
|
+
declare const FilterPanelContent: React.MemoExoticComponent<({ filterItemData, onClose, onChange, onClickRemove }: {
|
|
4
|
+
filterItemData: ListFilterItemData;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
onChange: (key: string, value: unknown, cond: string | string[], data: ListFilterItemData) => void;
|
|
7
|
+
onClickRemove: (key: string, data: ListFilterItemData) => void;
|
|
8
|
+
}) => import("react/jsx-runtime").JSX.Element>;
|
|
9
|
+
export default FilterPanelContent;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author EdenCha <eden@nurigo.net>
|
|
3
|
+
* @description 필터 칩 + 드롭다운 패널 (검색/리스트 필터)
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface ListFilterSelectItem {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string | number;
|
|
9
|
+
}
|
|
10
|
+
export interface ListFilterItemData {
|
|
11
|
+
key: string;
|
|
12
|
+
title: string;
|
|
13
|
+
type?: 'text' | 'number' | 'select' | 'date' | 'datetime';
|
|
14
|
+
value?: unknown;
|
|
15
|
+
cond?: string | string[];
|
|
16
|
+
items?: ListFilterSelectItem[];
|
|
17
|
+
multiple?: boolean;
|
|
18
|
+
formatPrintValue?: (v: unknown) => string;
|
|
19
|
+
onChange?: (payload: {
|
|
20
|
+
key: string;
|
|
21
|
+
value: unknown;
|
|
22
|
+
cond?: string | string[];
|
|
23
|
+
data: ListFilterItemData;
|
|
24
|
+
}) => void;
|
|
25
|
+
}
|
|
26
|
+
export interface ListFilterProps {
|
|
27
|
+
/** 필터 항목 정의 + 현재 값 */
|
|
28
|
+
filterData?: ListFilterItemData[];
|
|
29
|
+
/** 필터 변경 시 */
|
|
30
|
+
onChangeValue?: (newFilterData: ListFilterItemData[]) => void;
|
|
31
|
+
/** 모두 제거 시 추가 콜백 */
|
|
32
|
+
onClickRemoveAll?: () => void;
|
|
33
|
+
zIndex?: number;
|
|
34
|
+
}
|
|
35
|
+
export declare const hasFilterValue: (value: unknown) => boolean;
|
|
36
|
+
declare const _default: React.NamedExoticComponent<ListFilterProps>;
|
|
37
|
+
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const NumberConditionSelect: React.MemoExoticComponent<({ cond, onChangeCondition }: {
|
|
3
|
+
cond: string;
|
|
4
|
+
onChangeCondition: (c: string) => void;
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element>;
|
|
6
|
+
export default NumberConditionSelect;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ListFilterSelectItem } from './ListFilter';
|
|
3
|
+
declare const SelectOptionButtons: React.MemoExoticComponent<({ items, value, multiple, onChange }: {
|
|
4
|
+
items: ListFilterSelectItem[];
|
|
5
|
+
value: (string | number)[];
|
|
6
|
+
multiple?: boolean;
|
|
7
|
+
onChange: (newValue: (string | number)[], newCond: string[]) => void;
|
|
8
|
+
}) => import("react/jsx-runtime").JSX.Element>;
|
|
9
|
+
export default SelectOptionButtons;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author EdenCha <eden@nurigo.net>
|
|
3
|
+
* @description 드롭다운 메뉴 컴포넌트
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface MenuItem {
|
|
7
|
+
key?: React.Key;
|
|
8
|
+
divider?: boolean;
|
|
9
|
+
/** 그룹 헤더 라벨 (설정 시 클릭 불가한 섹션 헤더로 렌더링) */
|
|
10
|
+
groupLabel?: string;
|
|
11
|
+
label?: React.ReactNode;
|
|
12
|
+
startIcon?: React.ReactElement;
|
|
13
|
+
endIcon?: React.ReactElement;
|
|
14
|
+
shortcut?: React.ReactNode | React.ReactNode[];
|
|
15
|
+
onClick?: (event: React.MouseEvent<HTMLElement>) => void;
|
|
16
|
+
selected?: boolean;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
color?: 'default' | 'error';
|
|
19
|
+
}
|
|
20
|
+
export interface MenuProps {
|
|
21
|
+
/** 외부에서 제어하는 열림 상태 */
|
|
22
|
+
open?: boolean;
|
|
23
|
+
/** 외부에서 제어하는 앵커 요소 */
|
|
24
|
+
anchorEl?: HTMLElement | null;
|
|
25
|
+
/** 메뉴 열림 콜백 */
|
|
26
|
+
onOpen?: () => void;
|
|
27
|
+
/** 메뉴 닫힘 콜백 */
|
|
28
|
+
onClose?: () => void;
|
|
29
|
+
/** 메뉴 아이템 목록 */
|
|
30
|
+
items?: MenuItem[];
|
|
31
|
+
/** 트리거 버튼 표시 여부 */
|
|
32
|
+
showTrigger?: boolean;
|
|
33
|
+
/** 커스텀 트리거 아이콘 */
|
|
34
|
+
icon?: React.ReactElement;
|
|
35
|
+
/** 트리거 버튼 클래스 */
|
|
36
|
+
triggerClassName?: string;
|
|
37
|
+
/** true면 wide 스타일 + shortcut 표시 */
|
|
38
|
+
wide?: boolean;
|
|
39
|
+
/** true면 컴팩트한 크기 (줄어든 패딩·폰트) */
|
|
40
|
+
dense?: boolean;
|
|
41
|
+
}
|
|
42
|
+
export declare const Menu: React.NamedExoticComponent<MenuProps>;
|
|
43
|
+
export default Menu;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AxiosRequestConfig } from 'axios';
|
|
3
|
+
interface MfaEmailProps {
|
|
4
|
+
mfa?: {
|
|
5
|
+
email?: string;
|
|
6
|
+
};
|
|
7
|
+
config: AxiosRequestConfig;
|
|
8
|
+
transactionId?: string | null;
|
|
9
|
+
onRequestTid: () => void;
|
|
10
|
+
onSubmitToken: (params: {
|
|
11
|
+
token: string;
|
|
12
|
+
transactionId: string;
|
|
13
|
+
}) => void;
|
|
14
|
+
onClean: () => void;
|
|
15
|
+
}
|
|
16
|
+
declare const MfaEmail: React.FC<MfaEmailProps>;
|
|
17
|
+
export default MfaEmail;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface MfaMultiCertProps {
|
|
3
|
+
queueId: string;
|
|
4
|
+
mfa: any;
|
|
5
|
+
transactionId?: string | null;
|
|
6
|
+
certInfo?: {
|
|
7
|
+
name: string;
|
|
8
|
+
phone: string;
|
|
9
|
+
birth: string;
|
|
10
|
+
};
|
|
11
|
+
loading?: boolean;
|
|
12
|
+
onRequestTid: (params: {
|
|
13
|
+
extras?: Record<string, unknown>;
|
|
14
|
+
}) => void;
|
|
15
|
+
onClearTid: () => void;
|
|
16
|
+
onSubmitToken: (params: {
|
|
17
|
+
token: string;
|
|
18
|
+
transactionId: string;
|
|
19
|
+
extras?: Record<string, unknown>;
|
|
20
|
+
}) => void;
|
|
21
|
+
}
|
|
22
|
+
declare const MfaMultiCert: React.FC<MfaMultiCertProps>;
|
|
23
|
+
export default MfaMultiCert;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface MfaPasswordNumPadProps {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
onFinish: (password: string[]) => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* @author EdenCha <eden@nurigo.net>
|
|
8
|
+
* @description 비밀번호 입력용 숫자 패드
|
|
9
|
+
*/
|
|
10
|
+
declare const MfaPasswordNumPad: React.FC<MfaPasswordNumPadProps>;
|
|
11
|
+
export default MfaPasswordNumPad;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AxiosRequestConfig } from 'axios';
|
|
3
|
+
interface MfaSelfCertProps {
|
|
4
|
+
config: AxiosRequestConfig;
|
|
5
|
+
certInfo?: {
|
|
6
|
+
name: string;
|
|
7
|
+
phone: string;
|
|
8
|
+
birth: string;
|
|
9
|
+
};
|
|
10
|
+
onRequestTid: ({ config, token }: {
|
|
11
|
+
config: AxiosRequestConfig;
|
|
12
|
+
token: string;
|
|
13
|
+
}) => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @author EdenCha <eden@nurigo.net>
|
|
17
|
+
* @description 본인인증 컴포넌트 (아임포트 사용)
|
|
18
|
+
*/
|
|
19
|
+
declare const MfaSelfCert: React.FC<MfaSelfCertProps>;
|
|
20
|
+
export default MfaSelfCert;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AxiosRequestConfig } from 'axios';
|
|
3
|
+
type RequestConfig = AxiosRequestConfig;
|
|
4
|
+
type AuthType = 'SMS' | 'EMAIL' | 'ARS';
|
|
5
|
+
interface MfaSmsProps {
|
|
6
|
+
mfa?: {
|
|
7
|
+
phoneNumber?: string;
|
|
8
|
+
email?: string;
|
|
9
|
+
};
|
|
10
|
+
config?: RequestConfig;
|
|
11
|
+
authType?: AuthType;
|
|
12
|
+
expiresIn?: number;
|
|
13
|
+
unlockTime?: Date | string | number;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
onRequestTid: () => void;
|
|
16
|
+
onClean: () => void;
|
|
17
|
+
onSubmitToken: (params: {
|
|
18
|
+
token: string;
|
|
19
|
+
transactionId: string;
|
|
20
|
+
}) => void;
|
|
21
|
+
transactionId?: string | null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @author EdenCha <eden@nurigo.net>
|
|
25
|
+
* @description SMS/Email/ARS를 통한 MFA 인증 컴포넌트
|
|
26
|
+
*/
|
|
27
|
+
declare const MfaSms: React.FC<MfaSmsProps>;
|
|
28
|
+
export default MfaSms;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author EdenCha <eden@nurigo.net>
|
|
3
|
+
* @description 미니 탭 컴포넌트 (하단 커서 스타일)
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface MiniTabItem {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string;
|
|
9
|
+
visible?: boolean;
|
|
10
|
+
startIcon?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export type MiniTabsSize = 'small' | 'medium' | 'large';
|
|
13
|
+
export interface MiniTabsProps {
|
|
14
|
+
/** localStorage에 저장할 키 */
|
|
15
|
+
tabKey?: string;
|
|
16
|
+
/** 탭 목록 */
|
|
17
|
+
tabs: MiniTabItem[];
|
|
18
|
+
/** 현재 선택된 값 */
|
|
19
|
+
value?: string;
|
|
20
|
+
/** 탭 변경 시 호출되는 콜백 */
|
|
21
|
+
onChange?: (value: string) => void;
|
|
22
|
+
/** 비활성화 여부 */
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/** 탭 버튼 크기(간격) */
|
|
25
|
+
size?: MiniTabsSize;
|
|
26
|
+
}
|
|
27
|
+
declare const _default: React.NamedExoticComponent<MiniTabsProps>;
|
|
28
|
+
export default _default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author EdenCha <eden@nurigo.net>
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
export declare const useProps: {};
|
|
6
|
+
interface TabItem {
|
|
7
|
+
label: string;
|
|
8
|
+
selectedLabel?: string;
|
|
9
|
+
value: string | number;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
interface TabsProps {
|
|
13
|
+
variant?: 'default' | 'contained';
|
|
14
|
+
items?: TabItem[];
|
|
15
|
+
defaultValue?: string | number;
|
|
16
|
+
value?: string | number;
|
|
17
|
+
onChange?: (value: string | number) => void;
|
|
18
|
+
onClickDisabled?: (value: string | number) => void;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
}
|
|
21
|
+
declare const _default: React.NamedExoticComponent<TabsProps>;
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './Tabs';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @author EdenCha <eden@nurigo.net>
|
|
4
|
+
* @description 공용 텍스트 입력 박스
|
|
5
|
+
*/
|
|
6
|
+
interface TextInputProps {
|
|
7
|
+
className?: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
size?: 'small' | 'medium' | 'large';
|
|
11
|
+
align?: 'left' | 'center' | 'right';
|
|
12
|
+
type?: 'text' | 'password' | 'email' | 'tel' | 'number' | 'url' | 'search' | 'date' | 'time' | 'datetime-local' | 'month' | 'week';
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
inputRef?: React.RefObject<HTMLInputElement | HTMLTextAreaElement>;
|
|
15
|
+
value?: string;
|
|
16
|
+
bolder?: boolean;
|
|
17
|
+
required?: boolean;
|
|
18
|
+
errorMessage?: string;
|
|
19
|
+
helperText?: string;
|
|
20
|
+
onChange?: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
|
|
23
|
+
multiline?: boolean;
|
|
24
|
+
minRows?: number;
|
|
25
|
+
maxRows?: number;
|
|
26
|
+
startAdornment?: React.ReactNode;
|
|
27
|
+
endAdornment?: React.ReactNode;
|
|
28
|
+
}
|
|
29
|
+
declare const TextInput: React.FC<TextInputProps>;
|
|
30
|
+
export default TextInput;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Box Component
|
|
3
|
+
* MUI Box 대체 컴포넌트
|
|
4
|
+
*/
|
|
5
|
+
import React, { CSSProperties } from 'react';
|
|
6
|
+
interface BoxProps {
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
className?: string;
|
|
9
|
+
sx?: Record<string, any>;
|
|
10
|
+
style?: CSSProperties;
|
|
11
|
+
component?: keyof JSX.IntrinsicElements;
|
|
12
|
+
onClick?: (e: React.MouseEvent) => void;
|
|
13
|
+
onMouseEnter?: (e: React.MouseEvent) => void;
|
|
14
|
+
onMouseLeave?: (e: React.MouseEvent) => void;
|
|
15
|
+
mt?: number | string;
|
|
16
|
+
mb?: number | string;
|
|
17
|
+
ml?: number | string;
|
|
18
|
+
mr?: number | string;
|
|
19
|
+
m?: number | string;
|
|
20
|
+
pt?: number | string;
|
|
21
|
+
pb?: number | string;
|
|
22
|
+
pl?: number | string;
|
|
23
|
+
pr?: number | string;
|
|
24
|
+
p?: number | string;
|
|
25
|
+
}
|
|
26
|
+
export declare const Box: React.FC<BoxProps>;
|
|
27
|
+
export default Box;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Button Component
|
|
3
|
+
* MUI Button 대체 컴포넌트
|
|
4
|
+
*/
|
|
5
|
+
import React, { CSSProperties } from 'react';
|
|
6
|
+
interface ButtonProps {
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
className?: string;
|
|
9
|
+
variant?: 'text' | 'contained' | 'outlined';
|
|
10
|
+
color?: 'primary' | 'secondary' | 'error' | 'warning' | 'info' | 'success' | 'default';
|
|
11
|
+
size?: 'minimum' | 'small' | 'medium' | 'large';
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
fullWidth?: boolean;
|
|
14
|
+
startIcon?: React.ReactElement;
|
|
15
|
+
endIcon?: React.ReactElement;
|
|
16
|
+
onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
17
|
+
type?: 'button' | 'submit' | 'reset';
|
|
18
|
+
style?: CSSProperties;
|
|
19
|
+
sx?: Record<string, any>;
|
|
20
|
+
}
|
|
21
|
+
export declare const Button: React.FC<ButtonProps>;
|
|
22
|
+
export default Button;
|