import { registerExamples } from '../register' ; import { JsonFormsUISchemaRegistryEntry , JsonSchema , NOT_APPLICABLE } from '@jsonforms/core' ; import { StateProps } from '../example' ; const data = { orders : [ { title : '42 killer robots' , ordered : true , assignee : 'Philip J. Fry' } ] } ; const schema = { definitions : { order : { type : 'object' , properties : { title : { type : 'string' , minLength : 5 } , ordered : { type : 'boolean' } , assignee : { type : 'string' } , choices : { type : 'array' , items : { type : 'string' } } } , required : [ 'title' ] } } , type : 'object' , properties : { orders : { type : 'array' , items : { $ref : '#/definitions/order' } } } } ; export const uischema = { type : 'Control' , scope : '#/properties/orders' } ; const uischemas = [ { tester : ( _jsonSchema , schemaPath ) => { return schemaPath === '#/properties/orders' ? 2 : NOT_APPLICABLE ; } , uischema : { type : 'VerticalLayout' , elements : [ { type : 'Control' , scope : '#/properties/title' } , { type : 'Control' , scope : '#/properties/ordered' } , { type : 'VerticalLayout' , elements : [ { type : 'Control' , scope : '#/properties/assignee' } ] , rule : { effect : 'SHOW' , condition : { type : 'LEAF' , scope : '#/properties/ordered' , expectedValue : true } } } ] } , } , ] ; const actions = [ { 'label' : 'Register Issue 1220 UISchema' , 'apply' : ( props ) => { return { ... props , uischemas : uischemas } ; } } , { 'label' : 'Unregister Issue 1220 UISchema' , 'apply' : ( props ) => { const uischemas = undefined ; return { ... props , uischemas : uischemas } ; } } , ] ; registerExamples ( [ { name : '1220' , label : 'Issue 1220' , data , schema , uischema , actions } ] ) ;