@importcsv/react 0.2.3 → 0.2.4
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/App.d.ts +2 -0
- package/build/bundled/importer/components/ui/use-toast.d.ts +1 -1
- package/build/bundled/index.esm.js +3027 -3205
- package/build/bundled/index.esm.js.map +1 -1
- package/build/bundled/index.js +30 -30
- package/build/bundled/index.js.map +1 -1
- package/build/bundled/index.umd.js +30 -30
- package/build/bundled/index.umd.js.map +1 -1
- package/build/bundled/utils/injectStyles.d.ts +14 -0
- package/build/bundled-styles.d.ts +1 -0
- package/build/components/CSVImporter/index.d.ts +9 -0
- package/build/components/Modal/index.d.ts +12 -0
- package/build/config/index.d.ts +5 -0
- package/build/i18n/de.d.ts +32 -0
- package/build/i18n/es.d.ts +32 -0
- package/build/i18n/fr.d.ts +32 -0
- package/build/i18n/i18n.d.ts +6 -0
- package/build/i18n/it.d.ts +32 -0
- package/build/i18n/useTranslation.d.ts +9 -0
- package/build/importer/components/Box/index.d.ts +2 -0
- package/build/importer/components/Box/types/index.d.ts +5 -0
- package/build/importer/components/Checkbox/index.d.ts +2 -0
- package/build/importer/components/Checkbox/types/index.d.ts +4 -0
- package/build/importer/components/Errors/index.d.ts +4 -0
- package/build/importer/components/Input/index.d.ts +2 -0
- package/build/importer/components/Input/types/index.d.ts +18 -0
- package/build/importer/components/Root/index.d.ts +10 -0
- package/build/importer/components/StepLayout/index.d.ts +18 -0
- package/build/importer/components/Stepper/hooks/useStepper.d.ts +2 -0
- package/build/importer/components/Stepper/index.d.ts +2 -0
- package/build/importer/components/Stepper/types/index.d.ts +14 -0
- package/build/importer/components/Table/index.d.ts +9 -0
- package/build/importer/components/ToggleFilter/index.d.ts +3 -0
- package/build/importer/components/ToggleFilter/types/index.d.ts +11 -0
- package/build/importer/components/Tooltip/index.d.ts +2 -0
- package/build/importer/components/Tooltip/types/index.d.ts +11 -0
- package/build/importer/components/UploaderWrapper/NativeDropzone.d.ts +11 -0
- package/build/importer/components/UploaderWrapper/UploaderWrapper.d.ts +2 -0
- package/build/importer/components/UploaderWrapper/types/index.d.ts +2 -0
- package/build/importer/components/VirtualTable/index.d.ts +17 -0
- package/build/importer/components/ui/alert.d.ts +10 -0
- package/build/importer/components/ui/button.d.ts +12 -0
- package/build/importer/components/ui/card.d.ts +19 -0
- package/build/importer/components/ui/checkbox.d.ts +7 -0
- package/build/importer/components/ui/dialog.d.ts +39 -0
- package/build/importer/components/ui/flex.d.ts +23 -0
- package/build/importer/components/ui/input.d.ts +6 -0
- package/build/importer/components/ui/select.d.ts +13 -0
- package/build/importer/components/ui/switch.d.ts +7 -0
- package/build/importer/components/ui/toast.d.ts +23 -0
- package/build/importer/components/ui/toaster.d.ts +1 -0
- package/build/importer/components/ui/tooltip.d.ts +20 -0
- package/build/importer/components/ui/use-toast.d.ts +46 -0
- package/build/importer/features/complete/index.d.ts +2 -0
- package/build/importer/features/complete/types/index.d.ts +5 -0
- package/build/importer/features/configure-import/index.d.ts +13 -0
- package/build/importer/features/configure-import/types/index.d.ts +13 -0
- package/build/importer/features/main/hooks/useMutableLocalStorage.d.ts +1 -0
- package/build/importer/features/main/hooks/useStepNavigation.d.ts +17 -0
- package/build/importer/features/main/index.d.ts +2 -0
- package/build/importer/features/main/types/index.d.ts +16 -0
- package/build/importer/features/map-columns/components/DropDownFields.d.ts +21 -0
- package/build/importer/features/map-columns/hooks/useMapColumnsTable.d.ts +16 -0
- package/build/importer/features/map-columns/index.d.ts +2 -0
- package/build/importer/features/map-columns/types/index.d.ts +16 -0
- package/build/importer/features/row-selection/index.d.ts +2 -0
- package/build/importer/features/row-selection/types/index.d.ts +8 -0
- package/build/importer/features/uploader/hooks/useTemplateTable.d.ts +10 -0
- package/build/importer/features/uploader/index.d.ts +2 -0
- package/build/importer/features/uploader/types/index.d.ts +9 -0
- package/build/importer/features/validation/Validation.d.ts +2 -0
- package/build/importer/features/validation/components/TransformModal.d.ts +18 -0
- package/build/importer/features/validation/components/TransformPanel.d.ts +18 -0
- package/build/importer/features/validation/index.d.ts +1 -0
- package/build/importer/features/validation/types.d.ts +32 -0
- package/build/importer/hooks/useClickOutside.d.ts +1 -0
- package/build/importer/hooks/useCustomStyles.d.ts +1 -0
- package/build/importer/hooks/useEventListener.d.ts +4 -0
- package/build/importer/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
- package/build/importer/hooks/useRect.d.ts +12 -0
- package/build/importer/hooks/useWindowSize.d.ts +1 -0
- package/build/importer/providers/Theme.d.ts +10 -0
- package/build/importer/providers/index.d.ts +5 -0
- package/build/importer/providers/types/index.d.ts +10 -0
- package/build/importer/services/api.d.ts +1 -0
- package/build/importer/services/mapping.d.ts +31 -0
- package/build/importer/services/transformation.d.ts +70 -0
- package/build/importer/settings/theme/colors.d.ts +4 -0
- package/build/importer/settings/theme/index.d.ts +2 -0
- package/build/importer/settings/theme/sizes.d.ts +7 -0
- package/build/importer/stores/theme.d.ts +17 -0
- package/build/importer/theme/index.d.ts +8 -0
- package/build/importer/theme/presets.d.ts +314 -0
- package/build/importer/theme/runtime.d.ts +66 -0
- package/build/importer/theme/styles.d.ts +120 -0
- package/build/importer/types/index.d.ts +9 -0
- package/build/importer/utils/colorUtils.d.ts +48 -0
- package/build/importer/utils/errorAnalysis.d.ts +25 -0
- package/build/importer/utils/getStringLengthOfChildren.d.ts +2 -0
- package/build/importer/utils/stringSimilarity.d.ts +1 -0
- package/build/importer/utils/template.d.ts +2 -0
- package/build/importer/utils/themeUtils.d.ts +24 -0
- package/build/importer/utils/utils.d.ts +19 -0
- package/build/index.d.ts +6 -0
- package/build/index.dev.d.ts +1 -0
- package/build/js.d.ts +12 -0
- package/build/preact/importer/components/ui/use-toast.d.ts +1 -1
- package/build/preact/index.esm.js +2053 -2231
- package/build/preact/index.esm.js.map +1 -1
- package/build/preact/index.js +30 -30
- package/build/preact/index.js.map +1 -1
- package/build/preact/utils/injectStyles.d.ts +14 -0
- package/build/react/components/Modal/index.d.ts +12 -0
- package/build/react/importer/components/Table/types/index.d.ts +42 -0
- package/build/react/importer/components/ui/alert.d.ts +4 -1
- package/build/react/importer/components/ui/tooltip.d.ts +6 -2
- package/build/react/index.d.ts +1 -0
- package/build/react/index.esm.js +3993 -3803
- package/build/react/index.esm.js.map +1 -1
- package/build/react/index.js +31 -31
- package/build/react/index.js.map +1 -1
- package/build/services/api.d.ts +50 -0
- package/build/services/apiClient.d.ts +55 -0
- package/build/settings/defaults.d.ts +3 -0
- package/build/shims/react-compat-shim.d.ts +2 -0
- package/build/shims/react-hooks-shim.d.ts +2 -0
- package/build/styles.d.ts +1 -0
- package/build/types/index.d.ts +132 -0
- package/build/types/theme.d.ts +153 -0
- package/build/utils/cn.d.ts +6 -0
- package/build/validation/transformationStages.d.ts +26 -0
- package/build/validation/transformer.d.ts +17 -0
- package/build/validation/validator.d.ts +23 -0
- package/package.json +2 -2
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export function createApi(backendUrl: any, importerKey: any): {
|
|
2
|
+
auth: {
|
|
3
|
+
/**
|
|
4
|
+
* Login to get access token
|
|
5
|
+
* @param {string} email - User email
|
|
6
|
+
* @param {string} password - User password
|
|
7
|
+
* @returns {Promise<Object>} - Response with access token
|
|
8
|
+
*/
|
|
9
|
+
login: (email: string, password: string) => Promise<Object>;
|
|
10
|
+
/**
|
|
11
|
+
* Get current user information
|
|
12
|
+
* @param {string} token - Access token
|
|
13
|
+
* @returns {Promise<Object>} - User information
|
|
14
|
+
*/
|
|
15
|
+
getCurrentUser: (token: string) => Promise<Object>;
|
|
16
|
+
};
|
|
17
|
+
schema: {
|
|
18
|
+
/**
|
|
19
|
+
* Get all schemas
|
|
20
|
+
* @param {string} token - Access token
|
|
21
|
+
* @returns {Promise<Array>} - List of schemas
|
|
22
|
+
*/
|
|
23
|
+
getSchemas: (token: string) => Promise<any[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Get schema template for CSV importer
|
|
26
|
+
* @param {string} token - Access token
|
|
27
|
+
* @param {number} schemaId - Schema ID
|
|
28
|
+
* @returns {Promise<Object>} - Schema template
|
|
29
|
+
*/
|
|
30
|
+
getSchemaTemplate: (token: string, schemaId: number) => Promise<Object>;
|
|
31
|
+
};
|
|
32
|
+
import: {
|
|
33
|
+
/**
|
|
34
|
+
* Process CSV data from the frontend importer
|
|
35
|
+
* @param {string} token - Access token
|
|
36
|
+
* @param {number} schemaId - Schema ID
|
|
37
|
+
* @param {Object} importData - Data from CSV importer
|
|
38
|
+
* @returns {Promise<Object>} - Import job information
|
|
39
|
+
*/
|
|
40
|
+
processCSVData: (token: string, schemaId: number, importData: Object) => Promise<Object>;
|
|
41
|
+
/**
|
|
42
|
+
* Get import job status
|
|
43
|
+
* @param {string} token - Access token
|
|
44
|
+
* @param {number} jobId - Import job ID
|
|
45
|
+
* @returns {Promise<Object>} - Import job status
|
|
46
|
+
*/
|
|
47
|
+
getImportJobStatus: (token: string, jobId: number) => Promise<Object>;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export default createApi;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export default createApiMethods;
|
|
2
|
+
/**
|
|
3
|
+
* Authentication API
|
|
4
|
+
*/
|
|
5
|
+
export function createApiMethods(backendUrl: any, importerKey: any): {
|
|
6
|
+
client: any;
|
|
7
|
+
auth: {
|
|
8
|
+
/**
|
|
9
|
+
* Login to get access token
|
|
10
|
+
* @param {string} email - User email
|
|
11
|
+
* @param {string} password - User password
|
|
12
|
+
* @returns {Promise<Object>} - Response with access token
|
|
13
|
+
*/
|
|
14
|
+
login: (email: string, password: string) => Promise<Object>;
|
|
15
|
+
/**
|
|
16
|
+
* Logout the current user
|
|
17
|
+
*/
|
|
18
|
+
logout: () => Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Get current user information
|
|
21
|
+
* @returns {Promise<Object>} - User information
|
|
22
|
+
*/
|
|
23
|
+
getCurrentUser: () => Promise<Object>;
|
|
24
|
+
};
|
|
25
|
+
schema: {
|
|
26
|
+
/**
|
|
27
|
+
* Get all schemas
|
|
28
|
+
* @returns {Promise<Array>} - List of schemas
|
|
29
|
+
*/
|
|
30
|
+
getSchemas: () => Promise<any[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Get schema template for CSV importer
|
|
33
|
+
* @param {number} schemaId - Schema ID
|
|
34
|
+
* @returns {Promise<Object>} - Schema template
|
|
35
|
+
*/
|
|
36
|
+
getSchemaTemplate: (schemaId: number) => Promise<Object>;
|
|
37
|
+
};
|
|
38
|
+
import: {
|
|
39
|
+
/**
|
|
40
|
+
* Process CSV data from the frontend importer
|
|
41
|
+
* @param {number} schemaId - Schema ID
|
|
42
|
+
* @param {Object} importData - Data from CSV importer
|
|
43
|
+
* @returns {Promise<Object>} - Import job information
|
|
44
|
+
*/
|
|
45
|
+
processCSVData: (schemaId: number, importData: Object) => Promise<Object>;
|
|
46
|
+
/**
|
|
47
|
+
* Get import job status
|
|
48
|
+
* @param {number} jobId - Import job ID
|
|
49
|
+
* @returns {Promise<Object>} - Import job status
|
|
50
|
+
*/
|
|
51
|
+
getImportJobStatus: (jobId: number) => Promise<Object>;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
export function createApiClient(backendUrl: any, importerKey: any): any;
|
|
55
|
+
export function setupInterceptors(apiClient: any, baseUrl: any): any;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { createPortal } from "react-dom";
|
|
2
|
+
export { Component, PureComponent, memo, createElement, cloneElement, isValidElement, createContext, forwardRef, lazy, Suspense, Fragment, StrictMode, Profiler, useState, useEffect, useContext, useReducer, useCallback, useMemo, useRef, useImperativeHandle, useLayoutEffect, useDebugValue, useTransition, useDeferredValue, useId, useSyncExternalStore, Children, version, default } from "react";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const importcsvStyles: string;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
export interface Column {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
type?: 'string' | 'number' | 'email' | 'date' | 'phone' | 'select';
|
|
5
|
+
validators?: Validator[];
|
|
6
|
+
transformations?: Transformer[];
|
|
7
|
+
options?: string[];
|
|
8
|
+
description?: string;
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
}
|
|
11
|
+
export type Validator = {
|
|
12
|
+
type: 'required';
|
|
13
|
+
message?: string;
|
|
14
|
+
} | {
|
|
15
|
+
type: 'unique';
|
|
16
|
+
message?: string;
|
|
17
|
+
} | {
|
|
18
|
+
type: 'regex';
|
|
19
|
+
pattern: string;
|
|
20
|
+
message?: string;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'min';
|
|
23
|
+
value: number;
|
|
24
|
+
message?: string;
|
|
25
|
+
} | {
|
|
26
|
+
type: 'max';
|
|
27
|
+
value: number;
|
|
28
|
+
message?: string;
|
|
29
|
+
} | {
|
|
30
|
+
type: 'min_length';
|
|
31
|
+
value: number;
|
|
32
|
+
message?: string;
|
|
33
|
+
} | {
|
|
34
|
+
type: 'max_length';
|
|
35
|
+
value: number;
|
|
36
|
+
message?: string;
|
|
37
|
+
};
|
|
38
|
+
export type TransformationStage = 'pre' | 'post';
|
|
39
|
+
export type Transformer = {
|
|
40
|
+
type: 'trim';
|
|
41
|
+
stage?: TransformationStage;
|
|
42
|
+
} | {
|
|
43
|
+
type: 'uppercase';
|
|
44
|
+
stage?: TransformationStage;
|
|
45
|
+
} | {
|
|
46
|
+
type: 'lowercase';
|
|
47
|
+
stage?: TransformationStage;
|
|
48
|
+
} | {
|
|
49
|
+
type: 'capitalize';
|
|
50
|
+
stage?: TransformationStage;
|
|
51
|
+
} | {
|
|
52
|
+
type: 'remove_special_chars';
|
|
53
|
+
stage?: TransformationStage;
|
|
54
|
+
} | {
|
|
55
|
+
type: 'normalize_phone';
|
|
56
|
+
stage?: TransformationStage;
|
|
57
|
+
} | {
|
|
58
|
+
type: 'normalize_date';
|
|
59
|
+
format?: string;
|
|
60
|
+
stage?: TransformationStage;
|
|
61
|
+
} | {
|
|
62
|
+
type: 'default';
|
|
63
|
+
value: string;
|
|
64
|
+
stage?: TransformationStage;
|
|
65
|
+
} | {
|
|
66
|
+
type: 'replace';
|
|
67
|
+
find: string;
|
|
68
|
+
replace: string;
|
|
69
|
+
stage?: TransformationStage;
|
|
70
|
+
} | {
|
|
71
|
+
type: 'custom';
|
|
72
|
+
fn: (value: any) => any;
|
|
73
|
+
stage?: TransformationStage;
|
|
74
|
+
};
|
|
75
|
+
export interface ColumnMapping {
|
|
76
|
+
id: string;
|
|
77
|
+
label?: string;
|
|
78
|
+
include: boolean;
|
|
79
|
+
selected?: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface ColumnMappingDictionary {
|
|
82
|
+
[uploadColumnIndex: number]: ColumnMapping;
|
|
83
|
+
}
|
|
84
|
+
type ModalParams = {
|
|
85
|
+
isModal?: boolean;
|
|
86
|
+
modalIsOpen?: boolean;
|
|
87
|
+
modalOnCloseTriggered?: () => void;
|
|
88
|
+
modalCloseOnOutsideClick?: boolean;
|
|
89
|
+
};
|
|
90
|
+
type CustomTranslationResource = {
|
|
91
|
+
[language: string]: {
|
|
92
|
+
[key: string]: string;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
import { ThemeConfig } from './theme';
|
|
96
|
+
export type CSVImporterProps = {
|
|
97
|
+
columns?: Column[];
|
|
98
|
+
importerKey?: string;
|
|
99
|
+
onComplete?: (data: any) => void;
|
|
100
|
+
backendUrl?: string;
|
|
101
|
+
user?: Record<string, any>;
|
|
102
|
+
metadata?: Record<string, any>;
|
|
103
|
+
theme?: ThemeConfig | 'default' | 'minimal' | 'modern' | 'compact' | 'dark';
|
|
104
|
+
darkMode?: boolean;
|
|
105
|
+
primaryColor?: string;
|
|
106
|
+
className?: string;
|
|
107
|
+
customStyles?: Record<string, string> | string;
|
|
108
|
+
classNames?: {
|
|
109
|
+
root?: string;
|
|
110
|
+
modal?: string;
|
|
111
|
+
header?: string;
|
|
112
|
+
stepper?: string;
|
|
113
|
+
content?: string;
|
|
114
|
+
footer?: string;
|
|
115
|
+
button?: string;
|
|
116
|
+
input?: string;
|
|
117
|
+
table?: string;
|
|
118
|
+
dropzone?: string;
|
|
119
|
+
};
|
|
120
|
+
showDownloadTemplateButton?: boolean;
|
|
121
|
+
skipHeaderRowSelection?: boolean;
|
|
122
|
+
waitOnComplete?: boolean;
|
|
123
|
+
invalidRowHandling?: 'include' | 'exclude' | 'block';
|
|
124
|
+
includeUnmatchedColumns?: boolean;
|
|
125
|
+
language?: string;
|
|
126
|
+
customTranslations?: CustomTranslationResource;
|
|
127
|
+
demoData?: {
|
|
128
|
+
fileName: string;
|
|
129
|
+
csvContent: string;
|
|
130
|
+
};
|
|
131
|
+
} & ModalParams;
|
|
132
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme configuration types for CSV Importer
|
|
3
|
+
*/
|
|
4
|
+
export interface ThemeConfig {
|
|
5
|
+
colors?: {
|
|
6
|
+
primary?: string;
|
|
7
|
+
primaryHover?: string;
|
|
8
|
+
primaryForeground?: string;
|
|
9
|
+
secondary?: string;
|
|
10
|
+
secondaryHover?: string;
|
|
11
|
+
secondaryForeground?: string;
|
|
12
|
+
background?: string;
|
|
13
|
+
foreground?: string;
|
|
14
|
+
card?: string;
|
|
15
|
+
cardForeground?: string;
|
|
16
|
+
border?: string;
|
|
17
|
+
input?: string;
|
|
18
|
+
ring?: string;
|
|
19
|
+
muted?: string;
|
|
20
|
+
mutedForeground?: string;
|
|
21
|
+
accent?: string;
|
|
22
|
+
accentForeground?: string;
|
|
23
|
+
destructive?: string;
|
|
24
|
+
destructiveForeground?: string;
|
|
25
|
+
success?: string;
|
|
26
|
+
successForeground?: string;
|
|
27
|
+
warning?: string;
|
|
28
|
+
warningForeground?: string;
|
|
29
|
+
info?: string;
|
|
30
|
+
infoForeground?: string;
|
|
31
|
+
};
|
|
32
|
+
typography?: {
|
|
33
|
+
fontFamily?: string;
|
|
34
|
+
fontFamilyMono?: string;
|
|
35
|
+
fontSize?: {
|
|
36
|
+
xs?: string;
|
|
37
|
+
sm?: string;
|
|
38
|
+
base?: string;
|
|
39
|
+
lg?: string;
|
|
40
|
+
xl?: string;
|
|
41
|
+
'2xl'?: string;
|
|
42
|
+
'3xl'?: string;
|
|
43
|
+
};
|
|
44
|
+
fontWeight?: {
|
|
45
|
+
light?: number;
|
|
46
|
+
normal?: number;
|
|
47
|
+
medium?: number;
|
|
48
|
+
semibold?: number;
|
|
49
|
+
bold?: number;
|
|
50
|
+
};
|
|
51
|
+
lineHeight?: {
|
|
52
|
+
tight?: string;
|
|
53
|
+
normal?: string;
|
|
54
|
+
relaxed?: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
spacing?: {
|
|
58
|
+
xs?: string;
|
|
59
|
+
sm?: string;
|
|
60
|
+
md?: string;
|
|
61
|
+
lg?: string;
|
|
62
|
+
xl?: string;
|
|
63
|
+
'2xl'?: string;
|
|
64
|
+
'3xl'?: string;
|
|
65
|
+
};
|
|
66
|
+
borders?: {
|
|
67
|
+
radius?: {
|
|
68
|
+
none?: string;
|
|
69
|
+
sm?: string;
|
|
70
|
+
md?: string;
|
|
71
|
+
lg?: string;
|
|
72
|
+
xl?: string;
|
|
73
|
+
full?: string;
|
|
74
|
+
};
|
|
75
|
+
width?: {
|
|
76
|
+
none?: string;
|
|
77
|
+
thin?: string;
|
|
78
|
+
medium?: string;
|
|
79
|
+
thick?: string;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
components?: {
|
|
83
|
+
button?: {
|
|
84
|
+
padding?: string;
|
|
85
|
+
fontSize?: string;
|
|
86
|
+
fontWeight?: string;
|
|
87
|
+
borderRadius?: string;
|
|
88
|
+
height?: string;
|
|
89
|
+
minWidth?: string;
|
|
90
|
+
};
|
|
91
|
+
input?: {
|
|
92
|
+
padding?: string;
|
|
93
|
+
fontSize?: string;
|
|
94
|
+
borderRadius?: string;
|
|
95
|
+
borderWidth?: string;
|
|
96
|
+
height?: string;
|
|
97
|
+
background?: string;
|
|
98
|
+
};
|
|
99
|
+
modal?: {
|
|
100
|
+
width?: string;
|
|
101
|
+
maxWidth?: string;
|
|
102
|
+
maxHeight?: string;
|
|
103
|
+
padding?: string;
|
|
104
|
+
borderRadius?: string;
|
|
105
|
+
backdropOpacity?: string;
|
|
106
|
+
};
|
|
107
|
+
table?: {
|
|
108
|
+
headerBackground?: string;
|
|
109
|
+
headerForeground?: string;
|
|
110
|
+
rowHoverBackground?: string;
|
|
111
|
+
borderColor?: string;
|
|
112
|
+
cellPadding?: string;
|
|
113
|
+
};
|
|
114
|
+
stepper?: {
|
|
115
|
+
activeColor?: string;
|
|
116
|
+
inactiveColor?: string;
|
|
117
|
+
completedColor?: string;
|
|
118
|
+
lineColor?: string;
|
|
119
|
+
dotSize?: string;
|
|
120
|
+
};
|
|
121
|
+
dropzone?: {
|
|
122
|
+
borderStyle?: string;
|
|
123
|
+
borderColor?: string;
|
|
124
|
+
borderColorHover?: string;
|
|
125
|
+
backgroundColor?: string;
|
|
126
|
+
backgroundColorHover?: string;
|
|
127
|
+
padding?: string;
|
|
128
|
+
borderRadius?: string;
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
shadows?: {
|
|
132
|
+
sm?: string;
|
|
133
|
+
md?: string;
|
|
134
|
+
lg?: string;
|
|
135
|
+
xl?: string;
|
|
136
|
+
};
|
|
137
|
+
animations?: {
|
|
138
|
+
duration?: {
|
|
139
|
+
fast?: string;
|
|
140
|
+
normal?: string;
|
|
141
|
+
slow?: string;
|
|
142
|
+
};
|
|
143
|
+
easing?: string;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export declare const defaultTheme: ThemeConfig;
|
|
147
|
+
export declare const presetThemes: {
|
|
148
|
+
default: ThemeConfig;
|
|
149
|
+
minimal: ThemeConfig;
|
|
150
|
+
modern: ThemeConfig;
|
|
151
|
+
compact: ThemeConfig;
|
|
152
|
+
dark: ThemeConfig;
|
|
153
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transformation stage definitions for smart auto-detection
|
|
3
|
+
*
|
|
4
|
+
* Pre-validation transformations clean and normalize data before validation rules are applied.
|
|
5
|
+
* Post-validation transformations enrich and format data after validation passes.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Transformations that should run BEFORE validation
|
|
9
|
+
* These typically clean or normalize input to prepare it for validation
|
|
10
|
+
*/
|
|
11
|
+
export declare const PRE_VALIDATION_TRANSFORMS: readonly ["trim", "uppercase", "lowercase", "remove_special_chars", "normalize_phone", "normalize_date"];
|
|
12
|
+
/**
|
|
13
|
+
* Transformations that should run AFTER validation
|
|
14
|
+
* These typically format, enrich, or provide defaults for valid data
|
|
15
|
+
*/
|
|
16
|
+
export declare const POST_VALIDATION_TRANSFORMS: readonly ["default", "capitalize", "replace", "custom"];
|
|
17
|
+
export type PreValidationTransform = typeof PRE_VALIDATION_TRANSFORMS[number];
|
|
18
|
+
export type PostValidationTransform = typeof POST_VALIDATION_TRANSFORMS[number];
|
|
19
|
+
/**
|
|
20
|
+
* Check if a transformation type should run before validation
|
|
21
|
+
*/
|
|
22
|
+
export declare function isPreValidationTransform(type: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a transformation type should run after validation
|
|
25
|
+
*/
|
|
26
|
+
export declare function isPostValidationTransform(type: string): boolean;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Transformer } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Apply transformations to a value
|
|
4
|
+
* @param value The value to transform
|
|
5
|
+
* @param transformations Array of transformations to apply
|
|
6
|
+
* @returns Transformed value
|
|
7
|
+
*/
|
|
8
|
+
export declare function applyTransformations(value: any, transformations?: Transformer[]): any;
|
|
9
|
+
/**
|
|
10
|
+
* Categorize transformations into pre-validation and post-validation stages
|
|
11
|
+
* @param transformations Array of transformations to categorize
|
|
12
|
+
* @returns Object with pre and post transformation arrays
|
|
13
|
+
*/
|
|
14
|
+
export declare function categorizeTransformations(transformations?: Transformer[]): {
|
|
15
|
+
pre: Transformer[];
|
|
16
|
+
post: Transformer[];
|
|
17
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Column } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Validates a single value against a column's validators
|
|
4
|
+
* @param value The value to validate
|
|
5
|
+
* @param column The column definition with validators
|
|
6
|
+
* @returns Error message if validation fails, null if valid
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateColumn(value: any, column: Column): string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Validates uniqueness across all rows for a column
|
|
11
|
+
* @param rows All data rows
|
|
12
|
+
* @param columnIndex The column index to check
|
|
13
|
+
* @param column The column definition
|
|
14
|
+
* @returns Array of row indices that have duplicate values
|
|
15
|
+
*/
|
|
16
|
+
export declare function validateUniqueness(rows: any[][], columnIndex: number, column: Column): number[];
|
|
17
|
+
/**
|
|
18
|
+
* Batch validation for all rows
|
|
19
|
+
* @param rows Data rows to validate
|
|
20
|
+
* @param columns Column definitions
|
|
21
|
+
* @returns Validation results with errors per cell
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateBatch(rows: any[][], columns: Column[]): Map<string, string>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@importcsv/react",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.4",
|
|
4
|
+
"description": "AI-powered CSV importer for React. Smart column mapping with OpenAI, natural language transformations. Self-hosted.",
|
|
5
5
|
"main": "build/react/index.js",
|
|
6
6
|
"module": "build/react/index.esm.js",
|
|
7
7
|
"exports": {
|