diff --git a/demo/index.html b/demo/index.html index 5cf74c6..cf7e23e 100644 --- a/demo/index.html +++ b/demo/index.html @@ -6,12 +6,12 @@ <shacl-form> demo - + diff --git a/src/theme.ts b/src/theme.ts index 5d95e3c..48c67d3 100644 --- a/src/theme.ts +++ b/src/theme.ts @@ -5,7 +5,7 @@ import { createInputListEntries, findInstancesOf, findLabel, isURL } from './uti import { ShaclPropertyTemplate } from './property-template' import css from './styles.css' -export type Editor = HTMLElement & { value: string, type?: string, shaclDatatype?: NamedNode, binaryData?: string, checked?: boolean } +export type Editor = HTMLElement & { value: string, type?: string, shaclDatatype?: NamedNode, binaryData?: string, checked?: boolean, disabled?: boolean } export type InputListEntry = { value: Term | string, label?: string } export abstract class Theme { diff --git a/src/themes/default.ts b/src/themes/default.ts index 5bf151e..a501958 100644 --- a/src/themes/default.ts +++ b/src/themes/default.ts @@ -28,6 +28,9 @@ export class DefaultTheme extends Theme { if (template?.nodeKind) { editor.dataset.nodeKind = template.nodeKind.value } + if (template?.hasValue) { + editor.disabled = true + } editor.value = value?.value || template?.defaultValue?.value || '' const labelElem = document.createElement('label') diff --git a/src/themes/material.ts b/src/themes/material.ts index e0c0af1..e3853c8 100644 --- a/src/themes/material.ts +++ b/src/themes/material.ts @@ -32,6 +32,9 @@ export class MaterialTheme extends Theme { if (template?.nodeKind) { editor.dataset.nodeKind = template.nodeKind.value } + if (template?.hasValue) { + editor.disabled = true + } editor.value = value?.value || template?.defaultValue?.value || '' const placeholder = template?.description ? template.description.value : template?.pattern ? template.pattern : null