@@ -137,6 +137,7 @@ if (typeof brutusin === "undefined") {
137137 var root = schema ;
138138 var formId = "BrutusinForms#" + BrutusinForms . instances . length ;
139139
140+ renameRequiredPropeties ( schema ) ; // required v4 (array) -> requiredProperties
140141 populateSchemaMap ( "$" , schema ) ;
141142
142143 validateDepencyMapIsAcyclic ( ) ;
@@ -937,6 +938,45 @@ if (typeof brutusin === "undefined") {
937938 return false ;
938939 }
939940
941+ function renameRequiredPropeties ( schema ) {
942+ if ( schema . hasOwnProperty ( "oneOf" ) ) {
943+ for ( var i in schema . oneOf ) {
944+ renameRequiredPropeties ( schema . oneOf [ i ] ) ;
945+ }
946+ } else if ( schema . hasOwnProperty ( "$ref" ) ) {
947+ var newSchema = getDefinition ( schema [ "$ref" ] ) ;
948+ renameRequiredPropeties ( newSchema ) ;
949+ } else if ( schema . type === "object" ) {
950+ if ( schema . properties ) {
951+ if ( schema . hasOwnProperty ( "required" ) ) {
952+ if ( Array . isArray ( schema . required ) ) {
953+ schema . requiredProperties = schema . required ;
954+ delete schema . required ;
955+ }
956+ }
957+ for ( var prop in schema . properties ) {
958+ renameRequiredPropeties ( schema . properties [ prop ] ) ;
959+ }
960+ }
961+ if ( schema . patternProperties ) {
962+ for ( var pat in schema . patternProperties ) {
963+ var s = schema . patternProperties [ pat ] ;
964+ if ( s . hasOwnProperty ( "type" ) || s . hasOwnProperty ( "$ref" ) || s . hasOwnProperty ( "oneOf" ) ) {
965+ renameRequiredPropeties ( schema . patternProperties [ pat ] ) ;
966+ }
967+ }
968+ }
969+ if ( schema . additionalProperties ) {
970+ if ( schema . additionalProperties . hasOwnProperty ( "type" ) || schema . additionalProperties . hasOwnProperty ( "oneOf" ) ) {
971+ renameRequiredPropeties ( schema . additionalProperties ) ;
972+
973+ }
974+ }
975+ } else if ( schema . type === "array" ) {
976+ renameRequiredPropeties ( schema . items ) ;
977+ }
978+ }
979+
940980 function populateSchemaMap ( name , schema ) {
941981 var pseudoSchema = createPseudoSchema ( schema ) ;
942982 pseudoSchema [ "$id" ] = name ;
@@ -958,18 +998,12 @@ if (typeof brutusin === "undefined") {
958998 } else if ( schema . type === "object" ) {
959999 if ( schema . properties ) {
9601000 pseudoSchema . properties = new Object ( ) ;
961- var requiredProperties ;
962- if ( schema . hasOwnProperty ( "required" ) ) {
963- if ( Array . isArray ( schema . required ) ) {
964- requiredProperties = schema . required ;
965- }
966- }
9671001 for ( var prop in schema . properties ) {
9681002 var childProp = name + "." + prop ;
9691003 pseudoSchema . properties [ prop ] = childProp ;
9701004 var subSchema = schema . properties [ prop ] ;
971- if ( requiredProperties ) {
972- if ( containsStr ( requiredProperties , prop ) ) {
1005+ if ( schema . requiredProperties ) {
1006+ if ( containsStr ( schema . requiredProperties , prop ) ) {
9731007 subSchema . required = true ;
9741008 } else {
9751009 subSchema . required = false ;
0 commit comments