solid-panes
Version:
Solid-compatible Panes: applets and views for the mashlib and databrowser
38 lines (32 loc) • 1.2 kB
text/typescript
import { ns } from 'solid-ui'
import viewAsImage from './viewAsImage'
import viewAsMbox from './viewAsMbox'
/** some builtin simple views **/
export function propertyViews (dom) {
// view that applies to items that are objects of certain properties.
const views = {
properties: [],
defaults: [],
classes: []
} // views
const asImage = viewAsImage(dom)
const asMbox = viewAsMbox(dom)
viewsAddPropertyView(views, ns.foaf('depiction').uri, asImage, true)
viewsAddPropertyView(views, ns.foaf('img').uri, asImage, true)
viewsAddPropertyView(views, ns.foaf('thumbnail').uri, asImage, true)
viewsAddPropertyView(views, ns.foaf('logo').uri, asImage, true)
viewsAddPropertyView(views, ns.schema('image').uri, asImage, true)
viewsAddPropertyView(views, ns.foaf('mbox').uri, asMbox, true)
return views
}
/** add a property view function **/
export function viewsAddPropertyView (views, property, pviewfunc, isDefault) {
if (!views.properties[property]) {
views.properties[property] = []
}
views.properties[property].push(pviewfunc)
if (isDefault) {
// will override an existing default!
views.defaults[property] = pviewfunc
}
} // viewsAddPropertyView