@@ -7,11 +7,8 @@ define([
7
7
'ko' ,
8
8
'underscore' ,
9
9
'jquery' ,
10
- 'mage/translate' ,
11
- 'mage/calendar' ,
12
- 'moment' ,
13
- 'mageUtils'
14
- ] , function ( ko , _ , $ , $t , calendar , moment , utils ) {
10
+ 'mage/translate'
11
+ ] , function ( ko , _ , $ , $t ) {
15
12
'use strict' ;
16
13
17
14
var defaults = {
@@ -46,10 +43,12 @@ define([
46
43
observable = config ;
47
44
}
48
45
49
- $ ( el ) . calendar ( options ) ;
46
+ require ( [ 'mage/calendar' ] , function ( ) {
47
+ $ ( el ) . calendar ( options ) ;
50
48
51
- ko . utils . registerEventHandler ( el , 'change' , function ( ) {
52
- observable ( this . value ) ;
49
+ ko . utils . registerEventHandler ( el , 'change' , function ( ) {
50
+ observable ( this . value ) ;
51
+ } ) ;
53
52
} ) ;
54
53
} ,
55
54
@@ -62,8 +61,10 @@ define([
62
61
*/
63
62
update : function ( element , valueAccessor ) {
64
63
var config = valueAccessor ( ) ,
64
+ $element = $ ( element ) ,
65
65
observable ,
66
66
options = { } ,
67
+ oldVal ,
67
68
newVal ;
68
69
69
70
_ . extend ( options , defaults ) ;
@@ -75,26 +76,30 @@ define([
75
76
observable = config ;
76
77
}
77
78
78
- if ( _ . isEmpty ( observable ( ) ) ) {
79
- if ( $ ( element ) . datepicker ( 'getDate' ) ) {
80
- $ ( element ) . datepicker ( 'setDate' , null ) ;
81
- $ ( element ) . blur ( ) ;
82
- }
83
- } else {
84
- newVal = moment (
85
- observable ( ) ,
86
- utils . convertToMomentFormat (
87
- options . dateFormat + ( options . showsTime ? ' ' + options . timeFormat : '' )
88
- )
89
- ) . toDate ( ) ;
79
+ require ( [ 'moment' , 'mage/utils/misc' , 'mage/calendar' ] , function ( moment , utils ) {
80
+ oldVal = $element . datepicker ( 'getDate' ) ;
90
81
91
- if ( $ ( element ) . datepicker ( 'getDate' ) == null ||
92
- newVal . valueOf ( ) !== $ ( element ) . datepicker ( 'getDate' ) . valueOf ( )
93
- ) {
94
- $ ( element ) . datepicker ( 'setDate' , newVal ) ;
95
- $ ( element ) . blur ( ) ;
82
+ if ( _ . isEmpty ( observable ( ) ) ) {
83
+ if ( oldVal ) {
84
+ $element . datepicker ( 'setDate' , null ) ;
85
+ $element . blur ( ) ;
86
+ }
87
+ } else {
88
+ newVal = moment (
89
+ observable ( ) ,
90
+ utils . convertToMomentFormat (
91
+ options . dateFormat + ( options . showsTime ? ' ' + options . timeFormat : '' )
92
+ )
93
+ ) . toDate ( ) ;
94
+
95
+ if ( oldVal == null ||
96
+ newVal . valueOf ( ) !== oldVal . valueOf ( )
97
+ ) {
98
+ $element . datepicker ( 'setDate' , newVal ) ;
99
+ $element . blur ( ) ;
100
+ }
96
101
}
97
- }
102
+ } ) ;
98
103
}
99
104
} ;
100
105
} ) ;
0 commit comments