42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { IListable } from '@iqser/common-ui';
|
|
|
|
export interface IComponentMapping extends IListable {
|
|
id: string;
|
|
name: string;
|
|
fileName: string;
|
|
version: number;
|
|
columnLabels: string[];
|
|
columnLabelsString: string;
|
|
numberOfLines: number;
|
|
encoding: string;
|
|
delimiter: string;
|
|
}
|
|
|
|
export class ComponentMapping implements IComponentMapping, IListable {
|
|
readonly id: string;
|
|
readonly name: string;
|
|
readonly fileName: string;
|
|
readonly version: number;
|
|
readonly columnLabels: string[];
|
|
readonly columnLabelsString: string;
|
|
readonly numberOfLines: number;
|
|
readonly encoding: string;
|
|
readonly delimiter: string;
|
|
|
|
constructor(componentMapping: IComponentMapping) {
|
|
this.id = componentMapping.id;
|
|
this.name = componentMapping.name;
|
|
this.fileName = componentMapping.fileName;
|
|
this.version = componentMapping.version;
|
|
this.columnLabels = componentMapping.columnLabels;
|
|
this.columnLabelsString = componentMapping.columnLabels?.join(', ');
|
|
this.numberOfLines = componentMapping.numberOfLines;
|
|
this.encoding = componentMapping.encoding;
|
|
this.delimiter = componentMapping.delimiter;
|
|
}
|
|
|
|
get searchKey(): string {
|
|
return this.name;
|
|
}
|
|
}
|