🚨 Latest Research:Tanstack npm Packages Compromised in Ongoing Mini Shai-Hulud Supply-Chain Attack.Learn More
Socket
Book a DemoSign in
Socket

@solidexpert/csv-importer-angular

Package Overview
Dependencies
Maintainers
2
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@solidexpert/csv-importer-angular - npm Package Compare versions

Comparing version
19.0.19
to
20.0.22
+170
-5
index.d.ts

@@ -1,5 +0,170 @@

/**
* Generated bundle index. Do not edit.
*/
/// <amd-module name="@solidexpert/csv-importer-angular" />
export * from './public-api';
import * as i0 from '@angular/core';
import { OnInit, OnChanges, AfterViewInit, EventEmitter, ElementRef, SimpleChanges } from '@angular/core';
interface Template {
columns: TemplateColumn[];
}
interface TemplateColumn {
name: string;
key: string;
description?: string;
required?: boolean;
suggested_mappings?: string[];
multiple?: boolean;
combiner?: (values: string[]) => string;
}
interface UploadColumn {
index: number;
name: string;
sample_data: string[];
}
interface FileRow {
index: number;
values: string[];
}
interface FileData {
fileName: string;
rows: FileRow[];
sheetList: string[];
errors: string[];
}
interface TemplateColumnMapping {
key: string;
include: boolean;
selected?: boolean;
isMultiple?: boolean;
}
interface CSVImporterConfig {
isModal?: boolean;
modalIsOpen?: boolean;
modalCloseOnOutsideClick?: boolean;
template?: Template | string;
darkMode?: boolean;
primaryColor?: string;
className?: string;
showDownloadTemplateButton?: boolean;
skipHeaderRowSelection?: boolean;
language?: string;
customTranslations?: Record<string, Record<string, string>>;
customStyles?: Record<string, string> | string;
}
interface ImportResult {
num_rows: number;
num_columns: number;
error: string | null;
columns: {
key: string;
name: string;
}[];
rows: MappedRow[];
}
interface MappedRow {
index: number;
values: Record<string, string | number>;
}
interface StepConfig {
label: string;
id: string;
disabled?: boolean;
}
declare enum StepEnum {
Upload = 0,
RowSelection = 1,
MapColumns = 2,
Complete = 3
}
interface InputOption {
value: string;
required?: boolean;
multiple?: boolean;
}
interface TableCell {
raw?: string | number | boolean;
content?: string;
tooltip?: string;
}
type TableRow = Record<string, TableCell | string | number | boolean>;
declare class I18nService {
private resources;
private currentLanguage;
get language(): string;
setLanguage(lang: string): void;
addTranslations(lang: string, translations: Record<string, string>): void;
t(key: string, params?: Record<string, string>): string;
static ɵfac: i0.ɵɵFactoryDeclaration<I18nService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<I18nService>;
}
type Theme = 'light' | 'dark';
declare class ThemeService {
private currentTheme;
get theme(): Theme;
setTheme(theme: Theme): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
}
declare class CsvImporterComponent implements OnInit, OnChanges, AfterViewInit {
private i18n;
private themeService;
isModal: boolean;
modalIsOpen: boolean;
modalCloseOnOutsideClick: boolean;
template?: Template | string;
darkMode: boolean;
primaryColor: string;
className?: string;
showDownloadTemplateButton: boolean;
skipHeaderRowSelection: boolean;
language: string;
customTranslations?: Record<string, Record<string, string>>;
customStyles?: Record<string, string> | string;
complete: EventEmitter<ImportResult>;
modalClose: EventEmitter<void>;
dialogRef?: ElementRef<HTMLDialogElement>;
StepEnum: typeof StepEnum;
constructor(i18n: I18nService, themeService: ThemeService);
currentStep: StepEnum;
initializationError: string | null;
dataError: string | null;
isSubmitting: boolean;
parsedTemplate: Template;
data: FileData;
selectedHeaderRow: number;
columnMapping: Record<number, TemplateColumnMapping>;
stepperSteps: StepConfig[];
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngAfterViewInit(): void;
private updateDialogState;
private initializeLanguage;
private initializeTheme;
private initializeTemplate;
private initializeSteps;
private applyPrimaryColor;
private applyCustomStyles;
private calculateNextStep;
goNext(): void;
goBack(): void;
reload(): void;
requestClose(): void;
onBackdropClick(event: MouseEvent): void;
onDataError(error: string): void;
onFileUploaded(file: File): void;
onMapColumnsCancel(): void;
onMappingComplete(mapping: Record<number, TemplateColumnMapping>): void;
static ɵfac: i0.ɵɵFactoryDeclaration<CsvImporterComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<CsvImporterComponent, "csv-importer", never, { "isModal": { "alias": "isModal"; "required": false; }; "modalIsOpen": { "alias": "modalIsOpen"; "required": false; }; "modalCloseOnOutsideClick": { "alias": "modalCloseOnOutsideClick"; "required": false; }; "template": { "alias": "template"; "required": false; }; "darkMode": { "alias": "darkMode"; "required": false; }; "primaryColor": { "alias": "primaryColor"; "required": false; }; "className": { "alias": "className"; "required": false; }; "showDownloadTemplateButton": { "alias": "showDownloadTemplateButton"; "required": false; }; "skipHeaderRowSelection": { "alias": "skipHeaderRowSelection"; "required": false; }; "language": { "alias": "language"; "required": false; }; "customTranslations": { "alias": "customTranslations"; "required": false; }; "customStyles": { "alias": "customStyles"; "required": false; }; }, { "complete": "complete"; "modalClose": "modalClose"; }, never, never, true, never>;
}
declare const enTranslations: Record<string, string>;
declare const esTranslations: Record<string, string>;
declare const frTranslations: Record<string, string>;
declare const deTranslations: Record<string, string>;
export { CsvImporterComponent, I18nService, StepEnum, deTranslations, enTranslations, esTranslations, frTranslations };
export type { CSVImporterConfig, FileData, FileRow, ImportResult, InputOption, MappedRow, StepConfig, TableCell, TableRow, Template, TemplateColumn, TemplateColumnMapping, UploadColumn };
+4
-4
{
"name": "@solidexpert/csv-importer-angular",
"version": "19.0.19",
"version": "20.0.22",
"description": "Open-source CSV, TSV, and XLS/XLSX file importer for Angular",

@@ -9,5 +9,5 @@ "publishConfig": {

"peerDependencies": {
"@angular/common": ">=19.0.0",
"@angular/core": ">=19.0.0",
"@angular/forms": ">=19.0.0",
"@angular/common": ">=20.0.0",
"@angular/core": ">=20.0.0",
"@angular/forms": ">=20.0.0",
"rxjs": ">=7.0.0"

@@ -14,0 +14,0 @@ },

import { EventEmitter } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
export declare class CheckboxComponent implements ControlValueAccessor {
label?: string;
checked: boolean;
disabled: boolean;
checkedChange: EventEmitter<boolean>;
private onChange;
private onTouched;
onCheckChange(event: Event): void;
writeValue(value: boolean): void;
registerOnChange(fn: (value: boolean) => void): void;
registerOnTouched(fn: () => void): void;
setDisabledState(isDisabled: boolean): void;
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "csv-checkbox", never, { "label": { "alias": "label"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
}
import * as i0 from "@angular/core";
export declare class ErrorsComponent {
error?: string | null;
centered: boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<ErrorsComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<ErrorsComponent, "csv-errors", never, { "error": { "alias": "error"; "required": false; }; "centered": { "alias": "centered"; "required": false; }; }, {}, never, never, true, never>;
}
import { ElementRef, EventEmitter } from '@angular/core';
import { InputOption } from '../../types';
import * as i0 from "@angular/core";
export declare class SelectComponent {
options: Record<string, InputOption>;
value: string;
placeholder: string;
small: boolean;
disabled: boolean;
valueChange: EventEmitter<string>;
inputRef: ElementRef;
optionsRef: ElementRef;
isOpen: boolean;
dropdownPosition: {
top: number;
left: number;
width: number;
};
get optionKeys(): string[];
get selectedKey(): string;
onDocumentClick(event: MouseEvent): void;
toggleOpen(): void;
selectOption(optionValue: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "csv-select", never, { "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "small": { "alias": "small"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
}
import { EventEmitter } from '@angular/core';
import { StepConfig } from '../../types';
import * as i0 from "@angular/core";
export declare class StepperComponent {
steps: StepConfig[];
current: number;
clickable: boolean;
skipHeader: boolean;
currentChange: EventEmitter<number>;
getDisplayNumber(index: number): number;
onStepClick(index: number): void;
static ɵfac: i0.ɵɵFactoryDeclaration<StepperComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<StepperComponent, "csv-stepper", never, { "steps": { "alias": "steps"; "required": false; }; "current": { "alias": "current"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; "skipHeader": { "alias": "skipHeader"; "required": false; }; }, { "currentChange": "currentChange"; }, never, never, true, never>;
}
import { EventEmitter, OnInit, OnChanges, SimpleChanges, ElementRef, AfterViewInit } from '@angular/core';
import { Template, FileData, TemplateColumnMapping, ImportResult, StepConfig, StepEnum } from '../types';
import { I18nService } from '../i18n/i18n.service';
import { ThemeService } from '../services/theme.service';
import * as i0 from "@angular/core";
export declare class CsvImporterComponent implements OnInit, OnChanges, AfterViewInit {
private i18n;
private themeService;
isModal: boolean;
modalIsOpen: boolean;
modalCloseOnOutsideClick: boolean;
template?: Template | string;
darkMode: boolean;
primaryColor: string;
className?: string;
showDownloadTemplateButton: boolean;
skipHeaderRowSelection: boolean;
language: string;
customTranslations?: Record<string, Record<string, string>>;
customStyles?: Record<string, string> | string;
complete: EventEmitter<ImportResult>;
modalClose: EventEmitter<void>;
dialogRef?: ElementRef<HTMLDialogElement>;
StepEnum: typeof StepEnum;
constructor(i18n: I18nService, themeService: ThemeService);
currentStep: StepEnum;
initializationError: string | null;
dataError: string | null;
isSubmitting: boolean;
parsedTemplate: Template;
data: FileData;
selectedHeaderRow: number;
columnMapping: Record<number, TemplateColumnMapping>;
stepperSteps: StepConfig[];
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngAfterViewInit(): void;
private updateDialogState;
private initializeLanguage;
private initializeTheme;
private initializeTemplate;
private initializeSteps;
private applyPrimaryColor;
private applyCustomStyles;
private calculateNextStep;
goNext(): void;
goBack(): void;
reload(): void;
requestClose(): void;
onBackdropClick(event: MouseEvent): void;
onDataError(error: string): void;
onFileUploaded(file: File): void;
onMapColumnsCancel(): void;
onMappingComplete(mapping: Record<number, TemplateColumnMapping>): void;
static ɵfac: i0.ɵɵFactoryDeclaration<CsvImporterComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<CsvImporterComponent, "csv-importer", never, { "isModal": { "alias": "isModal"; "required": false; }; "modalIsOpen": { "alias": "modalIsOpen"; "required": false; }; "modalCloseOnOutsideClick": { "alias": "modalCloseOnOutsideClick"; "required": false; }; "template": { "alias": "template"; "required": false; }; "darkMode": { "alias": "darkMode"; "required": false; }; "primaryColor": { "alias": "primaryColor"; "required": false; }; "className": { "alias": "className"; "required": false; }; "showDownloadTemplateButton": { "alias": "showDownloadTemplateButton"; "required": false; }; "skipHeaderRowSelection": { "alias": "skipHeaderRowSelection"; "required": false; }; "language": { "alias": "language"; "required": false; }; "customTranslations": { "alias": "customTranslations"; "required": false; }; "customStyles": { "alias": "customStyles"; "required": false; }; }, { "complete": "complete"; "modalClose": "modalClose"; }, never, never, true, never>;
}
import { EventEmitter } from '@angular/core';
import { I18nService } from '../../i18n/i18n.service';
import * as i0 from "@angular/core";
export declare class CompleteComponent {
private i18n;
isModal: boolean;
reload: EventEmitter<void>;
close: EventEmitter<void>;
constructor(i18n: I18nService);
t(key: string): string;
static ɵfac: i0.ɵɵFactoryDeclaration<CompleteComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<CompleteComponent, "csv-complete", never, { "isModal": { "alias": "isModal"; "required": false; }; }, { "reload": "reload"; "close": "close"; }, never, never, true, never>;
}
import { EventEmitter, OnInit } from '@angular/core';
import { FileData, Template, TemplateColumnMapping, UploadColumn, InputOption } from '../../types';
import { I18nService } from '../../i18n/i18n.service';
import * as i0 from "@angular/core";
export declare class MapColumnsComponent implements OnInit {
private i18n;
template: Template;
data: FileData;
columnMapping: Record<number, TemplateColumnMapping>;
selectedHeaderRow: number;
skipHeaderRowSelection: boolean;
isSubmitting: boolean;
success: EventEmitter<Record<number, TemplateColumnMapping>>;
cancel: EventEmitter<void>;
uploadColumns: UploadColumn[];
constructor(i18n: I18nService);
formValues: Record<number, TemplateColumnMapping>;
templateOptions: Record<string, InputOption>;
error: string | null;
ngOnInit(): void;
t(key: string): string;
private initializeColumns;
private initializeFormValues;
private buildTemplateOptions;
private checkSimilarity;
private isSuggestedMapping;
getFilteredOptions(uploadColumnIndex: number): Record<string, InputOption>;
onTemplateChange(uploadColumnIndex: number, key: string): void;
onIncludeChange(uploadColumnIndex: number, include: boolean): void;
private verifyRequiredColumns;
onSubmit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<MapColumnsComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<MapColumnsComponent, "csv-map-columns", never, { "template": { "alias": "template"; "required": false; }; "data": { "alias": "data"; "required": false; }; "columnMapping": { "alias": "columnMapping"; "required": false; }; "selectedHeaderRow": { "alias": "selectedHeaderRow"; "required": false; }; "skipHeaderRowSelection": { "alias": "skipHeaderRowSelection"; "required": false; }; "isSubmitting": { "alias": "isSubmitting"; "required": false; }; }, { "success": "success"; "cancel": "cancel"; }, never, never, true, never>;
}
import { EventEmitter } from '@angular/core';
import { FileData } from '../../types';
import { I18nService } from '../../i18n/i18n.service';
import * as i0 from "@angular/core";
export declare class RowSelectionComponent {
private i18n;
data: FileData;
selectedHeaderRow: number;
selectedHeaderRowChange: EventEmitter<number>;
success: EventEmitter<void>;
cancel: EventEmitter<void>;
isLoading: boolean;
constructor(i18n: I18nService);
private rowLimit;
private maxColumns;
get displayedRows(): import("../../types").FileRow[];
get hasMultipleExcelSheets(): boolean;
t(key: string): string;
getMultiSheetWarning(): string;
getRowValues(row: {
index: number;
values: string[];
}): string[];
getColumnWidth(): string;
selectRow(index: number): void;
onSubmit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<RowSelectionComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<RowSelectionComponent, "csv-row-selection", never, { "data": { "alias": "data"; "required": false; }; "selectedHeaderRow": { "alias": "selectedHeaderRow"; "required": false; }; }, { "selectedHeaderRowChange": "selectedHeaderRowChange"; "success": "success"; "cancel": "cancel"; }, never, never, true, never>;
}
import { EventEmitter } from '@angular/core';
import { Template } from '../../types';
import { I18nService } from '../../i18n/i18n.service';
import { ThemeService } from '../../services/theme.service';
import * as i0 from "@angular/core";
export declare class UploaderComponent {
private i18n;
private themeService;
template: Template;
skipHeaderRowSelection: boolean;
showDownloadTemplateButton: boolean;
success: EventEmitter<File>;
error: EventEmitter<string>;
isDragActive: boolean;
isLoading: boolean;
constructor(i18n: I18nService, themeService: ThemeService);
get theme(): import("../../services/theme.service").Theme;
t(key: string): string;
onDragOver(event: DragEvent): void;
onDragLeave(event: DragEvent): void;
onDrop(event: DragEvent): void;
onFileSelected(event: Event): void;
private handleFile;
downloadTemplate(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<UploaderComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<UploaderComponent, "csv-uploader", never, { "template": { "alias": "template"; "required": false; }; "skipHeaderRowSelection": { "alias": "skipHeaderRowSelection"; "required": false; }; "showDownloadTemplateButton": { "alias": "showDownloadTemplateButton"; "required": false; }; }, { "success": "success"; "error": "error"; }, never, never, true, never>;
}
import * as i0 from "@angular/core";
export declare class I18nService {
private resources;
private currentLanguage;
get language(): string;
setLanguage(lang: string): void;
addTranslations(lang: string, translations: Record<string, string>): void;
t(key: string, params?: Record<string, string>): string;
static ɵfac: i0.ɵɵFactoryDeclaration<I18nService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<I18nService>;
}
export declare const deTranslations: Record<string, string>;
export declare const enTranslations: Record<string, string>;
export declare const esTranslations: Record<string, string>;
export declare const frTranslations: Record<string, string>;
export * from './en';
export * from './es';
export * from './fr';
export * from './de';
import * as i0 from "@angular/core";
export type Theme = 'light' | 'dark';
export declare class ThemeService {
private currentTheme;
get theme(): Theme;
setTheme(theme: Theme): void;
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
}
export interface Template {
columns: TemplateColumn[];
}
export interface TemplateColumn {
name: string;
key: string;
description?: string;
required?: boolean;
suggested_mappings?: string[];
multiple?: boolean;
combiner?: (values: string[]) => string;
}
export interface UploadColumn {
index: number;
name: string;
sample_data: string[];
}
export interface FileRow {
index: number;
values: string[];
}
export interface FileData {
fileName: string;
rows: FileRow[];
sheetList: string[];
errors: string[];
}
export interface TemplateColumnMapping {
key: string;
include: boolean;
selected?: boolean;
isMultiple?: boolean;
}
export interface CSVImporterConfig {
isModal?: boolean;
modalIsOpen?: boolean;
modalCloseOnOutsideClick?: boolean;
template?: Template | string;
darkMode?: boolean;
primaryColor?: string;
className?: string;
showDownloadTemplateButton?: boolean;
skipHeaderRowSelection?: boolean;
language?: string;
customTranslations?: Record<string, Record<string, string>>;
customStyles?: Record<string, string> | string;
}
export interface ImportResult {
num_rows: number;
num_columns: number;
error: string | null;
columns: {
key: string;
name: string;
}[];
rows: MappedRow[];
}
export interface MappedRow {
index: number;
values: Record<string, string | number>;
}
export interface StepConfig {
label: string;
id: string;
disabled?: boolean;
}
export declare enum StepEnum {
Upload = 0,
RowSelection = 1,
MapColumns = 2,
Complete = 3
}
export interface InputOption {
value: string;
required?: boolean;
multiple?: boolean;
}
export interface TableCell {
raw?: string | number | boolean;
content?: string;
tooltip?: string;
}
export type TableRow = Record<string, TableCell | string | number | boolean>;
export declare function stringsSimilarity(s1: string, s2: string): number;
import { Template } from '../types';
export declare function convertRawTemplate(rawTemplate?: Record<string, unknown> | string): [Template | null, string | null];
export declare function parseObjectOrStringJSON(name: string, param?: Record<string, unknown> | string): string;
export declare function parseObjectOrStringJSONToRecord(name: string, param?: Record<string, unknown> | string): Record<string, unknown>;
export declare function sanitizeKey(input: string): string;
export declare function isValidColor(color: string): boolean;
export declare function expandHex(color: string): string;
export declare function darkenColor(color: string, percent: number): string;
export declare function classes(classList: (string | false | undefined | null)[]): string;
export * from './lib/csv-importer/csv-importer.component';
export * from './lib/types';
export * from './lib/i18n/i18n.service';
export * from './lib/i18n/translations';

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display