vue-csv-processor
Version:
Vue 3 component library for CSV file processing with encoding detection and preview
135 lines (134 loc) • 4.27 kB
TypeScript
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
/**
* v-model binding for the processed CSV data
*/
modelValue: {
type: ArrayConstructor;
default: () => never[];
};
/**
* Field definitions to map CSV columns to
* Format: { fieldName: { required: true|false, label: 'Display Label' } }
*/
fields: {
type: ObjectConstructor;
required: true;
};
/**
* Custom text overrides
*/
text: {
type: ObjectConstructor;
default: () => {
errors: {
fileRequired: string;
invalidMimeType: string;
encodingError: string;
};
toggleHeaders: string;
submitBtn: string;
fieldColumn: string;
csvColumn: string;
encoding: string;
};
};
/**
* Auto map CSV columns to fields by name
*/
autoMatch: {
type: BooleanConstructor;
default: boolean;
};
/**
* Default encoding to use
*/
defaultEncoding: {
type: StringConstructor;
default: string;
};
}>, {
file: import("vue").Ref<null, null>;
hasHeaders: import("vue").Ref<boolean, boolean>;
parsedData: import("vue").Ref<never[], never[]>;
parsedHeaders: import("vue").Ref<never[], never[]>;
errors: import("vue").Ref<never[], never[]>;
encoding: import("vue").Ref<string, string>;
supportedEncodings: import("vue").Ref<{
value: string;
label: string;
}[], {
value: string;
label: string;
}[] | {
value: string;
label: string;
}[]>;
mapping: {};
rawContent: import("vue").Ref<string, string>;
setFile: (newFile: any) => Promise<void>;
toggleHeaders: () => void;
changeEncoding: (newEncoding: any) => Promise<void>;
mapField: (field: any, column: any) => void;
getSampleData: (rowCount?: number) => never[];
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "file-loaded" | "encoding-changed" | "headers-toggled" | "data-updated" | "mapping-updated")[], "update:modelValue" | "file-loaded" | "encoding-changed" | "headers-toggled" | "data-updated" | "mapping-updated", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
/**
* v-model binding for the processed CSV data
*/
modelValue: {
type: ArrayConstructor;
default: () => never[];
};
/**
* Field definitions to map CSV columns to
* Format: { fieldName: { required: true|false, label: 'Display Label' } }
*/
fields: {
type: ObjectConstructor;
required: true;
};
/**
* Custom text overrides
*/
text: {
type: ObjectConstructor;
default: () => {
errors: {
fileRequired: string;
invalidMimeType: string;
encodingError: string;
};
toggleHeaders: string;
submitBtn: string;
fieldColumn: string;
csvColumn: string;
encoding: string;
};
};
/**
* Auto map CSV columns to fields by name
*/
autoMatch: {
type: BooleanConstructor;
default: boolean;
};
/**
* Default encoding to use
*/
defaultEncoding: {
type: StringConstructor;
default: string;
};
}>> & Readonly<{
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
"onFile-loaded"?: ((...args: any[]) => any) | undefined;
"onEncoding-changed"?: ((...args: any[]) => any) | undefined;
"onHeaders-toggled"?: ((...args: any[]) => any) | undefined;
"onData-updated"?: ((...args: any[]) => any) | undefined;
"onMapping-updated"?: ((...args: any[]) => any) | undefined;
}>, {
text: Record<string, any>;
autoMatch: boolean;
modelValue: unknown[];
defaultEncoding: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;