import { LinkTemplate, LinkTemplateResolver } from './props'; import { PLACEHOLDER_LINK_TYPE } from '../data/schema'; export const LINK_SHOW_IRI: LinkTemplate = { renderLink: link => ({ properties: [{ position: 0.5, attrs: { text: { text: [{ value: link.typeId, language: '', }], fill: 'gray', 'font-size': 12, 'font-weight': 'lighter', }, }, }], }), }; const LINK_SUB_CLASS_OF: LinkTemplate = { markerTarget: { fill: '#f8a485', stroke: '#cf8e76', }, renderLink: () => ({ connection: { stroke: '#f8a485', 'stroke-width': 2, }, }), }; const LINK_DOMAIN: LinkTemplate = { markerTarget: { fill: '#34c7f3', stroke: '#38b5db', }, renderLink: () => ({ connection: { stroke: '#34c7f3', 'stroke-width': 2, }, }), }; const LINK_RANGE: LinkTemplate = { markerTarget: { fill: '#34c7f3', stroke: '#38b5db', }, renderLink: () => ({ connection: { stroke: '#34c7f3', 'stroke-width': 2, }, }), }; const LINK_TYPE_OF: LinkTemplate = { markerTarget: { fill: '#8cd965', stroke: '#5b9a3b', }, renderLink: () => ({ connection: { stroke: '#8cd965', 'stroke-width': 2, }, }), }; export const DefaultLinkTemplateBundle: LinkTemplateResolver = type => { if (type === 'http://www.w3.org/2000/01/rdf-schema#subClassOf') { return LINK_SUB_CLASS_OF; } else if (type === 'http://www.w3.org/2000/01/rdf-schema#domain') { return LINK_DOMAIN; } else if (type === 'http://www.w3.org/2000/01/rdf-schema#range') { return LINK_RANGE; } else if (type === 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type') { return LINK_TYPE_OF; } else if (type === PLACEHOLDER_LINK_TYPE) { return {markerTarget: {fill: 'none'}}; } else { return undefined; } };