11angular . module ( 'schemaForm' )
2- . config ( [ 'schemaFormDecoratorsProvider' , 'sfBuilderProvider' ,
3- function ( decoratorsProvider , sfBuilderProvider ) {
4- var base = 'decorators/material/' ;
2+ . config ( [ 'schemaFormProvider' , ' schemaFormDecoratorsProvider', 'sfBuilderProvider' , 'sfPathProvider ',
3+ function ( schemaFormProvider , decoratorsProvider , sfBuilderProvider , sfPathProvider ) {
4+ var base = 'decorators/material/' ;
55
6- var simpleTransclusion = sfBuilderProvider . builders . simpleTransclusion ;
7- var ngModelOptions = sfBuilderProvider . builders . ngModelOptions ;
8- var ngModel = sfBuilderProvider . builders . ngModel ;
9- var sfField = sfBuilderProvider . builders . sfField ;
6+ var transclusion = sfBuilderProvider . builders . simpleTransclusion ;
7+ var ngModelOptions = sfBuilderProvider . builders . ngModelOptions ;
8+ var ngModel = sfBuilderProvider . builders . ngModel ;
9+ var sfField = sfBuilderProvider . builders . sfField ;
10+ var sfMessages = function ( args ) {
11+ var messagesDiv = args . fieldFrag . querySelector ( '[sf-messages]' ) ;
12+ if ( messagesDiv ) {
13+ messagesDiv . setAttribute ( 'ng-messages' , 'ngModel.$error' ) ;
14+ var child = document . createElement ( 'div' ) ;
15+ child . setAttribute ( 'sf-message' , '' ) ;
16+ child . setAttribute ( 'ng-message' , '' ) ;
17+ messagesDiv . appendChild ( child ) ;
18+ }
19+ } ;
1020
11- var defaults = [ sfField , ngModel , ngModelOptions ] ;
21+ var defaults = [ sfField , ngModel , ngModelOptions , sfMessages ] ;
1222
13- decoratorsProvider . defineDecorator ( 'materialDecorator' , {
14- textarea : { template : base + 'textarea.html' , builder : defaults } ,
15- fieldset : { template : base + 'fieldset.html' , builder : [ sfField , simpleTransclusion ] } ,
16- 'default' : { template : base + 'default.html' , builder : defaults } ,
17- select : { template : base + 'select.html' , builder : defaults } ,
18- checkbox : { template : base + 'checkbox.html' , builder : defaults } ,
19- checkboxes : { template : base + 'checkboxes.html' , builder : defaults } ,
20- radios : { template : base + 'radios.html' , builder : defaults } ,
21- 'radios-inline' : { template : base + 'radios-inline.html' , builder : defaults } ,
22- radiobuttons : { template : base + 'radio-buttons.html' , builder : defaults } ,
23- submit : { template : base + 'submit.html' , builder : defaults }
24- } ) ;
23+ decoratorsProvider . defineDecorator ( 'materialDecorator' , {
24+ textarea : { template : base + 'textarea.html' , builder : defaults } ,
25+ fieldset : { template : base + 'fieldset.html' , builder : [ sfField , transclusion ] } ,
26+ 'default' : { template : base + 'default.html' , builder : defaults } ,
27+ select : { template : base + 'select.html' , builder : defaults } ,
28+ date : { template : base + 'date.html' , builder : defaults } ,
29+ checkbox : { template : base + 'checkbox.html' , builder : defaults } ,
30+ checkboxes : { template : base + 'checkboxes.html' , builder : defaults } ,
31+ radios : { template : base + 'radios.html' , builder : defaults } ,
32+ 'radios-inline' : { template : base + 'radios-inline.html' , builder : defaults } ,
33+ radiobuttons : { template : base + 'radio-buttons.html' , builder : defaults } ,
34+ submit : { template : base + 'submit.html' , builder : defaults }
35+ } ) ;
2536
26- /* decoratorsProvider.createDecorator('materialDecorator', {
37+ /* decoratorsProvider.createDecorator('materialDecorator', {
2738 textarea: base + 'textarea.html',
2839 fieldset: base + 'fieldset.html',
2940 array: base + 'array.html',
@@ -45,4 +56,19 @@ function(decoratorsProvider, sfBuilderProvider) {
4556 help: base + 'help.html',
4657 'default': base + 'default.html'
4758 });*/
48- } ] ) ;
59+
60+ /**
61+ * Material Datepicker
62+ */
63+ var date = function ( name , schema , options ) {
64+ if ( schema . type === 'string' && ( schema . format === 'date' || schema . format === 'date-time' ) ) {
65+ var f = schemaFormProvider . stdFormObj ( name , schema , options ) ;
66+ f . key = options . path ;
67+ f . type = 'date' ;
68+ options . lookup [ sfPathProvider . stringify ( options . path ) ] = f ;
69+ return f ;
70+ }
71+ } ;
72+ schemaFormProvider . defaults . string . unshift ( date ) ;
73+ }
74+ ] ) ;
0 commit comments