Visual data mapping components for Angular - drag-and-drop field mapping with transformations, schema editor with JSON Schema export
npm install angular-data-mapperVisual data mapping components for Angular applications. Create field mappings between source and target schemas with drag-and-drop, apply transformations, and define JSON schemas visually.

!Angular
!License
``bash`
npm install @expeed/ngx-data-mapper
`bash`
npm install @angular/cdk @angular/material
`typescript
import { Component } from '@angular/core';
import { DataMapperComponent, JsonSchema, FieldMapping } from '@expeed/ngx-data-mapper';
@Component({
standalone: true,
imports: [DataMapperComponent],
template:
[targetSchema]="targetSchema"
[sampleData]="sampleData"
(mappingsChange)="onMappingsChange($event)">
})
export class MyComponent {
sourceSchema: JsonSchema = {
name: 'Source',
fields: [
{ id: '1', name: 'firstName', type: 'string', path: 'firstName' },
{ id: '2', name: 'lastName', type: 'string', path: 'lastName' },
]
};
targetSchema: JsonSchema = {
name: 'Target',
fields: [
{ id: '1', name: 'fullName', type: 'string', path: 'fullName' },
]
};
sampleData = { firstName: 'John', lastName: 'Doe' };
onMappingsChange(mappings: FieldMapping[]) {
console.log('Mappings:', mappings);
}
}
`
`typescript
import { Component } from '@angular/core';
import { SchemaEditorComponent, SchemaDefinition } from '@expeed/ngx-data-mapper';
@Component({
standalone: true,
imports: [SchemaEditorComponent],
template:
(schemaChange)="onSchemaChange($event)">
})
export class MyComponent {
schema: SchemaDefinition = { name: 'Customer', fields: [] };
onSchemaChange(updated: SchemaDefinition) {
console.log('Schema:', updated);
}
}
`
`css`
data-mapper {
--data-mapper-bg: #f8fafc;
--data-mapper-panel-bg: #ffffff;
--data-mapper-text-primary: #1e293b;
--data-mapper-text-secondary: #64748b;
--data-mapper-accent-primary: #6366f1;
--data-mapper-connector-color: #6366f1;
}
`css`
data-mapper {
--data-mapper-bg: #1e293b;
--data-mapper-panel-bg: #334155;
--data-mapper-text-primary: #f1f5f9;
--data-mapper-text-secondary: #cbd5e1;
--data-mapper-accent-primary: #818cf8;
--data-mapper-connector-color: #818cf8;
}
| Input | Type | Description |
|-------|------|-------------|
| sourceSchema | JsonSchema | Source schema for mapping |targetSchema
| | JsonSchema | Target schema for mapping |sampleData
| | Record | Sample data for preview |
| Output | Type | Description |
|--------|------|-------------|
| mappingsChange | EventEmitter | Emits when mappings change |
| Method | Description |
|--------|-------------|
| importMappings(json: string) | Import mappings from JSON |clearAllMappings()
| | Remove all mappings |
| Input | Type | Description |
|-------|------|-------------|
| schema | SchemaDefinition | Schema to edit |
| Output | Type | Description |
|--------|------|-------------|
| schemaChange | EventEmitter | Emits on any change |
- SchemaEditorComponent
- SchemaTreeComponent
- TransformationPopoverComponent
- ArrayFilterModalComponent
- ArraySelectorModalComponent
- DefaultValuePopoverComponent$3
- MappingService
- TransformationService
- SvgConnectorService
- SchemaParserService$3
- JsonSchema, SchemaField, FieldMapping
- SchemaDefinition, EditorField
- TransformationConfig, ArrayMapping, ArrayFilterConfig
- SchemaDocument, ModelRegistryRequirements
- Angular 21+
- Angular Material 21+
- Angular CDK 21+
Development
`bash
Clone repository
git clone https://github.com/Expeed-Software/angular-data-mapper.git
cd angular-data-mapper
npm installBuild library
npm run build:libStart demo app
npm start
``Apache License 2.0