/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
/* eslint-env browser */
/* global angular, SheetJSExportService, SheetJSImportDirective */
var app = angular.module('app', ['ngAnimate', 'ngTouch', 'ui.grid', 'ui.grid.selection', 'ui.grid.exporter']);

/* Inject SheetJSExportService */
app.factory('SheetJSExportService', SheetJSExportService);
SheetJSExportService.inject = ['uiGridExporterService'];

app.controller('MainCtrl', ['$scope', '$http','SheetJSExportService', function($scope, $http, SheetJSExportService) {
  $scope.gridOptions = {
    columnDefs: [
      { field: 'name' },
      { field: 'gender', visible: false},
      { field: 'company' }
    ],
    enableGridMenu: true,
    enableSelectAll: true,
    exporterMenuPdf: false,
    exporterMenuCsv: false,
    showHeader: true,
    onRegisterApi: function(gridApi){
      $scope.gridApi = gridApi;
    },
    /* SheetJS Service setup */
    filename: "SheetJSAngular",
    sheetname: "ng-SheetJS",
    gridMenuCustomItems: [
      {
        title: 'Export all data as XLSX',
        action: function() { SheetJSExportService.exportXLSX($scope.gridApi); },
        order: 200
      },
      {
        title: 'Export all data as XLSB',
        action: function() { SheetJSExportService.exportXLSB($scope.gridApi); },
        order: 201
      }
    ]
  };

  $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/100.json').success(function(data) { $scope.gridOptions.data = data; });

}]);
app.directive("importSheetJs", [SheetJSImportDirective]);