UNPKG

@ulb-darmstadt/shacl-form

Version:
35 lines (31 loc) 1.2 kB
import { PREFIX_RDFS } from './constants' import { Config } from './config' import { findObjectValueByPredicate } from './util' import { RokitCollapsible } from '@ro-kit/ui-widgets' export function createShaclGroup(groupSubject: string, config: Config): HTMLElement { let name = groupSubject const quads = config.store.getQuads(groupSubject, null, null, null) const label = findObjectValueByPredicate(quads, "label", PREFIX_RDFS, config.languages) if (label) { name = label } let group: HTMLElement if (config.attributes.collapse !== null) { group = new RokitCollapsible() group.classList.add('collapsible'); (group as RokitCollapsible).open = config.attributes.collapse === 'open'; (group as RokitCollapsible).label = name } else { group = document.createElement('div') const header = document.createElement('h1') header.innerText = name group.appendChild(header) } group.dataset['subject'] = groupSubject group.classList.add('shacl-group') const order = findObjectValueByPredicate(quads, "order") if (order) { group.style.order = order } return group }