diff --git a/lib/angular-csv-import.js b/lib/angular-csv-import.js
index 01912eb..721e8f7 100644
--- a/lib/angular-csv-import.js
+++ b/lib/angular-csv-import.js
@@ -1,109 +1,111 @@
-'use strict';
-
-var csvImport = angular.module('ngCsvImport', []);
-
-csvImport.directive('ngCsvImport', function() {
- return {
- restrict: 'E',
- transclude: true,
- replace: true,
- scope:{
- content:'=?',
- header: '=?',
- headerVisible: '=?',
- separator: '=?',
- separatorVisible: '=?',
- result: '=?',
- encoding: '=?',
- encodingVisible: '=?',
- accept: '=?'
- },
- template: '
'+
- '
'+
- '
'+
- '
'+
- '
Seperator
'+
- '
'+
- ''+
- '
'+
- '
',
- link: function(scope, element) {
- scope.separatorVisible = scope.separatorVisible || false;
- scope.headerVisible = scope.headerVisible || false;
-
- angular.element(element[0].querySelector('.separator-input')).on('keyup', function(e) {
- if ( scope.content != null ) {
- var content = {
- csv: scope.content,
- header: scope.header,
- separator: e.target.value,
- encoding: scope.encoding
- };
- scope.result = csvToJSON(content);
- scope.$apply();
- }
- });
-
- element.on('change', function(onChangeEvent) {
- var reader = new FileReader();
- scope.filename = onChangeEvent.target.files[0].name;
- reader.onload = function(onLoadEvent) {
- scope.$apply(function() {
- var content = {
- csv: onLoadEvent.target.result.replace(/\r\n|\r/g,'\n'),
- header: scope.header,
- separator: scope.separator
- };
- scope.content = content.csv;
- scope.result = csvToJSON(content);
- scope.result.filename = scope.filename;
- });
- };
-
- if ( (onChangeEvent.target.type === "file") && (onChangeEvent.target.files != null || onChangeEvent.srcElement.files != null) ) {
- reader.readAsText((onChangeEvent.srcElement || onChangeEvent.target).files[0], scope.encoding);
- } else {
+(function(undefined) {
+ 'use strict';
+
+ var csvImport = angular.module('ngCsvImport', []);
+
+ csvImport.directive('ngCsvImport', function() {
+ return {
+ restrict: 'E',
+ transclude: true,
+ replace: true,
+ scope:{
+ content:'=?',
+ header: '=?',
+ headerVisible: '=?',
+ separator: '=?',
+ separatorVisible: '=?',
+ result: '=?',
+ encoding: '=?',
+ encodingVisible: '=?',
+ accept: '=?'
+ },
+ template: ''+
+ '
'+
+ '
'+
+ '
'+
+ '
Seperator
'+
+ '
'+
+ ''+
+ '
'+
+ '
',
+ link: function(scope, element) {
+ scope.separatorVisible = scope.separatorVisible || false;
+ scope.headerVisible = scope.headerVisible || false;
+
+ angular.element(element[0].querySelector('.separator-input')).on('keyup', function(e) {
if ( scope.content != null ) {
var content = {
csv: scope.content,
- header: !scope.header,
- separator: scope.separator
+ header: scope.header,
+ separator: e.target.value,
+ encoding: scope.encoding
};
scope.result = csvToJSON(content);
+ scope.$apply();
}
- }
- });
-
- var csvToJSON = function(content) {
- var lines=content.csv.split('\n');
- var result = [];
- var start = 0;
- var columnCount = lines[0].split(content.separator).length;
-
- var headers = [];
- if (content.header) {
- headers=lines[0].split(content.separator);
- start = 1;
- }
-
- for (var i=start; i