UNPKG

@ulb-darmstadt/shacl-form

Version:
36 lines (32 loc) 1.18 kB
import { PREFIX_RDFS } from './constants' import { Config } from './config' import { findObjectValueByPredicate } from './util' export function createShaclGroup(groupSubject: string, config: Config): HTMLElement { const group = document.createElement('div') group.dataset['subject'] = groupSubject group.classList.add('shacl-group') let name = groupSubject const quads = config.shapesGraph.getQuads(groupSubject, null, null, null) const label = findObjectValueByPredicate(quads, "label", PREFIX_RDFS, config.languages) if (label) { name = label } const order = findObjectValueByPredicate(quads, "order") if (order) { group.style.order = order } const header = document.createElement('h1') header.innerText = name group.appendChild(header) if (config.attributes.collapse !== null) { group.classList.add('collapsible') if (config.attributes.collapse === 'open') { group.classList.add('open') } header.classList.add('activator') header.addEventListener('click', () => { group.classList.toggle('open') }) } return group }