1+ /*!
2+ * json-schema-form
3+ * @version 1.0.0-alpha.1
4+ * Copyright 2016 JSON Schema Form
5+ */
16( function webpackUniversalModuleDefinition ( root , factory ) {
27 if ( typeof exports === 'object' && typeof module === 'object' )
38 module . exports = factory ( ) ;
@@ -608,8 +613,12 @@ return /******/ (function(modules) { // webpackBootstrap
608613 var rules = schemaTypes [ stripNullType ( schema . type ) ] ;
609614 if ( rules ) {
610615 var def = void 0 ;
616+ // We give each rule a possibility to recurse it's children.
617+ var innerDefaultFormDefinition = function innerDefaultFormDefinition ( childName , childSchema , childOptions ) {
618+ return defaultFormDefinition ( schemaTypes , childName , childSchema , childOptions ) ;
619+ } ;
611620 for ( var i = 0 ; i < rules . length ; i ++ ) {
612- def = rules [ i ] ( name , schema , options ) ;
621+ def = rules [ i ] ( name , schema , options , innerDefaultFormDefinition ) ;
613622
614623 //first handler in list that actually returns something is our handler!
615624 if ( def ) {
@@ -747,14 +756,15 @@ return /******/ (function(modules) { // webpackBootstrap
747756 }
748757 }
749758
750- function fieldset ( name , schema , options ) {
759+ function fieldset ( name , schema , options , defaultFormDef ) {
751760 if ( stripNullType ( schema . type ) === 'object' ) {
752761 var _ret = function ( ) {
753762 var f = stdFormObj ( name , schema , options ) ;
754763 f . type = 'fieldset' ;
755764 f . items = [ ] ;
756765 options . lookup [ ( 0 , _sfPath . stringify ) ( options . path ) ] = f ;
757766
767+ console . log ( 'fieldset' , f , schema ) ;
758768 //recurse down into properties
759769 if ( schema . properties ) {
760770 Object . keys ( schema . properties ) . forEach ( function ( key ) {
@@ -764,7 +774,7 @@ return /******/ (function(modules) { // webpackBootstrap
764774 if ( options . ignore [ ( 0 , _sfPath . stringify ) ( path ) ] !== true ) {
765775 var required = schema . required && schema . required . indexOf ( key ) !== - 1 ;
766776
767- var def = defaultFormDefinition ( key , value , {
777+ var def = defaultFormDef ( key , value , {
768778 path : path ,
769779 required : required || false ,
770780 lookup : options . lookup ,
@@ -786,7 +796,7 @@ return /******/ (function(modules) { // webpackBootstrap
786796 }
787797 }
788798
789- function array ( name , schema , options ) {
799+ function array ( name , schema , options , defaultFormDef ) {
790800 if ( stripNullType ( schema . type ) === 'array' ) {
791801 var f = stdFormObj ( name , schema , options ) ;
792802 f . type = 'array' ;
@@ -803,7 +813,7 @@ return /******/ (function(modules) { // webpackBootstrap
803813 var arrPath = options . path . slice ( ) ;
804814 arrPath . push ( '' ) ;
805815
806- f . items = [ defaultFormDefinition ( name , schema . items , {
816+ f . items = [ defaultFormDef ( name , schema . items , {
807817 path : arrPath ,
808818 required : required || false ,
809819 lookup : options . lookup ,
@@ -823,8 +833,7 @@ return /******/ (function(modules) { // webpackBootstrap
823833 object : [ fieldset ] ,
824834 number : [ number ] ,
825835 integer : [ integer ] ,
826- boolean : [ checkbox ] ,
827- array : [ checkboxes , array ]
836+ boolean : [ checkbox ] , defaultForm : defaultForm
828837 } ;
829838 }
830839
0 commit comments