@@ -10,79 +10,76 @@ const defaultConfig = {
10
10
export default Ember . Service . extend ( {
11
11
12
12
export : function ( data , options ) {
13
-
14
13
options = optionize ( options , defaultConfig ) ;
15
14
16
- function JSON2CSV ( objArray ) {
17
- var array = typeof objArray != 'object' ? JSON . parse ( objArray ) : objArray ;
15
+ var csv = this . jsonToCsv ( data , options ) ;
18
16
19
- var str = '' ;
20
- var line = '' ;
17
+ saveAs ( new Blob ( [ csv ] , { type : "data:text/csv;charset=utf-8" } ) , options . fileName ) ;
18
+ } ,
21
19
22
- if ( options . withSeparator ) {
23
- // add separator identifier;
24
- str += `sep=${ options . separator } \r\n` ;
25
- }
20
+ jsonToCsv ( objArray , options ) {
21
+ var array = typeof objArray != 'object' ? JSON . parse ( objArray ) : objArray ;
26
22
27
- // add heading row
28
- var head = array [ 0 ] ;
29
- for ( var i = 0 ; i < head . length ; i ++ ) {
30
- var value = head [ i ] + "" ;
31
- if ( i > 0 ) {
32
- line += options . separator ;
33
- }
34
- line += '"' + value . replace ( / " / g, '""' ) + '"' ;
35
- }
23
+ var str = '' ;
24
+ var line = '' ;
36
25
37
- str += line + '\r\n' ;
26
+ if ( options . withSeparator ) {
27
+ // add separator identifier;
28
+ str += `sep=${ options . separator } \r\n` ;
29
+ }
38
30
39
- // add items
40
- for ( var i = 1 ; i < array . length ; i ++ ) {
41
- var line = '' ;
31
+ // add heading row
32
+ var head = array [ 0 ] ;
33
+ for ( var i = 0 ; i < head . length ; i ++ ) {
34
+ var value = head [ i ] + "" ;
35
+ if ( i > 0 ) {
36
+ line += options . separator ;
37
+ }
38
+ line += '"' + value . replace ( / " / g, '""' ) + '"' ;
39
+ }
42
40
43
- for ( var index = 0 ; index < array [ i ] . length ; index ++ ) {
44
- var value = array [ i ] [ index ] ;
41
+ str += line + '\r\n' ;
45
42
46
- if ( index > 0 ) {
47
- line += options . separator ;
48
- }
49
- if ( typeof value === 'object' ) {
50
- if ( value ) {
51
- var resolveValue ;
52
- if ( value . _d instanceof Date ) {
53
- // dealing with encoding issue in IE browsers.
54
- resolveValue = ( value . _d . getMonth ( ) + 1 ) + '/' + value . _d . getDate ( ) + '/' + value . _d . getFullYear ( ) ;
55
- }
56
- else {
57
- resolveValue = value . _d . toString ( ) ;
58
- }
43
+ // add items
44
+ for ( var i = 1 ; i < array . length ; i ++ ) {
45
+ var line = '' ;
46
+
47
+ for ( var index = 0 ; index < array [ i ] . length ; index ++ ) {
48
+ var value = array [ i ] [ index ] ;
59
49
60
- line += '"' + resolveValue . replace ( / " / g, '""' ) + '"' ;
50
+ if ( index > 0 ) {
51
+ line += options . separator ;
52
+ }
53
+ if ( typeof value === 'object' ) {
54
+ if ( value ) {
55
+ var resolveValue ;
56
+ if ( value . _d instanceof Date ) {
57
+ // dealing with encoding issue in IE browsers.
58
+ resolveValue = ( value . _d . getMonth ( ) + 1 ) + '/' + value . _d . getDate ( ) + '/' + value . _d . getFullYear ( ) ;
61
59
}
62
60
else {
63
- line += '""' ;
61
+ resolveValue = value . _d . toString ( ) ;
64
62
}
63
+
64
+ line += '"' + resolveValue . replace ( / " / g, '""' ) + '"' ;
65
65
}
66
66
else {
67
- value = value + "" ;
68
- if ( value && value != 'undefined' ) {
69
- line += '"' + value . replace ( / " / g, '""' ) + '"' ;
70
- }
71
- else {
72
- line += '""' ;
73
- }
67
+ line += '""' ;
68
+ }
69
+ }
70
+ else {
71
+ value = value + "" ;
72
+ if ( value && value != 'undefined' ) {
73
+ line += '"' + value . replace ( / " / g, '""' ) + '"' ;
74
+ }
75
+ else {
76
+ line += '""' ;
74
77
}
75
78
}
76
-
77
- str += line + '\r\n' ;
78
79
}
79
- return str ;
80
- }
81
-
82
- var csv = JSON2CSV ( data ) ;
83
-
84
- saveAs ( new Blob ( [ csv ] , { type :"data:text/csv;charset=utf-8" } ) , options . fileName ) ;
85
80
81
+ str += line + '\r\n' ;
82
+ }
83
+ return str ;
86
84
}
87
-
88
85
} ) ;
0 commit comments