in seatunnel-ui/src/views/task/synchronization-definition/dag/sidebar/index.tsx [56:147]
render() {
return (
<NCard class={styles['task-container']}>
<NSpace vertical>
<h3>
{this.t('project.synchronization_definition.source_and_sink')}
</h3>
<div
class={styles['task-item']}
draggable='true'
onDragstart={() => this.handleDragstart('source', 'Source')}
>
<NSpace align='center'>
<img class={styles['task-image']} src={SourceImg} />
<span>Source</span>
</NSpace>
<span
class="task-item-info ml-auto inline-block"
title={'Drag Source into Canvas and Double Click to Setup Configurations'}
>
<InfoCircleOutlined style={{width:'17px', height:'17px'}} />
</span>
</div>
<div
class={styles['task-item']}
draggable='true'
onDragstart={() => this.handleDragstart('sink', 'Sink')}
>
<NSpace align='center'>
<img class={styles['task-image']} src={SinkImg} />
<span>Sink</span>
</NSpace>
<span
class="task-item-info ml-auto inline-block"
title={'Drag Sink into Canvas and Double Click to Setup Configurations'}
>
<InfoCircleOutlined style={{width:'17px', height:'17px'}} />
</span>
</div>
{this.transforms.length > 0 && (
<h3>{this.t('project.synchronization_definition.transforms')}</h3>
)}
{this.businessModel === 'data-integration' &&
this.transforms.map((t: any) => {
const item: any = {
name: t.pluginIdentifier.pluginName
}
if (item.name === 'FieldMapper') {
item.icon = FieldMapperImg
} else if (item.name === 'FilterRowKind') {
item.icon = FilterEventTypeImg
} else if (item.name === 'Replace') {
item.icon = ReplaceImg
} else if (item.name === 'MultiFieldSplit') {
item.icon = SplitImg
} else if (item.name === 'Copy') {
item.icon = CopyImg
} else if (item.name === 'Sql') {
item.icon = SqlImg
} else if (item.name === 'JsonPath') {
item.icon = JsonPathImg
}
return (
<div
class={styles['task-item']}
draggable='true'
onDragstart={() =>
this.handleDragstart(
'transform',
t.pluginIdentifier.pluginName
)
}
>
<NSpace align='center'>
<img class={styles['task-image']} src={item.icon} />
<span>{item.name}</span>
</NSpace>
<span
class="task-item-info ml-auto inline-block"
title={'Drag '+ item.name +' into Canvas and Double Click to Setup Configurations'}
>
<InfoCircleOutlined style={{width:'17px', height:'17px'}} />
</span>
</div>
)
})}
</NSpace>
</NCard>
)
}