Skip to content

Commit 39e56f5

Browse files
authored
Display optional blank node as list (#194)
* add isOptionalBlankNode to fieldUtils * use isOptionalBlankNode in FormRenderer.isList this is ugly, but is the least invasive way to do it we could rename isList to something more fitting * do not add default fields in case of optional blank node * simplify condition for createDefaultValueArray by using isOptionalBlankNode * rename isOptionalBlankNode to isOptionalNode * check for sh:NodeShape instead of dash:BlankNodeEditor in isOptionalNode()
1 parent 760a439 commit 39e56f5

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/components/ShaclForm/FormRenderer.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ export default class FormRenderer extends Vue {
135135
}
136136
137137
createDefaultValueArray(field) {
138-
if (field.minCount === 1 || field.maxCount === 1) {
138+
if (field.minCount === 1 || (field.maxCount === 1 && !fieldUtils.isOptionalNode(field))) {
139139
return [this.createDefaultValue(field)]
140140
}
141141
@@ -162,7 +162,7 @@ export default class FormRenderer extends Vue {
162162
}
163163
164164
isList(field) {
165-
return fieldUtils.isList(field)
165+
return fieldUtils.isList(field) || fieldUtils.isOptionalNode(field)
166166
}
167167
168168
canBeRemoved(field) {

src/components/ShaclForm/fieldUtils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ function isRequired(field: FormField): boolean {
3333
return field.minCount > 0
3434
}
3535

36+
function isOptionalNode(field: FormField): boolean {
37+
return field.nodeShape && !field.minCount && field.maxCount === 1
38+
}
39+
3640
function isBoolean(field: FormField): boolean {
3741
return field.datatype === XSD('boolean').value
3842
}
@@ -61,6 +65,7 @@ export default {
6165
isIRI,
6266
isList,
6367
isLiteral,
68+
isOptionalNode,
6469
isRequired,
6570
isBoolean,
6671
isInteger,

0 commit comments

Comments
 (0)