{"version":3,"sources":["ng-dropzone.min.js"],"names":["root","factory","angular","Dropzone","module","provider","defOps","setOptions","newOps","extend","$get","directive","$timeout","dropzoneOps","restrict","template","replace","scope","options","callbacks","methods","link","iElem","iAttr","initOps","dropzone","getDropzone","getAllFiles","files","controlMethods","forEach","methodName","apply","arguments","$$phase","$root","$apply","callbackMethods","method","callback","noop","on","exports","require","define","amd","this"],"mappings":"CAOA,SAAUA,GACN,YACF,SAASC,GAAQC,EAASC,GAExBD,EAAQE,OAAO,0BAA2BC,SAAS,cAAe,WAIhE,GAAIC,KAIJ,QACEC,WAAa,SAASC,GACpBN,EAAQO,OAAOH,EAAQE,IAEzBE,KAAO,WACL,MAAOJ,OAGVK,UAAU,cAAe,WAAY,cAAe,SAASC,EAAUC,GACxE,OACEC,SAAW,KACXC,SAAW,cACXC,SAAU,EACVC,OACEC,QAAU,KACVC,UAAY,KACZC,QAAU,MAEZC,KAAO,SAASJ,EAAOK,EAAOC,GAE5BN,EAAMC,QAAUD,EAAMC,WACtB,IAAIM,GAAUtB,EAAQO,UAAWI,EAAaI,EAAMC,SAIhDO,EAAW,GAAItB,GAASmB,EAAM,GAAIE,EAOtCP,GAAMG,QAAUH,EAAMG,YAEtBH,EAAMG,QAAQM,YAAc,WAC1B,MAAOD,IAGTR,EAAMG,QAAQO,YAAc,WAC1B,MAAOF,GAASG,MAGlB,IAAIC,IACF,aAAc,iBAAkB,eAChC,mBAAoB,mBAAoB,iBAAkB,oBAC1D,UAAW,SAAU,UAAW,yBAelC,IAZA3B,EAAQ4B,QAAQD,EAAgB,SAASE,GACvCd,EAAMG,QAAQW,GAAc,WAC1BN,EAASM,GAAYC,MAAMP,EAAUQ,WACjChB,EAAMiB,SAAYjB,EAAMkB,MAAMD,SAASjB,EAAMmB,YASlDnB,EAAME,UAAU,CACjB,GAAIkB,IACF,OAAQ,YAAa,UACrB,YAAa,WAAY,YAAa,YAAa,cACnD,YAAa,QAAS,aAAc,iBACpC,UAAW,UAAW,WAAY,WAAY,kBAC9C,mBAAoB,qBAAsB,kBAAmB,kBAC7D,mBAAoB,mBAAoB,sBAAuB,QAAS,gBAE1EnC,GAAQ4B,QAAQO,EAAiB,SAASC,GACxC,GAAIC,GAAYtB,EAAME,UAAUmB,IAAWpC,EAAQsC,IACnDf,GAASgB,GAAGH,EAAQ,WAClBC,EAASP,MAAM,KAAMC,WACjBhB,EAAMiB,SAAYjB,EAAMkB,MAAMD,SAASjB,EAAMmB,mBAWxC,gBAAXhC,SAAwBA,OAAOsC,QAEzCtC,OAAOsC,QAAUzC,EAAQ0C,QAAQ,WAAYA,QAAQ,aAC1B,kBAAXC,SAAyBA,OAAOC,IAEhDD,QAAQ,UAAW,YAAa3C,GAGhCA,EAAQD,EAAKE,QAASF,EAAKG,WAE5B2C","file":"ng-dropzone.min.js","sourcesContent":["/**!\r\n * AngularJS dropzone directive\r\n * @author Uday Hiwarale \r\n * https://www.github.com/thatisuday/ngDropzone\r\n */\r\n \r\n \r\n(function(root){\r\n 'use strict';\r\n function factory(angular, Dropzone){\r\n \r\n angular.module('thatisuday.dropzone', []).provider('dropzoneOps', function(){\r\n /*\r\n * Add default options here\r\n **/\r\n var defOps = {\r\n //Add your options here\r\n };\r\n \r\n return {\r\n setOptions : function(newOps){\r\n angular.extend(defOps, newOps);\r\n },\r\n $get : function(){\r\n return defOps;\r\n }\r\n }\r\n }).directive('ngDropzone', ['$timeout', 'dropzoneOps', function($timeout, dropzoneOps){\r\n return {\r\n restrict : 'AE',\r\n template : '
',\r\n replace : true,\r\n scope : {\r\n options : '=?', //http://www.dropzonejs.com/#configuration-options\r\n callbacks : '=?', //http://www.dropzonejs.com/#events\r\n methods : '=?' //http://www.dropzonejs.com/#dropzone-methods\r\n },\r\n link : function(scope, iElem, iAttr){\r\n //Set options for dropzone {override from dropzone options provider}\r\n scope.options = scope.options || {};\r\n var initOps = angular.extend({}, dropzoneOps, scope.options);\r\n \r\n \r\n //Instantiate dropzone with initOps\r\n var dropzone = new Dropzone(iElem[0], initOps);\r\n \r\n \r\n /*********************************************/\r\n \r\n \r\n //Instantiate Dropzone methods (Control actions)\r\n scope.methods = scope.methods || {};\r\n \r\n scope.methods.getDropzone = function(){ \r\n return dropzone; //Return dropzone instance\r\n };\r\n \r\n scope.methods.getAllFiles = function(){ \r\n return dropzone.files; //Return all files\r\n };\r\n \r\n var controlMethods = [\r\n 'removeFile', 'removeAllFiles', 'processQueue',\r\n 'getAcceptedFiles', 'getRejectedFiles', 'getQueuedFiles', 'getUploadingFiles',\r\n 'disable', 'enable', 'confirm', 'createThumbnailFromUrl'\r\n ];\r\n \r\n angular.forEach(controlMethods, function(methodName){\r\n scope.methods[methodName] = function(){\r\n dropzone[methodName].apply(dropzone, arguments);\r\n if(!scope.$$phase && !scope.$root.$$phase) scope.$apply();\r\n }\r\n });\r\n \r\n \r\n /*********************************************/\r\n \r\n \r\n //Set invents (callbacks)\r\n if(scope.callbacks){\r\n var callbackMethods = [\r\n 'drop', 'dragstart', 'dragend',\r\n 'dragenter', 'dragover', 'dragleave', 'addedfile', 'removedfile',\r\n 'thumbnail', 'error', 'processing', 'uploadprogress',\r\n 'sending', 'success', 'complete', 'canceled', 'maxfilesreached',\r\n 'maxfilesexceeded', 'processingmultiple', 'sendingmultiple', 'successmultiple',\r\n 'completemultiple', 'canceledmultiple', 'totaluploadprogress', 'reset', 'queuecomplete'\r\n ];\r\n angular.forEach(callbackMethods, function(method){\r\n var callback = (scope.callbacks[method] || angular.noop);\r\n dropzone.on(method, function(){\r\n callback.apply(null, arguments);\r\n if(!scope.$$phase && !scope.$root.$$phase) scope.$apply();\r\n });\r\n });\r\n }\r\n }\r\n }\r\n }]);\r\n }\r\n \r\n \r\n\r\n if ((typeof module === 'object') && module.exports) {\r\n /* CommonJS module */\r\n module.exports = factory(require('angular'), require('dropzone'));\r\n } else if (typeof define === 'function' && define.amd) {\r\n /* AMD module */\r\n define(['angular', 'dropzone'], factory);\r\n } else {\r\n /* Browser global */\r\n factory(root.angular, root.Dropzone);\r\n }\r\n})(this);\r\n"]}