{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///angular-file-upload.min.js","webpack:///webpack/bootstrap 8e3763ddc3eea8ac4eff?72bf","webpack:///./src/index.js?9552","webpack:///./src/config.json?1c25","webpack:///./src/values/options.js?b00e","webpack:///./src/services/FileUploader.js?148d","webpack:///./src/services/FileLikeObject.js?b90b","webpack:///./src/services/FileItem.js?e529","webpack:///./src/services/FileDirective.js?4dd3","webpack:///./src/services/FileSelect.js?5a11","webpack:///./src/services/Pipeline.js?322f","webpack:///./src/services/FileDrop.js?e446","webpack:///./src/services/FileOver.js?26c9","webpack:///./src/directives/FileSelect.js?8405","webpack:///./src/directives/FileDrop.js?82da","webpack:///./src/directives/FileOver.js?6161"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","_config","_config2","_options","_options2","_FileUploader","_FileUploader2","_FileLikeObject","_FileLikeObject2","_FileItem","_FileItem2","_FileDirective","_FileDirective2","_FileSelect","_FileSelect2","_Pipeline","_Pipeline2","_FileDrop","_FileDrop2","_FileOver","_FileOver2","_FileSelect3","_FileSelect4","_FileDrop3","_FileDrop4","_FileOver3","_FileOver4","angular","CONFIG","name","value","options","serviceFileUploader","serviceFileLikeObject","serviceFileItem","serviceFileDirective","serviceFileSelect","serviceFileDrop","serviceFileOver","servicePipeline","directive","directiveFileSelect","directiveFileDrop","directiveFileOver","run","FileUploader","FileLikeObject","FileItem","FileDirective","FileSelect","FileDrop","FileOver","Pipeline","Object","defineProperty","url","alias","headers","queue","progress","autoUpload","removeAfterUpload","method","filters","formData","queueLimit","Number","MAX_VALUE","withCredentials","disableMultipart","_classCallCheck","instance","Constructor","TypeError","__identity","fileUploaderOptions","$rootScope","$http","$window","$timeout","File","FormData","settings","copy","extend","isUploading","_nextIndex","_directives","select","drop","over","unshift","fn","_queueLimitFilter","_folderFilter","prototype","addToQueue","files","_this","incomingQueue","isArrayLikeObject","Array","slice","arrayOfFilters","_getFilters","count","length","addedFileItems","next","something","shift","isUndefined","done","fileLikeObject","isFile","pipes","_convertFiltersToPipes","pipeline","onThrown","err","originalFilter","pipe","_err$args","_slicedToArray","args","_onWhenAddingFileFailed","onSuccessful","fileItem","push","_onAfterAddingFile","exec","_onAfterAddingAll","_getTotalProgress","_render","uploadAll","removeFromQueue","index","getIndexOfItem","item","cancel","splice","_destroy","clearQueue","remove","uploadItem","transport","isHTML5","_prepareToUploading","_onBeforeUploadItem","isCancel","cancelItem","_this2","prop","abort","dummy","undefined","onNextTick","_onCancelItem","apply","concat","_onCompleteItem","items","getNotUploadedItems","filter","forEach","upload","cancelAll","constructor","isFileLikeObject","isNumber","indexOf","isUploaded","getReadyItems","isReady","sort","item1","item2","destroy","_this3","key","object","onAfterAddingAll","fileItems","onAfterAddingFile","onWhenAddingFileFailed","onBeforeUploadItem","onProgressItem","onProgressAll","onSuccessItem","response","status","onErrorItem","onCancelItem","onCompleteItem","onTimeoutItem","onCompleteAll","notUploaded","uploaded","ratio","current","Math","round","isArray","names","match","_this4","map","bind","isAsync","$$phase","$apply","size","type","_isSuccessCode","_transformResponse","headersGetter","_headersGetter","defaults","transformResponse","transformFn","_parseHeaders","val","i","parsed","split","line","trim","toLowerCase","parsedHeaders","_xhrTransport","sendable","_this5","xhr","_xhr","XMLHttpRequest","_file","append","file","onprogress","event","lengthComputable","total","_onProgressItem","onload","getAllResponseHeaders","gist","onerror","_onErrorItem","onabort","ontimeout","e","_onTimeoutItem","open","timeout","setRequestHeader","send","_iframeTransport","_this6","form","element","iframe","Date","now","input","_input","timer","isTimedOut","_form","replaceWith","element_","action","target","enctype","encoding","html","contentDocument","body","innerHTML","clearTimeout","_onSuccessItem","unbind","after","setTimeout","submit","_onBeforeUpload","_onProgress","_onSuccess","_onError","_onCancel","_onComplete","nextItem","isDefined","_onTimeout","isObject","inherit","source","create","super_","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","Symbol","iterator","_angular","$inject","fileOrInput","isInput","isElement","fakePathOrObject","postfix","isString","_createFromFakePath","path","lastModifiedDate","lastIndexOf","_createFromObject","$compile","uploader","some","isSuccess","isError","_replaceNode","message","code","onBeforeUpload","onProgress","onSuccess","onError","onCancel","onComplete","onTimeout","clone","scope","css","_saveLinks","events","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","enumerable","writable","configurable","setPrototypeOf","__proto__","extendedOptions","$destroy","change","removeAttr","getOptions","getFilters","isEmptyAfterSelection","attr","onChange","_toConsumableArray","arr2","from","$q","arguments","Error","deferred","defer","onFulfilled","onRejected","promise","then","isDone","Boolean","_len","_key","dragover","dragleave","onDrop","transfer","_getTransfer","_preventAndStop","_removeOverClass","onDragOver","_haveFiles","types","dropEffect","_addOverClass","onDragLeave","currentTarget","dataTransfer","originalEvent","preventDefault","stopPropagation","contains","addOverClass","removeOverClass","overClass","addClass","getOverClass","removeClass","$parse","link","attributes","$eval"],"mappings":"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","file":"angular-file-upload.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angular-file-upload\"] = factory();\n\telse\n\t\troot[\"angular-file-upload\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angular-file-upload\"] = factory();\n\telse\n\t\troot[\"angular-file-upload\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tvar _options = __webpack_require__(2);\n\t\n\tvar _options2 = _interopRequireDefault(_options);\n\t\n\tvar _FileUploader = __webpack_require__(3);\n\t\n\tvar _FileUploader2 = _interopRequireDefault(_FileUploader);\n\t\n\tvar _FileLikeObject = __webpack_require__(4);\n\t\n\tvar _FileLikeObject2 = _interopRequireDefault(_FileLikeObject);\n\t\n\tvar _FileItem = __webpack_require__(5);\n\t\n\tvar _FileItem2 = _interopRequireDefault(_FileItem);\n\t\n\tvar _FileDirective = __webpack_require__(6);\n\t\n\tvar _FileDirective2 = _interopRequireDefault(_FileDirective);\n\t\n\tvar _FileSelect = __webpack_require__(7);\n\t\n\tvar _FileSelect2 = _interopRequireDefault(_FileSelect);\n\t\n\tvar _Pipeline = __webpack_require__(8);\n\t\n\tvar _Pipeline2 = _interopRequireDefault(_Pipeline);\n\t\n\tvar _FileDrop = __webpack_require__(9);\n\t\n\tvar _FileDrop2 = _interopRequireDefault(_FileDrop);\n\t\n\tvar _FileOver = __webpack_require__(10);\n\t\n\tvar _FileOver2 = _interopRequireDefault(_FileOver);\n\t\n\tvar _FileSelect3 = __webpack_require__(11);\n\t\n\tvar _FileSelect4 = _interopRequireDefault(_FileSelect3);\n\t\n\tvar _FileDrop3 = __webpack_require__(12);\n\t\n\tvar _FileDrop4 = _interopRequireDefault(_FileDrop3);\n\t\n\tvar _FileOver3 = __webpack_require__(13);\n\t\n\tvar _FileOver4 = _interopRequireDefault(_FileOver3);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tangular.module(_config2.default.name, []).value('fileUploaderOptions', _options2.default).factory('FileUploader', _FileUploader2.default).factory('FileLikeObject', _FileLikeObject2.default).factory('FileItem', _FileItem2.default).factory('FileDirective', _FileDirective2.default).factory('FileSelect', _FileSelect2.default).factory('FileDrop', _FileDrop2.default).factory('FileOver', _FileOver2.default).factory('Pipeline', _Pipeline2.default).directive('nvFileSelect', _FileSelect4.default).directive('nvFileDrop', _FileDrop4.default).directive('nvFileOver', _FileOver4.default).run(['FileUploader', 'FileLikeObject', 'FileItem', 'FileDirective', 'FileSelect', 'FileDrop', 'FileOver', 'Pipeline', function (FileUploader, FileLikeObject, FileItem, FileDirective, FileSelect, FileDrop, FileOver, Pipeline) {\n\t    // only for compatibility\n\t    FileUploader.FileLikeObject = FileLikeObject;\n\t    FileUploader.FileItem = FileItem;\n\t    FileUploader.FileDirective = FileDirective;\n\t    FileUploader.FileSelect = FileSelect;\n\t    FileUploader.FileDrop = FileDrop;\n\t    FileUploader.FileOver = FileOver;\n\t    FileUploader.Pipeline = Pipeline;\n\t}]);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = {\"name\":\"angularFileUpload\"}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\texports.default = {\n\t    url: '/',\n\t    alias: 'file',\n\t    headers: {},\n\t    queue: [],\n\t    progress: 0,\n\t    autoUpload: false,\n\t    removeAfterUpload: false,\n\t    method: 'POST',\n\t    filters: [],\n\t    formData: [],\n\t    queueLimit: Number.MAX_VALUE,\n\t    withCredentials: false,\n\t    disableMultipart: false\n\t};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\t\n\tvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\t\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar _angular = angular,\n\t    bind = _angular.bind,\n\t    copy = _angular.copy,\n\t    extend = _angular.extend,\n\t    forEach = _angular.forEach,\n\t    isObject = _angular.isObject,\n\t    isNumber = _angular.isNumber,\n\t    isDefined = _angular.isDefined,\n\t    isArray = _angular.isArray,\n\t    isUndefined = _angular.isUndefined,\n\t    element = _angular.element;\n\tfunction __identity(fileUploaderOptions, $rootScope, $http, $window, $timeout, FileLikeObject, FileItem, Pipeline) {\n\t    var File = $window.File,\n\t        FormData = $window.FormData;\n\t\n\t    var FileUploader = function () {\n\t        /**********************\r\n\t         * PUBLIC\r\n\t         **********************/\n\t        /**\r\n\t         * Creates an instance of FileUploader\r\n\t         * @param {Object} [options]\r\n\t         * @constructor\r\n\t         */\n\t        function FileUploader(options) {\n\t            _classCallCheck(this, FileUploader);\n\t\n\t            var settings = copy(fileUploaderOptions);\n\t\n\t            extend(this, settings, options, {\n\t                isUploading: false,\n\t                _nextIndex: 0,\n\t                _directives: { select: [], drop: [], over: [] }\n\t            });\n\t\n\t            // add default filters\n\t            this.filters.unshift({ name: 'queueLimit', fn: this._queueLimitFilter });\n\t            this.filters.unshift({ name: 'folder', fn: this._folderFilter });\n\t        }\n\t        /**\r\n\t         * Adds items to the queue\r\n\t         * @param {File|HTMLInputElement|Object|FileList|Array<Object>} files\r\n\t         * @param {Object} [options]\r\n\t         * @param {Array<Function>|String} filters\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.addToQueue = function addToQueue(files, options, filters) {\n\t            var _this = this;\n\t\n\t            var incomingQueue = this.isArrayLikeObject(files) ? Array.prototype.slice.call(files) : [files];\n\t            var arrayOfFilters = this._getFilters(filters);\n\t            var count = this.queue.length;\n\t            var addedFileItems = [];\n\t\n\t            var next = function next() {\n\t                var something = incomingQueue.shift();\n\t\n\t                if (isUndefined(something)) {\n\t                    return done();\n\t                }\n\t\n\t                var fileLikeObject = _this.isFile(something) ? something : new FileLikeObject(something);\n\t                var pipes = _this._convertFiltersToPipes(arrayOfFilters);\n\t                var pipeline = new Pipeline(pipes);\n\t                var onThrown = function onThrown(err) {\n\t                    var originalFilter = err.pipe.originalFilter;\n\t\n\t                    var _err$args = _slicedToArray(err.args, 2),\n\t                        fileLikeObject = _err$args[0],\n\t                        options = _err$args[1];\n\t\n\t                    _this._onWhenAddingFileFailed(fileLikeObject, originalFilter, options);\n\t                    next();\n\t                };\n\t                var onSuccessful = function onSuccessful(fileLikeObject, options) {\n\t                    var fileItem = new FileItem(_this, fileLikeObject, options);\n\t                    addedFileItems.push(fileItem);\n\t                    _this.queue.push(fileItem);\n\t                    _this._onAfterAddingFile(fileItem);\n\t                    next();\n\t                };\n\t                pipeline.onThrown = onThrown;\n\t                pipeline.onSuccessful = onSuccessful;\n\t                pipeline.exec(fileLikeObject, options);\n\t            };\n\t\n\t            var done = function done() {\n\t                if (_this.queue.length !== count) {\n\t                    _this._onAfterAddingAll(addedFileItems);\n\t                    _this.progress = _this._getTotalProgress();\n\t                }\n\t\n\t                _this._render();\n\t                if (_this.autoUpload) _this.uploadAll();\n\t            };\n\t\n\t            next();\n\t        };\n\t        /**\r\n\t         * Remove items from the queue. Remove last: index = -1\r\n\t         * @param {FileItem|Number} value\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.removeFromQueue = function removeFromQueue(value) {\n\t            var index = this.getIndexOfItem(value);\n\t            var item = this.queue[index];\n\t            if (item.isUploading) item.cancel();\n\t            this.queue.splice(index, 1);\n\t            item._destroy();\n\t            this.progress = this._getTotalProgress();\n\t        };\n\t        /**\r\n\t         * Clears the queue\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.clearQueue = function clearQueue() {\n\t            while (this.queue.length) {\n\t                this.queue[0].remove();\n\t            }\n\t            this.progress = 0;\n\t        };\n\t        /**\r\n\t         * Uploads a item from the queue\r\n\t         * @param {FileItem|Number} value\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.uploadItem = function uploadItem(value) {\n\t            var index = this.getIndexOfItem(value);\n\t            var item = this.queue[index];\n\t            var transport = this.isHTML5 ? '_xhrTransport' : '_iframeTransport';\n\t\n\t            item._prepareToUploading();\n\t            if (this.isUploading) return;\n\t\n\t            this._onBeforeUploadItem(item);\n\t            if (item.isCancel) return;\n\t\n\t            item.isUploading = true;\n\t            this.isUploading = true;\n\t            this[transport](item);\n\t            this._render();\n\t        };\n\t        /**\r\n\t         * Cancels uploading of item from the queue\r\n\t         * @param {FileItem|Number} value\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.cancelItem = function cancelItem(value) {\n\t            var _this2 = this;\n\t\n\t            var index = this.getIndexOfItem(value);\n\t            var item = this.queue[index];\n\t            var prop = this.isHTML5 ? '_xhr' : '_form';\n\t            if (!item) return;\n\t            item.isCancel = true;\n\t            if (item.isUploading) {\n\t                // It will call this._onCancelItem() & this._onCompleteItem() asynchronously\n\t                item[prop].abort();\n\t            } else {\n\t                var dummy = [undefined, 0, {}];\n\t                var onNextTick = function onNextTick() {\n\t                    _this2._onCancelItem.apply(_this2, [item].concat(dummy));\n\t                    _this2._onCompleteItem.apply(_this2, [item].concat(dummy));\n\t                };\n\t                $timeout(onNextTick); // Trigger callbacks asynchronously (setImmediate emulation)\n\t            }\n\t        };\n\t        /**\r\n\t         * Uploads all not uploaded items of queue\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.uploadAll = function uploadAll() {\n\t            var items = this.getNotUploadedItems().filter(function (item) {\n\t                return !item.isUploading;\n\t            });\n\t            if (!items.length) return;\n\t\n\t            forEach(items, function (item) {\n\t                return item._prepareToUploading();\n\t            });\n\t            items[0].upload();\n\t        };\n\t        /**\r\n\t         * Cancels all uploads\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.cancelAll = function cancelAll() {\n\t            var items = this.getNotUploadedItems();\n\t            forEach(items, function (item) {\n\t                return item.cancel();\n\t            });\n\t        };\n\t        /**\r\n\t         * Returns \"true\" if value an instance of File\r\n\t         * @param {*} value\r\n\t         * @returns {Boolean}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.isFile = function isFile(value) {\n\t            return this.constructor.isFile(value);\n\t        };\n\t        /**\r\n\t         * Returns \"true\" if value an instance of FileLikeObject\r\n\t         * @param {*} value\r\n\t         * @returns {Boolean}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.isFileLikeObject = function isFileLikeObject(value) {\n\t            return this.constructor.isFileLikeObject(value);\n\t        };\n\t        /**\r\n\t         * Returns \"true\" if value is array like object\r\n\t         * @param {*} value\r\n\t         * @returns {Boolean}\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.isArrayLikeObject = function isArrayLikeObject(value) {\n\t            return this.constructor.isArrayLikeObject(value);\n\t        };\n\t        /**\r\n\t         * Returns a index of item from the queue\r\n\t         * @param {Item|Number} value\r\n\t         * @returns {Number}\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.getIndexOfItem = function getIndexOfItem(value) {\n\t            return isNumber(value) ? value : this.queue.indexOf(value);\n\t        };\n\t        /**\r\n\t         * Returns not uploaded items\r\n\t         * @returns {Array}\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.getNotUploadedItems = function getNotUploadedItems() {\n\t            return this.queue.filter(function (item) {\n\t                return !item.isUploaded;\n\t            });\n\t        };\n\t        /**\r\n\t         * Returns items ready for upload\r\n\t         * @returns {Array}\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.getReadyItems = function getReadyItems() {\n\t            return this.queue.filter(function (item) {\n\t                return item.isReady && !item.isUploading;\n\t            }).sort(function (item1, item2) {\n\t                return item1.index - item2.index;\n\t            });\n\t        };\n\t        /**\r\n\t         * Destroys instance of FileUploader\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.destroy = function destroy() {\n\t            var _this3 = this;\n\t\n\t            forEach(this._directives, function (key) {\n\t                forEach(_this3._directives[key], function (object) {\n\t                    object.destroy();\n\t                });\n\t            });\n\t        };\n\t        /**\r\n\t         * Callback\r\n\t         * @param {Array} fileItems\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onAfterAddingAll = function onAfterAddingAll(fileItems) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {FileItem} fileItem\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onAfterAddingFile = function onAfterAddingFile(fileItem) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {File|Object} item\r\n\t         * @param {Object} filter\r\n\t         * @param {Object} options\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onWhenAddingFileFailed = function onWhenAddingFileFailed(item, filter, options) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {FileItem} fileItem\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onBeforeUploadItem = function onBeforeUploadItem(fileItem) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {FileItem} fileItem\r\n\t         * @param {Number} progress\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onProgressItem = function onProgressItem(fileItem, progress) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {Number} progress\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onProgressAll = function onProgressAll(progress) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {FileItem} item\r\n\t         * @param {*} response\r\n\t         * @param {Number} status\r\n\t         * @param {Object} headers\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onSuccessItem = function onSuccessItem(item, response, status, headers) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {FileItem} item\r\n\t         * @param {*} response\r\n\t         * @param {Number} status\r\n\t         * @param {Object} headers\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onErrorItem = function onErrorItem(item, response, status, headers) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {FileItem} item\r\n\t         * @param {*} response\r\n\t         * @param {Number} status\r\n\t         * @param {Object} headers\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onCancelItem = function onCancelItem(item, response, status, headers) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {FileItem} item\r\n\t         * @param {*} response\r\n\t         * @param {Number} status\r\n\t         * @param {Object} headers\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onCompleteItem = function onCompleteItem(item, response, status, headers) {};\n\t        /**\r\n\t         * Callback\r\n\t         * @param {FileItem} item\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onTimeoutItem = function onTimeoutItem(item) {};\n\t        /**\r\n\t         * Callback\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype.onCompleteAll = function onCompleteAll() {};\n\t        /**********************\r\n\t         * PRIVATE\r\n\t         **********************/\n\t        /**\r\n\t         * Returns the total progress\r\n\t         * @param {Number} [value]\r\n\t         * @returns {Number}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._getTotalProgress = function _getTotalProgress(value) {\n\t            if (this.removeAfterUpload) return value || 0;\n\t\n\t            var notUploaded = this.getNotUploadedItems().length;\n\t            var uploaded = notUploaded ? this.queue.length - notUploaded : this.queue.length;\n\t            var ratio = 100 / this.queue.length;\n\t            var current = (value || 0) * ratio / 100;\n\t\n\t            return Math.round(uploaded * ratio + current);\n\t        };\n\t        /**\r\n\t         * Returns array of filters\r\n\t         * @param {Array<Function>|String} filters\r\n\t         * @returns {Array<Function>}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._getFilters = function _getFilters(filters) {\n\t            if (!filters) return this.filters;\n\t            if (isArray(filters)) return filters;\n\t            var names = filters.match(/[^\\s,]+/g);\n\t            return this.filters.filter(function (filter) {\n\t                return names.indexOf(filter.name) !== -1;\n\t            });\n\t        };\n\t        /**\r\n\t        * @param {Array<Function>} filters\r\n\t        * @returns {Array<Function>}\r\n\t        * @private\r\n\t        */\n\t\n\t\n\t        FileUploader.prototype._convertFiltersToPipes = function _convertFiltersToPipes(filters) {\n\t            var _this4 = this;\n\t\n\t            return filters.map(function (filter) {\n\t                var fn = bind(_this4, filter.fn);\n\t                fn.isAsync = filter.fn.length === 3;\n\t                fn.originalFilter = filter;\n\t                return fn;\n\t            });\n\t        };\n\t        /**\r\n\t         * Updates html\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._render = function _render() {\n\t            if (!$rootScope.$$phase) $rootScope.$apply();\n\t        };\n\t        /**\r\n\t         * Returns \"true\" if item is a file (not folder)\r\n\t         * @param {File|FileLikeObject} item\r\n\t         * @returns {Boolean}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._folderFilter = function _folderFilter(item) {\n\t            return !!(item.size || item.type);\n\t        };\n\t        /**\r\n\t         * Returns \"true\" if the limit has not been reached\r\n\t         * @returns {Boolean}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._queueLimitFilter = function _queueLimitFilter() {\n\t            return this.queue.length < this.queueLimit;\n\t        };\n\t        /**\r\n\t         * Checks whether upload successful\r\n\t         * @param {Number} status\r\n\t         * @returns {Boolean}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._isSuccessCode = function _isSuccessCode(status) {\n\t            return status >= 200 && status < 300 || status === 304;\n\t        };\n\t        /**\r\n\t         * Transforms the server response\r\n\t         * @param {*} response\r\n\t         * @param {Object} headers\r\n\t         * @returns {*}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._transformResponse = function _transformResponse(response, headers) {\n\t            var headersGetter = this._headersGetter(headers);\n\t            forEach($http.defaults.transformResponse, function (transformFn) {\n\t                response = transformFn(response, headersGetter);\n\t            });\n\t            return response;\n\t        };\n\t        /**\r\n\t         * Parsed response headers\r\n\t         * @param headers\r\n\t         * @returns {Object}\r\n\t         * @see https://github.com/angular/angular.js/blob/master/src/ng/http.js\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._parseHeaders = function _parseHeaders(headers) {\n\t            var parsed = {},\n\t                key,\n\t                val,\n\t                i;\n\t\n\t            if (!headers) return parsed;\n\t\n\t            forEach(headers.split('\\n'), function (line) {\n\t                i = line.indexOf(':');\n\t                key = line.slice(0, i).trim().toLowerCase();\n\t                val = line.slice(i + 1).trim();\n\t\n\t                if (key) {\n\t                    parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n\t                }\n\t            });\n\t\n\t            return parsed;\n\t        };\n\t        /**\r\n\t         * Returns function that returns headers\r\n\t         * @param {Object} parsedHeaders\r\n\t         * @returns {Function}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._headersGetter = function _headersGetter(parsedHeaders) {\n\t            return function (name) {\n\t                if (name) {\n\t                    return parsedHeaders[name.toLowerCase()] || null;\n\t                }\n\t                return parsedHeaders;\n\t            };\n\t        };\n\t        /**\r\n\t         * The XMLHttpRequest transport\r\n\t         * @param {FileItem} item\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._xhrTransport = function _xhrTransport(item) {\n\t            var _this5 = this;\n\t\n\t            var xhr = item._xhr = new XMLHttpRequest();\n\t            var sendable;\n\t\n\t            if (!item.disableMultipart) {\n\t                sendable = new FormData();\n\t                forEach(item.formData, function (obj) {\n\t                    forEach(obj, function (value, key) {\n\t                        sendable.append(key, value);\n\t                    });\n\t                });\n\t\n\t                sendable.append(item.alias, item._file, item.file.name);\n\t            } else {\n\t                sendable = item._file;\n\t            }\n\t\n\t            if (typeof item._file.size != 'number') {\n\t                throw new TypeError('The file specified is no longer valid');\n\t            }\n\t\n\t            xhr.upload.onprogress = function (event) {\n\t                var progress = Math.round(event.lengthComputable ? event.loaded * 100 / event.total : 0);\n\t                _this5._onProgressItem(item, progress);\n\t            };\n\t\n\t            xhr.onload = function () {\n\t                var headers = _this5._parseHeaders(xhr.getAllResponseHeaders());\n\t                var response = _this5._transformResponse(xhr.response, headers);\n\t                var gist = _this5._isSuccessCode(xhr.status) ? 'Success' : 'Error';\n\t                var method = '_on' + gist + 'Item';\n\t                _this5[method](item, response, xhr.status, headers);\n\t                _this5._onCompleteItem(item, response, xhr.status, headers);\n\t            };\n\t\n\t            xhr.onerror = function () {\n\t                var headers = _this5._parseHeaders(xhr.getAllResponseHeaders());\n\t                var response = _this5._transformResponse(xhr.response, headers);\n\t                _this5._onErrorItem(item, response, xhr.status, headers);\n\t                _this5._onCompleteItem(item, response, xhr.status, headers);\n\t            };\n\t\n\t            xhr.onabort = function () {\n\t                var headers = _this5._parseHeaders(xhr.getAllResponseHeaders());\n\t                var response = _this5._transformResponse(xhr.response, headers);\n\t                _this5._onCancelItem(item, response, xhr.status, headers);\n\t                _this5._onCompleteItem(item, response, xhr.status, headers);\n\t            };\n\t\n\t            xhr.ontimeout = function (e) {\n\t                var headers = _this5._parseHeaders(xhr.getAllResponseHeaders());\n\t                var response = \"Request Timeout.\";\n\t                _this5._onTimeoutItem(item);\n\t                _this5._onCompleteItem(item, response, 408, headers);\n\t            };\n\t\n\t            xhr.open(item.method, item.url, true);\n\t\n\t            xhr.timeout = item.timeout || 0;\n\t            xhr.withCredentials = item.withCredentials;\n\t\n\t            forEach(item.headers, function (value, name) {\n\t                xhr.setRequestHeader(name, value);\n\t            });\n\t\n\t            xhr.send(sendable);\n\t        };\n\t        /**\r\n\t         * The IFrame transport\r\n\t         * @param {FileItem} item\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._iframeTransport = function _iframeTransport(item) {\n\t            var _this6 = this;\n\t\n\t            var form = element('<form style=\"display: none;\" />');\n\t            var iframe = element('<iframe name=\"iframeTransport' + Date.now() + '\">');\n\t            var input = item._input;\n\t\n\t            var timeout = 0;\n\t            var timer = null;\n\t            var isTimedOut = false;\n\t\n\t            if (item._form) item._form.replaceWith(input); // remove old form\n\t            item._form = form; // save link to new form\n\t\n\t            input.prop('name', item.alias);\n\t\n\t            forEach(item.formData, function (obj) {\n\t                forEach(obj, function (value, key) {\n\t                    var element_ = element('<input type=\"hidden\" name=\"' + key + '\" />');\n\t                    element_.val(value);\n\t                    form.append(element_);\n\t                });\n\t            });\n\t\n\t            form.prop({\n\t                action: item.url,\n\t                method: 'POST',\n\t                target: iframe.prop('name'),\n\t                enctype: 'multipart/form-data',\n\t                encoding: 'multipart/form-data' // old IE\n\t            });\n\t\n\t            iframe.bind('load', function () {\n\t                var html = '';\n\t                var status = 200;\n\t\n\t                try {\n\t                    // Fix for legacy IE browsers that loads internal error page\n\t                    // when failed WS response received. In consequence iframe\n\t                    // content access denied error is thrown becouse trying to\n\t                    // access cross domain page. When such thing occurs notifying\n\t                    // with empty response object. See more info at:\n\t                    // http://stackoverflow.com/questions/151362/access-is-denied-error-on-accessing-iframe-document-object\n\t                    // Note that if non standard 4xx or 5xx error code returned\n\t                    // from WS then response content can be accessed without error\n\t                    // but 'XHR' status becomes 200. In order to avoid confusion\n\t                    // returning response via same 'success' event handler.\n\t\n\t                    // fixed angular.contents() for iframes\n\t                    html = iframe[0].contentDocument.body.innerHTML;\n\t                } catch (e) {\n\t                    // in case we run into the access-is-denied error or we have another error on the server side\n\t                    // (intentional 500,40... errors), we at least say 'something went wrong' -> 500\n\t                    status = 500;\n\t                }\n\t\n\t                if (timer) {\n\t                    clearTimeout(timer);\n\t                }\n\t                timer = null;\n\t\n\t                if (isTimedOut) {\n\t                    return false; //throw 'Request Timeout'\n\t                }\n\t\n\t                var xhr = { response: html, status: status, dummy: true };\n\t                var headers = {};\n\t                var response = _this6._transformResponse(xhr.response, headers);\n\t\n\t                _this6._onSuccessItem(item, response, xhr.status, headers);\n\t                _this6._onCompleteItem(item, response, xhr.status, headers);\n\t            });\n\t\n\t            form.abort = function () {\n\t                var xhr = { status: 0, dummy: true };\n\t                var headers = {};\n\t                var response;\n\t\n\t                iframe.unbind('load').prop('src', 'javascript:false;');\n\t                form.replaceWith(input);\n\t\n\t                _this6._onCancelItem(item, response, xhr.status, headers);\n\t                _this6._onCompleteItem(item, response, xhr.status, headers);\n\t            };\n\t\n\t            input.after(form);\n\t            form.append(input).append(iframe);\n\t\n\t            timeout = item.timeout || 0;\n\t            timer = null;\n\t\n\t            if (timeout) {\n\t                timer = setTimeout(function () {\n\t                    isTimedOut = true;\n\t\n\t                    item.isCancel = true;\n\t                    if (item.isUploading) {\n\t                        iframe.unbind('load').prop('src', 'javascript:false;');\n\t                        form.replaceWith(input);\n\t                    }\n\t\n\t                    var headers = {};\n\t                    var response = \"Request Timeout.\";\n\t                    _this6._onTimeoutItem(item);\n\t                    _this6._onCompleteItem(item, response, 408, headers);\n\t                }, timeout);\n\t            }\n\t\n\t            form[0].submit();\n\t        };\n\t        /**\r\n\t         * Inner callback\r\n\t         * @param {File|Object} item\r\n\t         * @param {Object} filter\r\n\t         * @param {Object} options\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onWhenAddingFileFailed = function _onWhenAddingFileFailed(item, filter, options) {\n\t            this.onWhenAddingFileFailed(item, filter, options);\n\t        };\n\t        /**\r\n\t         * Inner callback\r\n\t         * @param {FileItem} item\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onAfterAddingFile = function _onAfterAddingFile(item) {\n\t            this.onAfterAddingFile(item);\n\t        };\n\t        /**\r\n\t         * Inner callback\r\n\t         * @param {Array<FileItem>} items\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onAfterAddingAll = function _onAfterAddingAll(items) {\n\t            this.onAfterAddingAll(items);\n\t        };\n\t        /**\r\n\t         *  Inner callback\r\n\t         * @param {FileItem} item\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onBeforeUploadItem = function _onBeforeUploadItem(item) {\n\t            item._onBeforeUpload();\n\t            this.onBeforeUploadItem(item);\n\t        };\n\t        /**\r\n\t         * Inner callback\r\n\t         * @param {FileItem} item\r\n\t         * @param {Number} progress\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onProgressItem = function _onProgressItem(item, progress) {\n\t            var total = this._getTotalProgress(progress);\n\t            this.progress = total;\n\t            item._onProgress(progress);\n\t            this.onProgressItem(item, progress);\n\t            this.onProgressAll(total);\n\t            this._render();\n\t        };\n\t        /**\r\n\t         * Inner callback\r\n\t         * @param {FileItem} item\r\n\t         * @param {*} response\r\n\t         * @param {Number} status\r\n\t         * @param {Object} headers\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onSuccessItem = function _onSuccessItem(item, response, status, headers) {\n\t            item._onSuccess(response, status, headers);\n\t            this.onSuccessItem(item, response, status, headers);\n\t        };\n\t        /**\r\n\t         * Inner callback\r\n\t         * @param {FileItem} item\r\n\t         * @param {*} response\r\n\t         * @param {Number} status\r\n\t         * @param {Object} headers\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onErrorItem = function _onErrorItem(item, response, status, headers) {\n\t            item._onError(response, status, headers);\n\t            this.onErrorItem(item, response, status, headers);\n\t        };\n\t        /**\r\n\t         * Inner callback\r\n\t         * @param {FileItem} item\r\n\t         * @param {*} response\r\n\t         * @param {Number} status\r\n\t         * @param {Object} headers\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onCancelItem = function _onCancelItem(item, response, status, headers) {\n\t            item._onCancel(response, status, headers);\n\t            this.onCancelItem(item, response, status, headers);\n\t        };\n\t        /**\r\n\t         * Inner callback\r\n\t         * @param {FileItem} item\r\n\t         * @param {*} response\r\n\t         * @param {Number} status\r\n\t         * @param {Object} headers\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onCompleteItem = function _onCompleteItem(item, response, status, headers) {\n\t            item._onComplete(response, status, headers);\n\t            this.onCompleteItem(item, response, status, headers);\n\t\n\t            var nextItem = this.getReadyItems()[0];\n\t            this.isUploading = false;\n\t\n\t            if (isDefined(nextItem)) {\n\t                nextItem.upload();\n\t                return;\n\t            }\n\t\n\t            this.onCompleteAll();\n\t            this.progress = this._getTotalProgress();\n\t            this._render();\n\t        };\n\t        /**\r\n\t         * Inner callback\r\n\t         * @param {FileItem} item\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.prototype._onTimeoutItem = function _onTimeoutItem(item) {\n\t            item._onTimeout();\n\t            this.onTimeoutItem(item);\n\t        };\n\t        /**********************\r\n\t         * STATIC\r\n\t         **********************/\n\t        /**\r\n\t         * Returns \"true\" if value an instance of File\r\n\t         * @param {*} value\r\n\t         * @returns {Boolean}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.isFile = function isFile(value) {\n\t            return File && value instanceof File;\n\t        };\n\t        /**\r\n\t         * Returns \"true\" if value an instance of FileLikeObject\r\n\t         * @param {*} value\r\n\t         * @returns {Boolean}\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileUploader.isFileLikeObject = function isFileLikeObject(value) {\n\t            return value instanceof FileLikeObject;\n\t        };\n\t        /**\r\n\t         * Returns \"true\" if value is array like object\r\n\t         * @param {*} value\r\n\t         * @returns {Boolean}\r\n\t         */\n\t\n\t\n\t        FileUploader.isArrayLikeObject = function isArrayLikeObject(value) {\n\t            return isObject(value) && 'length' in value;\n\t        };\n\t        /**\r\n\t         * Inherits a target (Class_1) by a source (Class_2)\r\n\t         * @param {Function} target\r\n\t         * @param {Function} source\r\n\t         */\n\t\n\t\n\t        FileUploader.inherit = function inherit(target, source) {\n\t            target.prototype = Object.create(source.prototype);\n\t            target.prototype.constructor = target;\n\t            target.super_ = source;\n\t        };\n\t\n\t        return FileUploader;\n\t    }();\n\t\n\t    /**********************\r\n\t     * PUBLIC\r\n\t     **********************/\n\t    /**\r\n\t     * Checks a support the html5 uploader\r\n\t     * @returns {Boolean}\r\n\t     * @readonly\r\n\t     */\n\t\n\t\n\t    FileUploader.prototype.isHTML5 = !!(File && FormData);\n\t    /**********************\r\n\t     * STATIC\r\n\t     **********************/\n\t    /**\r\n\t     * @borrows FileUploader.prototype.isHTML5\r\n\t     */\n\t    FileUploader.isHTML5 = FileUploader.prototype.isHTML5;\n\t\n\t    return FileUploader;\n\t}\n\t\n\t__identity.$inject = ['fileUploaderOptions', '$rootScope', '$http', '$window', '$timeout', 'FileLikeObject', 'FileItem', 'Pipeline'];\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar _angular = angular,\n\t    copy = _angular.copy,\n\t    isElement = _angular.isElement,\n\t    isString = _angular.isString;\n\tfunction __identity() {\n\t\n\t    return function () {\n\t        /**\r\n\t         * Creates an instance of FileLikeObject\r\n\t         * @param {File|HTMLInputElement|Object} fileOrInput\r\n\t         * @constructor\r\n\t         */\n\t        function FileLikeObject(fileOrInput) {\n\t            _classCallCheck(this, FileLikeObject);\n\t\n\t            var isInput = isElement(fileOrInput);\n\t            var fakePathOrObject = isInput ? fileOrInput.value : fileOrInput;\n\t            var postfix = isString(fakePathOrObject) ? 'FakePath' : 'Object';\n\t            var method = '_createFrom' + postfix;\n\t            this[method](fakePathOrObject, fileOrInput);\n\t        }\n\t        /**\r\n\t         * Creates file like object from fake path string\r\n\t         * @param {String} path\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileLikeObject.prototype._createFromFakePath = function _createFromFakePath(path, input) {\n\t            this.lastModifiedDate = null;\n\t            this.size = null;\n\t            this.type = 'like/' + path.slice(path.lastIndexOf('.') + 1).toLowerCase();\n\t            this.name = path.slice(path.lastIndexOf('/') + path.lastIndexOf('\\\\') + 2);\n\t            this.input = input;\n\t        };\n\t        /**\r\n\t         * Creates file like object from object\r\n\t         * @param {File|FileLikeObject} object\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileLikeObject.prototype._createFromObject = function _createFromObject(object) {\n\t            this.lastModifiedDate = copy(object.lastModifiedDate);\n\t            this.size = object.size;\n\t            this.type = object.type;\n\t            this.name = object.name;\n\t            this.input = object.input;\n\t        };\n\t\n\t        return FileLikeObject;\n\t    }();\n\t}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar _angular = angular,\n\t    copy = _angular.copy,\n\t    extend = _angular.extend,\n\t    element = _angular.element,\n\t    isElement = _angular.isElement;\n\tfunction __identity($compile, FileLikeObject) {\n\t\n\t  return function () {\n\t    /**\r\n\t     * Creates an instance of FileItem\r\n\t     * @param {FileUploader} uploader\r\n\t     * @param {File|HTMLInputElement|Object} some\r\n\t     * @param {Object} options\r\n\t     * @constructor\r\n\t     */\n\t    function FileItem(uploader, some, options) {\n\t      _classCallCheck(this, FileItem);\n\t\n\t      var isInput = !!some.input;\n\t      var input = isInput ? element(some.input) : null;\n\t      var file = !isInput ? some : null;\n\t\n\t      extend(this, {\n\t        url: uploader.url,\n\t        alias: uploader.alias,\n\t        headers: copy(uploader.headers),\n\t        formData: copy(uploader.formData),\n\t        removeAfterUpload: uploader.removeAfterUpload,\n\t        withCredentials: uploader.withCredentials,\n\t        disableMultipart: uploader.disableMultipart,\n\t        method: uploader.method,\n\t        timeout: uploader.timeout\n\t      }, options, {\n\t        uploader: uploader,\n\t        file: new FileLikeObject(some),\n\t        isReady: false,\n\t        isUploading: false,\n\t        isUploaded: false,\n\t        isSuccess: false,\n\t        isCancel: false,\n\t        isError: false,\n\t        progress: 0,\n\t        index: null,\n\t        _file: file,\n\t        _input: input\n\t      });\n\t\n\t      if (input) this._replaceNode(input);\n\t    }\n\t    /**********************\r\n\t     * PUBLIC\r\n\t     **********************/\n\t    /**\r\n\t     * Uploads a FileItem\r\n\t     */\n\t\n\t\n\t    FileItem.prototype.upload = function upload() {\n\t      try {\n\t        this.uploader.uploadItem(this);\n\t      } catch (e) {\n\t        var message = e.name + ':' + e.message;\n\t        this.uploader._onCompleteItem(this, message, e.code, []);\n\t        this.uploader._onErrorItem(this, message, e.code, []);\n\t      }\n\t    };\n\t    /**\r\n\t     * Cancels uploading of FileItem\r\n\t     */\n\t\n\t\n\t    FileItem.prototype.cancel = function cancel() {\n\t      this.uploader.cancelItem(this);\n\t    };\n\t    /**\r\n\t     * Removes a FileItem\r\n\t     */\n\t\n\t\n\t    FileItem.prototype.remove = function remove() {\n\t      this.uploader.removeFromQueue(this);\n\t    };\n\t    /**\r\n\t     * Callback\r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype.onBeforeUpload = function onBeforeUpload() {};\n\t    /**\r\n\t     * Callback\r\n\t     * @param {Number} progress\r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype.onProgress = function onProgress(progress) {};\n\t    /**\r\n\t     * Callback\r\n\t     * @param {*} response\r\n\t     * @param {Number} status\r\n\t     * @param {Object} headers\r\n\t     */\n\t\n\t\n\t    FileItem.prototype.onSuccess = function onSuccess(response, status, headers) {};\n\t    /**\r\n\t     * Callback\r\n\t     * @param {*} response\r\n\t     * @param {Number} status\r\n\t     * @param {Object} headers\r\n\t     */\n\t\n\t\n\t    FileItem.prototype.onError = function onError(response, status, headers) {};\n\t    /**\r\n\t     * Callback\r\n\t     * @param {*} response\r\n\t     * @param {Number} status\r\n\t     * @param {Object} headers\r\n\t     */\n\t\n\t\n\t    FileItem.prototype.onCancel = function onCancel(response, status, headers) {};\n\t    /**\r\n\t     * Callback\r\n\t     * @param {*} response\r\n\t     * @param {Number} status\r\n\t     * @param {Object} headers\r\n\t     */\n\t\n\t\n\t    FileItem.prototype.onComplete = function onComplete(response, status, headers) {};\n\t    /**\r\n\t     * Callback         \r\n\t     */\n\t\n\t\n\t    FileItem.prototype.onTimeout = function onTimeout() {};\n\t    /**********************\r\n\t     * PRIVATE\r\n\t     **********************/\n\t    /**\r\n\t     * Inner callback\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._onBeforeUpload = function _onBeforeUpload() {\n\t      this.isReady = true;\n\t      this.isUploading = false;\n\t      this.isUploaded = false;\n\t      this.isSuccess = false;\n\t      this.isCancel = false;\n\t      this.isError = false;\n\t      this.progress = 0;\n\t      this.onBeforeUpload();\n\t    };\n\t    /**\r\n\t     * Inner callback\r\n\t     * @param {Number} progress\r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._onProgress = function _onProgress(progress) {\n\t      this.progress = progress;\n\t      this.onProgress(progress);\n\t    };\n\t    /**\r\n\t     * Inner callback\r\n\t     * @param {*} response\r\n\t     * @param {Number} status\r\n\t     * @param {Object} headers\r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._onSuccess = function _onSuccess(response, status, headers) {\n\t      this.isReady = false;\n\t      this.isUploading = false;\n\t      this.isUploaded = true;\n\t      this.isSuccess = true;\n\t      this.isCancel = false;\n\t      this.isError = false;\n\t      this.progress = 100;\n\t      this.index = null;\n\t      this.onSuccess(response, status, headers);\n\t    };\n\t    /**\r\n\t     * Inner callback\r\n\t     * @param {*} response\r\n\t     * @param {Number} status\r\n\t     * @param {Object} headers\r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._onError = function _onError(response, status, headers) {\n\t      this.isReady = false;\n\t      this.isUploading = false;\n\t      this.isUploaded = true;\n\t      this.isSuccess = false;\n\t      this.isCancel = false;\n\t      this.isError = true;\n\t      this.progress = 0;\n\t      this.index = null;\n\t      this.onError(response, status, headers);\n\t    };\n\t    /**\r\n\t     * Inner callback\r\n\t     * @param {*} response\r\n\t     * @param {Number} status\r\n\t     * @param {Object} headers\r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._onCancel = function _onCancel(response, status, headers) {\n\t      this.isReady = false;\n\t      this.isUploading = false;\n\t      this.isUploaded = false;\n\t      this.isSuccess = false;\n\t      this.isCancel = true;\n\t      this.isError = false;\n\t      this.progress = 0;\n\t      this.index = null;\n\t      this.onCancel(response, status, headers);\n\t    };\n\t    /**\r\n\t     * Inner callback\r\n\t     * @param {*} response\r\n\t     * @param {Number} status\r\n\t     * @param {Object} headers\r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._onComplete = function _onComplete(response, status, headers) {\n\t      this.onComplete(response, status, headers);\n\t      if (this.removeAfterUpload) this.remove();\n\t    };\n\t    /**\r\n\t     * Inner callback         \r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._onTimeout = function _onTimeout() {\n\t      this.isReady = false;\n\t      this.isUploading = false;\n\t      this.isUploaded = false;\n\t      this.isSuccess = false;\n\t      this.isCancel = false;\n\t      this.isError = true;\n\t      this.progress = 0;\n\t      this.index = null;\n\t      this.onTimeout();\n\t    };\n\t    /**\r\n\t     * Destroys a FileItem\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._destroy = function _destroy() {\n\t      if (this._input) this._input.remove();\n\t      if (this._form) this._form.remove();\n\t      delete this._form;\n\t      delete this._input;\n\t    };\n\t    /**\r\n\t     * Prepares to uploading\r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._prepareToUploading = function _prepareToUploading() {\n\t      this.index = this.index || ++this.uploader._nextIndex;\n\t      this.isReady = true;\n\t    };\n\t    /**\r\n\t     * Replaces input element on his clone\r\n\t     * @param {JQLite|jQuery} input\r\n\t     * @private\r\n\t     */\n\t\n\t\n\t    FileItem.prototype._replaceNode = function _replaceNode(input) {\n\t      var clone = $compile(input.clone())(input.scope());\n\t      clone.prop('value', null); // FF fix\n\t      input.css('display', 'none');\n\t      input.after(clone); // remove jquery dependency\n\t    };\n\t\n\t    return FileItem;\n\t  }();\n\t}\n\t\n\t__identity.$inject = ['$compile', 'FileLikeObject'];\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar _angular = angular,\n\t    extend = _angular.extend;\n\tfunction __identity() {\n\t    var FileDirective = function () {\n\t        /**\r\n\t         * Creates instance of {FileDirective} object\r\n\t         * @param {Object} options\r\n\t         * @param {Object} options.uploader\r\n\t         * @param {HTMLElement} options.element\r\n\t         * @param {Object} options.events\r\n\t         * @param {String} options.prop\r\n\t         * @constructor\r\n\t         */\n\t        function FileDirective(options) {\n\t            _classCallCheck(this, FileDirective);\n\t\n\t            extend(this, options);\n\t            this.uploader._directives[this.prop].push(this);\n\t            this._saveLinks();\n\t            this.bind();\n\t        }\n\t        /**\r\n\t         * Binds events handles\r\n\t         */\n\t\n\t\n\t        FileDirective.prototype.bind = function bind() {\n\t            for (var key in this.events) {\n\t                var prop = this.events[key];\n\t                this.element.bind(key, this[prop]);\n\t            }\n\t        };\n\t        /**\r\n\t         * Unbinds events handles\r\n\t         */\n\t\n\t\n\t        FileDirective.prototype.unbind = function unbind() {\n\t            for (var key in this.events) {\n\t                this.element.unbind(key, this.events[key]);\n\t            }\n\t        };\n\t        /**\r\n\t         * Destroys directive\r\n\t         */\n\t\n\t\n\t        FileDirective.prototype.destroy = function destroy() {\n\t            var index = this.uploader._directives[this.prop].indexOf(this);\n\t            this.uploader._directives[this.prop].splice(index, 1);\n\t            this.unbind();\n\t            // this.element = null;\n\t        };\n\t        /**\r\n\t         * Saves links to functions\r\n\t         * @private\r\n\t         */\n\t\n\t\n\t        FileDirective.prototype._saveLinks = function _saveLinks() {\n\t            for (var key in this.events) {\n\t                var prop = this.events[key];\n\t                this[prop] = this[prop].bind(this);\n\t            }\n\t        };\n\t\n\t        return FileDirective;\n\t    }();\n\t\n\t    /**\r\n\t     * Map of events\r\n\t     * @type {Object}\r\n\t     */\n\t\n\t\n\t    FileDirective.prototype.events = {};\n\t\n\t    return FileDirective;\n\t}\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _angular = angular,\n\t    extend = _angular.extend;\n\tfunction __identity($compile, FileDirective) {\n\t\n\t    return function (_FileDirective) {\n\t        _inherits(FileSelect, _FileDirective);\n\t\n\t        /**\r\n\t         * Creates instance of {FileSelect} object\r\n\t         * @param {Object} options\r\n\t         * @constructor\r\n\t         */\n\t        function FileSelect(options) {\n\t            _classCallCheck(this, FileSelect);\n\t\n\t            var extendedOptions = extend(options, {\n\t                // Map of events\n\t                events: {\n\t                    $destroy: 'destroy',\n\t                    change: 'onChange'\n\t                },\n\t                // Name of property inside uploader._directive object\n\t                prop: 'select'\n\t            });\n\t\n\t            var _this = _possibleConstructorReturn(this, _FileDirective.call(this, extendedOptions));\n\t\n\t            if (!_this.uploader.isHTML5) {\n\t                _this.element.removeAttr('multiple');\n\t            }\n\t            _this.element.prop('value', null); // FF fix\n\t            return _this;\n\t        }\n\t        /**\r\n\t         * Returns options\r\n\t         * @return {Object|undefined}\r\n\t         */\n\t\n\t\n\t        FileSelect.prototype.getOptions = function getOptions() {};\n\t        /**\r\n\t         * Returns filters\r\n\t         * @return {Array<Function>|String|undefined}\r\n\t         */\n\t\n\t\n\t        FileSelect.prototype.getFilters = function getFilters() {};\n\t        /**\r\n\t         * If returns \"true\" then HTMLInputElement will be cleared\r\n\t         * @returns {Boolean}\r\n\t         */\n\t\n\t\n\t        FileSelect.prototype.isEmptyAfterSelection = function isEmptyAfterSelection() {\n\t            return !!this.element.attr('multiple');\n\t        };\n\t        /**\r\n\t         * Event handler\r\n\t         */\n\t\n\t\n\t        FileSelect.prototype.onChange = function onChange() {\n\t            var files = this.uploader.isHTML5 ? this.element[0].files : this.element[0];\n\t            var options = this.getOptions();\n\t            var filters = this.getFilters();\n\t\n\t            if (!this.uploader.isHTML5) this.destroy();\n\t            this.uploader.addToQueue(files, options, filters);\n\t            if (this.isEmptyAfterSelection()) {\n\t                this.element.prop('value', null);\n\t                this.element.replaceWith($compile(this.element.clone())(this.scope)); // IE fix\n\t            }\n\t        };\n\t\n\t        return FileSelect;\n\t    }(FileDirective);\n\t}\n\t\n\t__identity.$inject = ['$compile', 'FileDirective'];\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t  value: true\n\t});\n\texports.default = __identity;\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar _angular = angular,\n\t    bind = _angular.bind,\n\t    isUndefined = _angular.isUndefined;\n\tfunction __identity($q) {\n\t\n\t  return function () {\n\t    /**\r\n\t     * @param {Array<Function>} pipes\r\n\t     */\n\t    function Pipeline() {\n\t      var pipes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\t\n\t      _classCallCheck(this, Pipeline);\n\t\n\t      this.pipes = pipes;\n\t    }\n\t\n\t    Pipeline.prototype.next = function next(args) {\n\t      var pipe = this.pipes.shift();\n\t      if (isUndefined(pipe)) {\n\t        this.onSuccessful.apply(this, _toConsumableArray(args));\n\t        return;\n\t      }\n\t      var err = new Error('The filter has not passed');\n\t      err.pipe = pipe;\n\t      err.args = args;\n\t      if (pipe.isAsync) {\n\t        var deferred = $q.defer();\n\t        var onFulfilled = bind(this, this.next, args);\n\t        var onRejected = bind(this, this.onThrown, err);\n\t        deferred.promise.then(onFulfilled, onRejected);\n\t        pipe.apply(undefined, _toConsumableArray(args).concat([deferred]));\n\t      } else {\n\t        var isDone = Boolean(pipe.apply(undefined, _toConsumableArray(args)));\n\t        if (isDone) {\n\t          this.next(args);\n\t        } else {\n\t          this.onThrown(err);\n\t        }\n\t      }\n\t    };\n\t\n\t    Pipeline.prototype.exec = function exec() {\n\t      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t        args[_key] = arguments[_key];\n\t      }\n\t\n\t      this.next(args);\n\t    };\n\t\n\t    Pipeline.prototype.onThrown = function onThrown(err) {};\n\t\n\t    Pipeline.prototype.onSuccessful = function onSuccessful() {};\n\t\n\t    return Pipeline;\n\t  }();\n\t}\n\t\n\t__identity.$inject = ['$q'];\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _angular = angular,\n\t    extend = _angular.extend,\n\t    forEach = _angular.forEach;\n\tfunction __identity(FileDirective) {\n\t\n\t    return function (_FileDirective) {\n\t        _inherits(FileDrop, _FileDirective);\n\t\n\t        /**\r\n\t         * Creates instance of {FileDrop} object\r\n\t         * @param {Object} options\r\n\t         * @constructor\r\n\t         */\n\t        function FileDrop(options) {\n\t            _classCallCheck(this, FileDrop);\n\t\n\t            var extendedOptions = extend(options, {\n\t                // Map of events\n\t                events: {\n\t                    $destroy: 'destroy',\n\t                    drop: 'onDrop',\n\t                    dragover: 'onDragOver',\n\t                    dragleave: 'onDragLeave'\n\t                },\n\t                // Name of property inside uploader._directive object\n\t                prop: 'drop'\n\t            });\n\t\n\t            return _possibleConstructorReturn(this, _FileDirective.call(this, extendedOptions));\n\t        }\n\t        /**\r\n\t         * Returns options\r\n\t         * @return {Object|undefined}\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype.getOptions = function getOptions() {};\n\t        /**\r\n\t         * Returns filters\r\n\t         * @return {Array<Function>|String|undefined}\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype.getFilters = function getFilters() {};\n\t        /**\r\n\t         * Event handler\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype.onDrop = function onDrop(event) {\n\t            var transfer = this._getTransfer(event);\n\t            if (!transfer) return;\n\t            var options = this.getOptions();\n\t            var filters = this.getFilters();\n\t            this._preventAndStop(event);\n\t            forEach(this.uploader._directives.over, this._removeOverClass, this);\n\t            this.uploader.addToQueue(transfer.files, options, filters);\n\t        };\n\t        /**\r\n\t         * Event handler\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype.onDragOver = function onDragOver(event) {\n\t            var transfer = this._getTransfer(event);\n\t            if (!this._haveFiles(transfer.types)) return;\n\t            transfer.dropEffect = 'copy';\n\t            this._preventAndStop(event);\n\t            forEach(this.uploader._directives.over, this._addOverClass, this);\n\t        };\n\t        /**\r\n\t         * Event handler\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype.onDragLeave = function onDragLeave(event) {\n\t            if (event.currentTarget === this.element[0]) return;\n\t            this._preventAndStop(event);\n\t            forEach(this.uploader._directives.over, this._removeOverClass, this);\n\t        };\n\t        /**\r\n\t         * Helper\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype._getTransfer = function _getTransfer(event) {\n\t            return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;\n\t        };\n\t        /**\r\n\t         * Helper\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype._preventAndStop = function _preventAndStop(event) {\n\t            event.preventDefault();\n\t            event.stopPropagation();\n\t        };\n\t        /**\r\n\t         * Returns \"true\" if types contains files\r\n\t         * @param {Object} types\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype._haveFiles = function _haveFiles(types) {\n\t            if (!types) return false;\n\t            if (types.indexOf) {\n\t                return types.indexOf('Files') !== -1;\n\t            } else if (types.contains) {\n\t                return types.contains('Files');\n\t            } else {\n\t                return false;\n\t            }\n\t        };\n\t        /**\r\n\t         * Callback\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype._addOverClass = function _addOverClass(item) {\n\t            item.addOverClass();\n\t        };\n\t        /**\r\n\t         * Callback\r\n\t         */\n\t\n\t\n\t        FileDrop.prototype._removeOverClass = function _removeOverClass(item) {\n\t            item.removeOverClass();\n\t        };\n\t\n\t        return FileDrop;\n\t    }(FileDirective);\n\t}\n\t\n\t__identity.$inject = ['FileDirective'];\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _angular = angular,\n\t    extend = _angular.extend;\n\tfunction __identity(FileDirective) {\n\t\n\t    return function (_FileDirective) {\n\t        _inherits(FileOver, _FileDirective);\n\t\n\t        /**\r\n\t         * Creates instance of {FileDrop} object\r\n\t         * @param {Object} options\r\n\t         * @constructor\r\n\t         */\n\t        function FileOver(options) {\n\t            _classCallCheck(this, FileOver);\n\t\n\t            var extendedOptions = extend(options, {\n\t                // Map of events\n\t                events: {\n\t                    $destroy: 'destroy'\n\t                },\n\t                // Name of property inside uploader._directive object\n\t                prop: 'over',\n\t                // Over class\n\t                overClass: 'nv-file-over'\n\t            });\n\t\n\t            return _possibleConstructorReturn(this, _FileDirective.call(this, extendedOptions));\n\t        }\n\t        /**\r\n\t         * Adds over class\r\n\t         */\n\t\n\t\n\t        FileOver.prototype.addOverClass = function addOverClass() {\n\t            this.element.addClass(this.getOverClass());\n\t        };\n\t        /**\r\n\t         * Removes over class\r\n\t         */\n\t\n\t\n\t        FileOver.prototype.removeOverClass = function removeOverClass() {\n\t            this.element.removeClass(this.getOverClass());\n\t        };\n\t        /**\r\n\t         * Returns over class\r\n\t         * @returns {String}\r\n\t         */\n\t\n\t\n\t        FileOver.prototype.getOverClass = function getOverClass() {\n\t            return this.overClass;\n\t        };\n\t\n\t        return FileOver;\n\t    }(FileDirective);\n\t}\n\t\n\t__identity.$inject = ['FileDirective'];\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction __identity($parse, FileUploader, FileSelect) {\n\t\n\t    return {\n\t        link: function link(scope, element, attributes) {\n\t            var uploader = scope.$eval(attributes.uploader);\n\t\n\t            if (!(uploader instanceof FileUploader)) {\n\t                throw new TypeError('\"Uploader\" must be an instance of FileUploader');\n\t            }\n\t\n\t            var object = new FileSelect({\n\t                uploader: uploader,\n\t                element: element,\n\t                scope: scope\n\t            });\n\t\n\t            object.getOptions = $parse(attributes.options).bind(object, scope);\n\t            object.getFilters = function () {\n\t                return attributes.filters;\n\t            };\n\t        }\n\t    };\n\t}\n\t\n\t__identity.$inject = ['$parse', 'FileUploader', 'FileSelect'];\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction __identity($parse, FileUploader, FileDrop) {\n\t\n\t    return {\n\t        link: function link(scope, element, attributes) {\n\t            var uploader = scope.$eval(attributes.uploader);\n\t\n\t            if (!(uploader instanceof FileUploader)) {\n\t                throw new TypeError('\"Uploader\" must be an instance of FileUploader');\n\t            }\n\t\n\t            if (!uploader.isHTML5) return;\n\t\n\t            var object = new FileDrop({\n\t                uploader: uploader,\n\t                element: element\n\t            });\n\t\n\t            object.getOptions = $parse(attributes.options).bind(object, scope);\n\t            object.getFilters = function () {\n\t                return attributes.filters;\n\t            };\n\t        }\n\t    };\n\t}\n\t\n\t__identity.$inject = ['$parse', 'FileUploader', 'FileDrop'];\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t    value: true\n\t});\n\texports.default = __identity;\n\t\n\tvar _config = __webpack_require__(1);\n\t\n\tvar _config2 = _interopRequireDefault(_config);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction __identity(FileUploader, FileOver) {\n\t\n\t    return {\n\t        link: function link(scope, element, attributes) {\n\t            var uploader = scope.$eval(attributes.uploader);\n\t\n\t            if (!(uploader instanceof FileUploader)) {\n\t                throw new TypeError('\"Uploader\" must be an instance of FileUploader');\n\t            }\n\t\n\t            var object = new FileOver({\n\t                uploader: uploader,\n\t                element: element\n\t            });\n\t\n\t            object.getOverClass = function () {\n\t                return attributes.overClass || object.overClass;\n\t            };\n\t        }\n\t    };\n\t}\n\t\n\t__identity.$inject = ['FileUploader', 'FileOver'];\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// angular-file-upload.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 8e3763ddc3eea8ac4eff","'use strict';\r\n\r\n\r\nimport CONFIG from './config.json';\r\n\r\n\r\nimport options from './values/options'\r\n\r\n\r\nimport serviceFileUploader from './services/FileUploader';\r\nimport serviceFileLikeObject from './services/FileLikeObject';\r\nimport serviceFileItem from './services/FileItem';\r\nimport serviceFileDirective from './services/FileDirective';\r\nimport serviceFileSelect from './services/FileSelect';\r\nimport servicePipeline from './services/Pipeline';\r\nimport serviceFileDrop from './services/FileDrop';\r\nimport serviceFileOver from './services/FileOver';\r\n\r\n\r\nimport directiveFileSelect from './directives/FileSelect';\r\nimport directiveFileDrop from './directives/FileDrop';\r\nimport directiveFileOver from './directives/FileOver';\r\n\r\n\r\nangular\r\n    .module(CONFIG.name, [])\r\n    .value('fileUploaderOptions', options)\r\n    .factory('FileUploader', serviceFileUploader)\r\n    .factory('FileLikeObject', serviceFileLikeObject)\r\n    .factory('FileItem', serviceFileItem)\r\n    .factory('FileDirective', serviceFileDirective)\r\n    .factory('FileSelect', serviceFileSelect)\r\n    .factory('FileDrop', serviceFileDrop)\r\n    .factory('FileOver', serviceFileOver)\r\n    .factory('Pipeline', servicePipeline)\r\n    .directive('nvFileSelect', directiveFileSelect)\r\n    .directive('nvFileDrop', directiveFileDrop)\r\n    .directive('nvFileOver', directiveFileOver)\r\n    .run([\r\n        'FileUploader',\r\n        'FileLikeObject',\r\n        'FileItem',\r\n        'FileDirective',\r\n        'FileSelect',\r\n        'FileDrop',\r\n        'FileOver',\r\n        'Pipeline',\r\n        function(FileUploader, FileLikeObject, FileItem, FileDirective, FileSelect, FileDrop, FileOver, Pipeline) {\r\n            // only for compatibility\r\n            FileUploader.FileLikeObject = FileLikeObject;\r\n            FileUploader.FileItem = FileItem;\r\n            FileUploader.FileDirective = FileDirective;\r\n            FileUploader.FileSelect = FileSelect;\r\n            FileUploader.FileDrop = FileDrop;\r\n            FileUploader.FileOver = FileOver;\r\n            FileUploader.Pipeline = Pipeline;\r\n        }\r\n    ]);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","module.exports = {\"name\":\"angularFileUpload\"}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/config.json\n// module id = 1\n// module chunks = 0 1","'use strict';\r\n\r\n\r\nexport default {\r\n    url: '/',\r\n    alias: 'file',\r\n    headers: {},\r\n    queue: [],\r\n    progress: 0,\r\n    autoUpload: false,\r\n    removeAfterUpload: false,\r\n    method: 'POST',\r\n    filters: [],\r\n    formData: [],\r\n    queueLimit: Number.MAX_VALUE,\r\n    withCredentials: false,\r\n    disableMultipart: false\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/values/options.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nlet {\r\n    bind,\r\n    copy,\r\n    extend,\r\n    forEach,\r\n    isObject,\r\n    isNumber,\r\n    isDefined,\r\n    isArray,\r\n    isUndefined,\r\n    element\r\n    } = angular;\r\n\r\n\r\nexport default function __identity(fileUploaderOptions, $rootScope, $http, $window, $timeout, FileLikeObject, FileItem, Pipeline) {\r\n    \r\n    \r\n    let {\r\n        File,\r\n        FormData\r\n        } = $window;\r\n    \r\n    \r\n    class FileUploader {\r\n        /**********************\r\n         * PUBLIC\r\n         **********************/\r\n        /**\r\n         * Creates an instance of FileUploader\r\n         * @param {Object} [options]\r\n         * @constructor\r\n         */\r\n        constructor(options) {\r\n            var settings = copy(fileUploaderOptions);\r\n            \r\n            extend(this, settings, options, {\r\n                isUploading: false,\r\n                _nextIndex: 0,\r\n                _directives: {select: [], drop: [], over: []}\r\n            });\r\n\r\n            // add default filters\r\n            this.filters.unshift({name: 'queueLimit', fn: this._queueLimitFilter});\r\n            this.filters.unshift({name: 'folder', fn: this._folderFilter});\r\n        }\r\n        /**\r\n         * Adds items to the queue\r\n         * @param {File|HTMLInputElement|Object|FileList|Array<Object>} files\r\n         * @param {Object} [options]\r\n         * @param {Array<Function>|String} filters\r\n         */\r\n        addToQueue(files, options, filters) {\r\n            let incomingQueue = this.isArrayLikeObject(files) ? Array.prototype.slice.call(files): [files];\r\n            var arrayOfFilters = this._getFilters(filters);\r\n            var count = this.queue.length;\r\n            var addedFileItems = [];\r\n\r\n            let next = () => {\r\n                let something = incomingQueue.shift();\r\n                \r\n                if (isUndefined(something)) {\r\n                    return done();\r\n                }\r\n                \r\n                let fileLikeObject = this.isFile(something) ? something : new FileLikeObject(something);\r\n                let pipes = this._convertFiltersToPipes(arrayOfFilters);\r\n                let pipeline = new Pipeline(pipes);\r\n                let onThrown = (err) => {\r\n                    let {originalFilter} = err.pipe;\r\n                    let [fileLikeObject, options] = err.args;\r\n                    this._onWhenAddingFileFailed(fileLikeObject, originalFilter, options);\r\n                    next();\r\n                };\r\n                let onSuccessful = (fileLikeObject, options) => {\r\n                    let fileItem = new FileItem(this, fileLikeObject, options);\r\n                    addedFileItems.push(fileItem);\r\n                    this.queue.push(fileItem);\r\n                    this._onAfterAddingFile(fileItem);\r\n                    next();\r\n                };\r\n                pipeline.onThrown = onThrown;\r\n                pipeline.onSuccessful = onSuccessful;\r\n                pipeline.exec(fileLikeObject, options);\r\n            };\r\n                \r\n            let done = () => {\r\n                if(this.queue.length !== count) {\r\n                    this._onAfterAddingAll(addedFileItems);\r\n                    this.progress = this._getTotalProgress();\r\n                }\r\n\r\n                this._render();\r\n                if (this.autoUpload) this.uploadAll();\r\n            };\r\n            \r\n            next();\r\n        }\r\n        /**\r\n         * Remove items from the queue. Remove last: index = -1\r\n         * @param {FileItem|Number} value\r\n         */\r\n        removeFromQueue(value) {\r\n            var index = this.getIndexOfItem(value);\r\n            var item = this.queue[index];\r\n            if(item.isUploading) item.cancel();\r\n            this.queue.splice(index, 1);\r\n            item._destroy();\r\n            this.progress = this._getTotalProgress();\r\n        }\r\n        /**\r\n         * Clears the queue\r\n         */\r\n        clearQueue() {\r\n            while(this.queue.length) {\r\n                this.queue[0].remove();\r\n            }\r\n            this.progress = 0;\r\n        }\r\n        /**\r\n         * Uploads a item from the queue\r\n         * @param {FileItem|Number} value\r\n         */\r\n        uploadItem(value) {\r\n            var index = this.getIndexOfItem(value);\r\n            var item = this.queue[index];\r\n            var transport = this.isHTML5 ? '_xhrTransport' : '_iframeTransport';\r\n\r\n            item._prepareToUploading();\r\n            if(this.isUploading) return;\r\n\r\n            this._onBeforeUploadItem(item);\r\n            if (item.isCancel) return;\r\n\r\n            item.isUploading = true;\r\n            this.isUploading = true;\r\n            this[transport](item);\r\n            this._render();\r\n        }\r\n        /**\r\n         * Cancels uploading of item from the queue\r\n         * @param {FileItem|Number} value\r\n         */\r\n        cancelItem(value) {\r\n            var index = this.getIndexOfItem(value);\r\n            var item = this.queue[index];\r\n            var prop = this.isHTML5 ? '_xhr' : '_form';\r\n            if (!item) return;\r\n            item.isCancel = true;\r\n            if(item.isUploading) {\r\n                // It will call this._onCancelItem() & this._onCompleteItem() asynchronously\r\n                item[prop].abort();\r\n            } else {\r\n                let dummy = [undefined, 0, {}];\r\n                let onNextTick = () => {\r\n                    this._onCancelItem(item, ...dummy);\r\n                    this._onCompleteItem(item, ...dummy);\r\n                };\r\n                $timeout(onNextTick); // Trigger callbacks asynchronously (setImmediate emulation)\r\n            }\r\n        }\r\n        /**\r\n         * Uploads all not uploaded items of queue\r\n         */\r\n        uploadAll() {\r\n            var items = this.getNotUploadedItems().filter(item => !item.isUploading);\r\n            if(!items.length) return;\r\n\r\n            forEach(items, item => item._prepareToUploading());\r\n            items[0].upload();\r\n        }\r\n        /**\r\n         * Cancels all uploads\r\n         */\r\n        cancelAll() {\r\n            var items = this.getNotUploadedItems();\r\n            forEach(items, item => item.cancel());\r\n        }\r\n        /**\r\n         * Returns \"true\" if value an instance of File\r\n         * @param {*} value\r\n         * @returns {Boolean}\r\n         * @private\r\n         */\r\n        isFile(value) {\r\n            return this.constructor.isFile(value);\r\n        }\r\n        /**\r\n         * Returns \"true\" if value an instance of FileLikeObject\r\n         * @param {*} value\r\n         * @returns {Boolean}\r\n         * @private\r\n         */\r\n        isFileLikeObject(value) {\r\n            return this.constructor.isFileLikeObject(value);\r\n        }\r\n        /**\r\n         * Returns \"true\" if value is array like object\r\n         * @param {*} value\r\n         * @returns {Boolean}\r\n         */\r\n        isArrayLikeObject(value) {\r\n            return this.constructor.isArrayLikeObject(value);\r\n        }\r\n        /**\r\n         * Returns a index of item from the queue\r\n         * @param {Item|Number} value\r\n         * @returns {Number}\r\n         */\r\n        getIndexOfItem(value) {\r\n            return isNumber(value) ? value : this.queue.indexOf(value);\r\n        }\r\n        /**\r\n         * Returns not uploaded items\r\n         * @returns {Array}\r\n         */\r\n        getNotUploadedItems() {\r\n            return this.queue.filter(item => !item.isUploaded);\r\n        }\r\n        /**\r\n         * Returns items ready for upload\r\n         * @returns {Array}\r\n         */\r\n        getReadyItems() {\r\n            return this.queue\r\n                .filter(item => (item.isReady && !item.isUploading))\r\n                .sort((item1, item2) => item1.index - item2.index);\r\n        }\r\n        /**\r\n         * Destroys instance of FileUploader\r\n         */\r\n        destroy() {\r\n            forEach(this._directives, (key) => {\r\n                forEach(this._directives[key], (object) => {\r\n                    object.destroy();\r\n                });\r\n            });\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {Array} fileItems\r\n         */\r\n        onAfterAddingAll(fileItems) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {FileItem} fileItem\r\n         */\r\n        onAfterAddingFile(fileItem) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {File|Object} item\r\n         * @param {Object} filter\r\n         * @param {Object} options\r\n         */\r\n        onWhenAddingFileFailed(item, filter, options) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {FileItem} fileItem\r\n         */\r\n        onBeforeUploadItem(fileItem) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {FileItem} fileItem\r\n         * @param {Number} progress\r\n         */\r\n        onProgressItem(fileItem, progress) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {Number} progress\r\n         */\r\n        onProgressAll(progress) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {FileItem} item\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         */\r\n        onSuccessItem(item, response, status, headers) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {FileItem} item\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         */\r\n        onErrorItem(item, response, status, headers) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {FileItem} item\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         */\r\n        onCancelItem(item, response, status, headers) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {FileItem} item\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         */\r\n        onCompleteItem(item, response, status, headers) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {FileItem} item\r\n         */\r\n        onTimeoutItem(item) {\r\n        }\r\n        /**\r\n         * Callback\r\n         */\r\n        onCompleteAll() {\r\n        }\r\n        /**********************\r\n         * PRIVATE\r\n         **********************/\r\n        /**\r\n         * Returns the total progress\r\n         * @param {Number} [value]\r\n         * @returns {Number}\r\n         * @private\r\n         */\r\n        _getTotalProgress(value) {\r\n            if(this.removeAfterUpload) return value || 0;\r\n\r\n            var notUploaded = this.getNotUploadedItems().length;\r\n            var uploaded = notUploaded ? this.queue.length - notUploaded : this.queue.length;\r\n            var ratio = 100 / this.queue.length;\r\n            var current = (value || 0) * ratio / 100;\r\n\r\n            return Math.round(uploaded * ratio + current);\r\n        }\r\n        /**\r\n         * Returns array of filters\r\n         * @param {Array<Function>|String} filters\r\n         * @returns {Array<Function>}\r\n         * @private\r\n         */\r\n        _getFilters(filters) {\r\n            if(!filters) return this.filters;\r\n            if(isArray(filters)) return filters;\r\n            var names = filters.match(/[^\\s,]+/g);\r\n            return this.filters\r\n                .filter(filter => names.indexOf(filter.name) !== -1);\r\n        }\r\n       /**\r\n       * @param {Array<Function>} filters\r\n       * @returns {Array<Function>}\r\n       * @private\r\n       */\r\n       _convertFiltersToPipes(filters) {\r\n            return filters\r\n                .map(filter => {\r\n                    let fn = bind(this, filter.fn);\r\n                    fn.isAsync = filter.fn.length === 3;\r\n                    fn.originalFilter = filter;\r\n                    return fn;\r\n                });\r\n        }\r\n        /**\r\n         * Updates html\r\n         * @private\r\n         */\r\n        _render() {\r\n            if(!$rootScope.$$phase) $rootScope.$apply();\r\n        }\r\n        /**\r\n         * Returns \"true\" if item is a file (not folder)\r\n         * @param {File|FileLikeObject} item\r\n         * @returns {Boolean}\r\n         * @private\r\n         */\r\n        _folderFilter(item) {\r\n            return !!(item.size || item.type);\r\n        }\r\n        /**\r\n         * Returns \"true\" if the limit has not been reached\r\n         * @returns {Boolean}\r\n         * @private\r\n         */\r\n        _queueLimitFilter() {\r\n            return this.queue.length < this.queueLimit;\r\n        }\r\n        /**\r\n         * Checks whether upload successful\r\n         * @param {Number} status\r\n         * @returns {Boolean}\r\n         * @private\r\n         */\r\n        _isSuccessCode(status) {\r\n            return (status >= 200 && status < 300) || status === 304;\r\n        }\r\n        /**\r\n         * Transforms the server response\r\n         * @param {*} response\r\n         * @param {Object} headers\r\n         * @returns {*}\r\n         * @private\r\n         */\r\n        _transformResponse(response, headers) {\r\n            var headersGetter = this._headersGetter(headers);\r\n            forEach($http.defaults.transformResponse, (transformFn) => {\r\n                response = transformFn(response, headersGetter);\r\n            });\r\n            return response;\r\n        }\r\n        /**\r\n         * Parsed response headers\r\n         * @param headers\r\n         * @returns {Object}\r\n         * @see https://github.com/angular/angular.js/blob/master/src/ng/http.js\r\n         * @private\r\n         */\r\n        _parseHeaders(headers) {\r\n            var parsed = {}, key, val, i;\r\n\r\n            if(!headers) return parsed;\r\n\r\n            forEach(headers.split('\\n'), (line) => {\r\n                i = line.indexOf(':');\r\n                key = line.slice(0, i).trim().toLowerCase();\r\n                val = line.slice(i + 1).trim();\r\n\r\n                if(key) {\r\n                    parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\r\n                }\r\n            });\r\n\r\n            return parsed;\r\n        }\r\n        /**\r\n         * Returns function that returns headers\r\n         * @param {Object} parsedHeaders\r\n         * @returns {Function}\r\n         * @private\r\n         */\r\n        _headersGetter(parsedHeaders) {\r\n            return (name) => {\r\n                if(name) {\r\n                    return parsedHeaders[name.toLowerCase()] || null;\r\n                }\r\n                return parsedHeaders;\r\n            };\r\n        }\r\n        /**\r\n         * The XMLHttpRequest transport\r\n         * @param {FileItem} item\r\n         * @private\r\n         */\r\n        _xhrTransport(item) {\r\n            var xhr = item._xhr = new XMLHttpRequest();\r\n            var sendable;\r\n\r\n            if (!item.disableMultipart) {\r\n                sendable = new FormData();\r\n                forEach(item.formData, (obj) => {\r\n                    forEach(obj, (value, key) => {\r\n                        sendable.append(key, value);\r\n                    });\r\n                });\r\n\r\n                sendable.append(item.alias, item._file, item.file.name);\r\n            }\r\n            else {\r\n                sendable = item._file;\r\n            }\r\n\r\n            if(typeof(item._file.size) != 'number') {\r\n                throw new TypeError('The file specified is no longer valid');\r\n            }\r\n\r\n            xhr.upload.onprogress = (event) => {\r\n                var progress = Math.round(event.lengthComputable ? event.loaded * 100 / event.total : 0);\r\n                this._onProgressItem(item, progress);\r\n            };\r\n\r\n            xhr.onload = () => {\r\n                var headers = this._parseHeaders(xhr.getAllResponseHeaders());\r\n                var response = this._transformResponse(xhr.response, headers);\r\n                var gist = this._isSuccessCode(xhr.status) ? 'Success' : 'Error';\r\n                var method = '_on' + gist + 'Item';\r\n                this[method](item, response, xhr.status, headers);\r\n                this._onCompleteItem(item, response, xhr.status, headers);\r\n            };\r\n\r\n            xhr.onerror = () => {\r\n                var headers = this._parseHeaders(xhr.getAllResponseHeaders());\r\n                var response = this._transformResponse(xhr.response, headers);\r\n                this._onErrorItem(item, response, xhr.status, headers);\r\n                this._onCompleteItem(item, response, xhr.status, headers);\r\n            };\r\n\r\n            xhr.onabort = () => {\r\n                var headers = this._parseHeaders(xhr.getAllResponseHeaders());\r\n                var response = this._transformResponse(xhr.response, headers);\r\n                this._onCancelItem(item, response, xhr.status, headers);\r\n                this._onCompleteItem(item, response, xhr.status, headers);\r\n            };       \r\n\r\n            xhr.ontimeout = (e) => {\r\n                var headers = this._parseHeaders(xhr.getAllResponseHeaders());\r\n                var response = \"Request Timeout.\";\r\n                this._onTimeoutItem(item);\r\n                this._onCompleteItem(item, response, 408, headers);\r\n            };\r\n\r\n            xhr.open(item.method, item.url, true);\r\n\r\n            xhr.timeout = item.timeout || 0;\r\n            xhr.withCredentials = item.withCredentials;\r\n\r\n            forEach(item.headers, (value, name) => {\r\n                xhr.setRequestHeader(name, value);\r\n            });\r\n\r\n            xhr.send(sendable);\r\n        }\r\n        /**\r\n         * The IFrame transport\r\n         * @param {FileItem} item\r\n         * @private\r\n         */\r\n        _iframeTransport(item) {\r\n            var form = element('<form style=\"display: none;\" />');\r\n            var iframe = element('<iframe name=\"iframeTransport' + Date.now() + '\">');\r\n            var input = item._input;\r\n\r\n            var timeout = 0;\r\n            var timer = null;\r\n            var isTimedOut = false;\r\n\r\n            if(item._form) item._form.replaceWith(input); // remove old form\r\n            item._form = form; // save link to new form\r\n\r\n            input.prop('name', item.alias);\r\n\r\n            forEach(item.formData, (obj) => {\r\n                forEach(obj, (value, key) => {\r\n                    var element_ = element('<input type=\"hidden\" name=\"' + key + '\" />');\r\n                    element_.val(value);\r\n                    form.append(element_);\r\n                });\r\n            });\r\n\r\n            form.prop({\r\n                action: item.url,\r\n                method: 'POST',\r\n                target: iframe.prop('name'),\r\n                enctype: 'multipart/form-data',\r\n                encoding: 'multipart/form-data' // old IE\r\n            });\r\n\r\n            iframe.bind('load', () => {\r\n                var html = '';\r\n                var status = 200;\r\n\r\n                try {\r\n                    // Fix for legacy IE browsers that loads internal error page\r\n                    // when failed WS response received. In consequence iframe\r\n                    // content access denied error is thrown becouse trying to\r\n                    // access cross domain page. When such thing occurs notifying\r\n                    // with empty response object. See more info at:\r\n                    // http://stackoverflow.com/questions/151362/access-is-denied-error-on-accessing-iframe-document-object\r\n                    // Note that if non standard 4xx or 5xx error code returned\r\n                    // from WS then response content can be accessed without error\r\n                    // but 'XHR' status becomes 200. In order to avoid confusion\r\n                    // returning response via same 'success' event handler.\r\n\r\n                    // fixed angular.contents() for iframes\r\n                    html = iframe[0].contentDocument.body.innerHTML;\r\n                } catch(e) {\r\n                    // in case we run into the access-is-denied error or we have another error on the server side\r\n                    // (intentional 500,40... errors), we at least say 'something went wrong' -> 500\r\n                    status = 500;\r\n                }\r\n\r\n                if (timer) {\r\n                    clearTimeout(timer);\r\n                }\r\n                timer = null;\r\n\r\n                if (isTimedOut) {\r\n                    return false; //throw 'Request Timeout'\r\n                }\r\n\r\n                var xhr = {response: html, status: status, dummy: true};\r\n                var headers = {};\r\n                var response = this._transformResponse(xhr.response, headers);\r\n\r\n                this._onSuccessItem(item, response, xhr.status, headers);\r\n                this._onCompleteItem(item, response, xhr.status, headers);\r\n            });\r\n\r\n            form.abort = () => {\r\n                var xhr = {status: 0, dummy: true};\r\n                var headers = {};\r\n                var response;\r\n\r\n                iframe.unbind('load').prop('src', 'javascript:false;');\r\n                form.replaceWith(input);\r\n\r\n                this._onCancelItem(item, response, xhr.status, headers);\r\n                this._onCompleteItem(item, response, xhr.status, headers);\r\n            };\r\n\r\n            input.after(form);\r\n            form.append(input).append(iframe);\r\n\r\n            timeout = item.timeout || 0;\r\n            timer = null;\r\n\r\n            if (timeout) {\r\n                timer = setTimeout(() => {\r\n                    isTimedOut = true;\r\n\r\n                    item.isCancel = true;\r\n                    if (item.isUploading) {\r\n                        iframe.unbind('load').prop('src', 'javascript:false;');\r\n                        form.replaceWith(input);\r\n                    }\r\n\r\n                    var headers = {};\r\n                    var response = \"Request Timeout.\";\r\n                    this._onTimeoutItem(item);\r\n                    this._onCompleteItem(item, response, 408, headers);\r\n                }, timeout);\r\n            }\r\n\r\n            form[0].submit();\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {File|Object} item\r\n         * @param {Object} filter\r\n         * @param {Object} options\r\n         * @private\r\n         */\r\n        _onWhenAddingFileFailed(item, filter, options) {\r\n            this.onWhenAddingFileFailed(item, filter, options);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {FileItem} item\r\n         */\r\n        _onAfterAddingFile(item) {\r\n            this.onAfterAddingFile(item);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {Array<FileItem>} items\r\n         */\r\n        _onAfterAddingAll(items) {\r\n            this.onAfterAddingAll(items);\r\n        }\r\n        /**\r\n         *  Inner callback\r\n         * @param {FileItem} item\r\n         * @private\r\n         */\r\n        _onBeforeUploadItem(item) {\r\n            item._onBeforeUpload();\r\n            this.onBeforeUploadItem(item);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {FileItem} item\r\n         * @param {Number} progress\r\n         * @private\r\n         */\r\n        _onProgressItem(item, progress) {\r\n            var total = this._getTotalProgress(progress);\r\n            this.progress = total;\r\n            item._onProgress(progress);\r\n            this.onProgressItem(item, progress);\r\n            this.onProgressAll(total);\r\n            this._render();\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {FileItem} item\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         * @private\r\n         */\r\n        _onSuccessItem(item, response, status, headers) {\r\n            item._onSuccess(response, status, headers);\r\n            this.onSuccessItem(item, response, status, headers);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {FileItem} item\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         * @private\r\n         */\r\n        _onErrorItem(item, response, status, headers) {\r\n            item._onError(response, status, headers);\r\n            this.onErrorItem(item, response, status, headers);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {FileItem} item\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         * @private\r\n         */\r\n        _onCancelItem(item, response, status, headers) {\r\n            item._onCancel(response, status, headers);\r\n            this.onCancelItem(item, response, status, headers);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {FileItem} item\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         * @private\r\n         */\r\n        _onCompleteItem(item, response, status, headers) {\r\n            item._onComplete(response, status, headers);\r\n            this.onCompleteItem(item, response, status, headers);\r\n\r\n            var nextItem = this.getReadyItems()[0];\r\n            this.isUploading = false;\r\n\r\n            if(isDefined(nextItem)) {\r\n                nextItem.upload();\r\n                return;\r\n            }\r\n\r\n            this.onCompleteAll();\r\n            this.progress = this._getTotalProgress();\r\n            this._render();\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {FileItem} item\r\n         * @private\r\n         */\r\n        _onTimeoutItem(item) {\r\n            item._onTimeout();\r\n            this.onTimeoutItem(item);\r\n        }\r\n        /**********************\r\n         * STATIC\r\n         **********************/\r\n        /**\r\n         * Returns \"true\" if value an instance of File\r\n         * @param {*} value\r\n         * @returns {Boolean}\r\n         * @private\r\n         */\r\n        static isFile(value) {\r\n            return (File && value instanceof File);\r\n        }\r\n        /**\r\n         * Returns \"true\" if value an instance of FileLikeObject\r\n         * @param {*} value\r\n         * @returns {Boolean}\r\n         * @private\r\n         */\r\n        static isFileLikeObject(value) {\r\n            return value instanceof FileLikeObject;\r\n        }\r\n        /**\r\n         * Returns \"true\" if value is array like object\r\n         * @param {*} value\r\n         * @returns {Boolean}\r\n         */\r\n        static isArrayLikeObject(value) {\r\n            return (isObject(value) && 'length' in value);\r\n        }\r\n        /**\r\n         * Inherits a target (Class_1) by a source (Class_2)\r\n         * @param {Function} target\r\n         * @param {Function} source\r\n         */\r\n        static inherit(target, source) {\r\n            target.prototype = Object.create(source.prototype);\r\n            target.prototype.constructor = target;\r\n            target.super_ = source;\r\n        }\r\n    }\r\n\r\n\r\n    /**********************\r\n     * PUBLIC\r\n     **********************/\r\n    /**\r\n     * Checks a support the html5 uploader\r\n     * @returns {Boolean}\r\n     * @readonly\r\n     */\r\n    FileUploader.prototype.isHTML5 = !!(File && FormData);\r\n    /**********************\r\n     * STATIC\r\n     **********************/\r\n    /**\r\n     * @borrows FileUploader.prototype.isHTML5\r\n     */\r\n    FileUploader.isHTML5 = FileUploader.prototype.isHTML5;\r\n\r\n    \r\n    return FileUploader;\r\n}\r\n\r\n\r\n__identity.$inject = [\r\n    'fileUploaderOptions', \r\n    '$rootScope', \r\n    '$http', \r\n    '$window',\r\n    '$timeout',\r\n    'FileLikeObject',\r\n    'FileItem',\r\n    'Pipeline'\r\n];\n\n\n// WEBPACK FOOTER //\n// ./src/services/FileUploader.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nlet {\r\n    copy,\r\n    isElement,\r\n    isString\r\n    } = angular;\r\n\r\n\r\nexport default function __identity() {\r\n    \r\n    \r\n    return class FileLikeObject {\r\n        /**\r\n         * Creates an instance of FileLikeObject\r\n         * @param {File|HTMLInputElement|Object} fileOrInput\r\n         * @constructor\r\n         */\r\n        constructor(fileOrInput) {\r\n            var isInput = isElement(fileOrInput);\r\n            var fakePathOrObject = isInput ? fileOrInput.value : fileOrInput;\r\n            var postfix = isString(fakePathOrObject) ? 'FakePath' : 'Object';\r\n            var method = '_createFrom' + postfix;\r\n            this[method](fakePathOrObject, fileOrInput);\r\n        }\r\n        /**\r\n         * Creates file like object from fake path string\r\n         * @param {String} path\r\n         * @private\r\n         */\r\n        _createFromFakePath(path, input) {\r\n            this.lastModifiedDate = null;\r\n            this.size = null;\r\n            this.type = 'like/' + path.slice(path.lastIndexOf('.') + 1).toLowerCase();\r\n            this.name = path.slice(path.lastIndexOf('/') + path.lastIndexOf('\\\\') + 2);\r\n            this.input = input;\r\n        }\r\n        /**\r\n         * Creates file like object from object\r\n         * @param {File|FileLikeObject} object\r\n         * @private\r\n         */\r\n        _createFromObject(object) {\r\n            this.lastModifiedDate = copy(object.lastModifiedDate);\r\n            this.size = object.size;\r\n            this.type = object.type;\r\n            this.name = object.name;\r\n            this.input = object.input;\r\n        }\r\n    }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/services/FileLikeObject.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nlet {\r\n    copy,\r\n    extend,\r\n    element,\r\n    isElement\r\n    } = angular;\r\n\r\n\r\nexport default function __identity($compile, FileLikeObject) {\r\n    \r\n    \r\n    return class FileItem {\r\n        /**\r\n         * Creates an instance of FileItem\r\n         * @param {FileUploader} uploader\r\n         * @param {File|HTMLInputElement|Object} some\r\n         * @param {Object} options\r\n         * @constructor\r\n         */\r\n        constructor(uploader, some, options) {\r\n            var isInput = !!some.input;\r\n            var input = isInput ? element(some.input) : null;\r\n            var file = !isInput ? some : null;\r\n\r\n            extend(this, {\r\n                url: uploader.url,\r\n                alias: uploader.alias,\r\n                headers: copy(uploader.headers),\r\n                formData: copy(uploader.formData),\r\n                removeAfterUpload: uploader.removeAfterUpload,\r\n                withCredentials: uploader.withCredentials,\r\n                disableMultipart: uploader.disableMultipart,\r\n                method: uploader.method,\r\n                timeout: uploader.timeout\r\n            }, options, {\r\n                uploader: uploader,\r\n                file: new FileLikeObject(some),\r\n                isReady: false,\r\n                isUploading: false,\r\n                isUploaded: false,\r\n                isSuccess: false,\r\n                isCancel: false,\r\n                isError: false,\r\n                progress: 0,\r\n                index: null,\r\n                _file: file,\r\n                _input: input\r\n            });\r\n\r\n            if (input) this._replaceNode(input);\r\n        }\r\n        /**********************\r\n         * PUBLIC\r\n         **********************/\r\n        /**\r\n         * Uploads a FileItem\r\n         */\r\n        upload() {\r\n            try {\r\n                this.uploader.uploadItem(this);\r\n            } catch(e) {\r\n                var message = e.name + ':' + e.message;\r\n                this.uploader._onCompleteItem(this, message, e.code, []);\r\n                this.uploader._onErrorItem(this, message, e.code, []);\r\n            }\r\n        }\r\n        /**\r\n         * Cancels uploading of FileItem\r\n         */\r\n        cancel() {\r\n            this.uploader.cancelItem(this);\r\n        }\r\n        /**\r\n         * Removes a FileItem\r\n         */\r\n        remove() {\r\n            this.uploader.removeFromQueue(this);\r\n        }\r\n        /**\r\n         * Callback\r\n         * @private\r\n         */\r\n        onBeforeUpload() {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {Number} progress\r\n         * @private\r\n         */\r\n        onProgress(progress) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         */\r\n        onSuccess(response, status, headers) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         */\r\n        onError(response, status, headers) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         */\r\n        onCancel(response, status, headers) {\r\n        }\r\n        /**\r\n         * Callback\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         */\r\n        onComplete(response, status, headers) {\r\n        }\r\n        /**\r\n         * Callback         \r\n         */\r\n        onTimeout() {\r\n        }\r\n        /**********************\r\n         * PRIVATE\r\n         **********************/\r\n        /**\r\n         * Inner callback\r\n         */\r\n        _onBeforeUpload() {\r\n            this.isReady = true;\r\n            this.isUploading = false;\r\n            this.isUploaded = false;\r\n            this.isSuccess = false;\r\n            this.isCancel = false;\r\n            this.isError = false;\r\n            this.progress = 0;\r\n            this.onBeforeUpload();\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {Number} progress\r\n         * @private\r\n         */\r\n        _onProgress(progress) {\r\n            this.progress = progress;\r\n            this.onProgress(progress);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         * @private\r\n         */\r\n        _onSuccess(response, status, headers) {\r\n            this.isReady = false;\r\n            this.isUploading = false;\r\n            this.isUploaded = true;\r\n            this.isSuccess = true;\r\n            this.isCancel = false;\r\n            this.isError = false;\r\n            this.progress = 100;\r\n            this.index = null;\r\n            this.onSuccess(response, status, headers);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         * @private\r\n         */\r\n        _onError(response, status, headers) {\r\n            this.isReady = false;\r\n            this.isUploading = false;\r\n            this.isUploaded = true;\r\n            this.isSuccess = false;\r\n            this.isCancel = false;\r\n            this.isError = true;\r\n            this.progress = 0;\r\n            this.index = null;\r\n            this.onError(response, status, headers);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         * @private\r\n         */\r\n        _onCancel(response, status, headers) {\r\n            this.isReady = false;\r\n            this.isUploading = false;\r\n            this.isUploaded = false;\r\n            this.isSuccess = false;\r\n            this.isCancel = true;\r\n            this.isError = false;\r\n            this.progress = 0;\r\n            this.index = null;\r\n            this.onCancel(response, status, headers);\r\n        }\r\n        /**\r\n         * Inner callback\r\n         * @param {*} response\r\n         * @param {Number} status\r\n         * @param {Object} headers\r\n         * @private\r\n         */\r\n        _onComplete(response, status, headers) {\r\n            this.onComplete(response, status, headers);\r\n            if(this.removeAfterUpload) this.remove();\r\n        }\r\n        /**\r\n         * Inner callback         \r\n         * @private\r\n         */\r\n        _onTimeout() {\r\n            this.isReady = false;\r\n            this.isUploading = false;\r\n            this.isUploaded = false;\r\n            this.isSuccess = false;\r\n            this.isCancel = false;\r\n            this.isError = true;\r\n            this.progress = 0;\r\n            this.index = null;\r\n            this.onTimeout();\r\n        }\r\n        /**\r\n         * Destroys a FileItem\r\n         */\r\n        _destroy() {\r\n            if(this._input) this._input.remove();\r\n            if(this._form) this._form.remove();\r\n            delete this._form;\r\n            delete this._input;\r\n        }\r\n        /**\r\n         * Prepares to uploading\r\n         * @private\r\n         */\r\n        _prepareToUploading() {\r\n            this.index = this.index || ++this.uploader._nextIndex;\r\n            this.isReady = true;\r\n        }\r\n        /**\r\n         * Replaces input element on his clone\r\n         * @param {JQLite|jQuery} input\r\n         * @private\r\n         */\r\n        _replaceNode(input) {\r\n            var clone = $compile(input.clone())(input.scope());\r\n            clone.prop('value', null); // FF fix\r\n            input.css('display', 'none');\r\n            input.after(clone); // remove jquery dependency\r\n        }\r\n    }\r\n}\r\n\r\n\r\n__identity.$inject = [\r\n    '$compile',\r\n    'FileLikeObject'\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/FileItem.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nlet {\r\n    extend\r\n    } = angular;\r\n\r\n\r\nexport default function __identity() {\r\n\r\n\r\n    class FileDirective {\r\n        /**\r\n         * Creates instance of {FileDirective} object\r\n         * @param {Object} options\r\n         * @param {Object} options.uploader\r\n         * @param {HTMLElement} options.element\r\n         * @param {Object} options.events\r\n         * @param {String} options.prop\r\n         * @constructor\r\n         */\r\n        constructor(options) {\r\n            extend(this, options);\r\n            this.uploader._directives[this.prop].push(this);\r\n            this._saveLinks();\r\n            this.bind();\r\n        }\r\n        /**\r\n         * Binds events handles\r\n         */\r\n        bind() {\r\n            for(var key in this.events) {\r\n                var prop = this.events[key];\r\n                this.element.bind(key, this[prop]);\r\n            }\r\n        }\r\n        /**\r\n         * Unbinds events handles\r\n         */\r\n        unbind() {\r\n            for(var key in this.events) {\r\n                this.element.unbind(key, this.events[key]);\r\n            }\r\n        }\r\n        /**\r\n         * Destroys directive\r\n         */\r\n        destroy() {\r\n            var index = this.uploader._directives[this.prop].indexOf(this);\r\n            this.uploader._directives[this.prop].splice(index, 1);\r\n            this.unbind();\r\n            // this.element = null;\r\n        }\r\n        /**\r\n         * Saves links to functions\r\n         * @private\r\n         */\r\n        _saveLinks() {\r\n            for(var key in this.events) {\r\n                var prop = this.events[key];\r\n                this[prop] = this[prop].bind(this);\r\n            }\r\n        }\r\n    }\r\n\r\n\r\n    /**\r\n     * Map of events\r\n     * @type {Object}\r\n     */\r\n    FileDirective.prototype.events = {};\r\n\r\n\r\n    return FileDirective;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/services/FileDirective.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nlet {\r\n    extend\r\n    } = angular;\r\n\r\n\r\nexport default function __identity($compile, FileDirective) {\r\n    \r\n    \r\n    return class FileSelect extends FileDirective {\r\n        /**\r\n         * Creates instance of {FileSelect} object\r\n         * @param {Object} options\r\n         * @constructor\r\n         */\r\n        constructor(options) {\r\n            let extendedOptions = extend(options, {\r\n                // Map of events\r\n                events: {\r\n                    $destroy: 'destroy',\r\n                    change: 'onChange'\r\n                },\r\n                // Name of property inside uploader._directive object\r\n                prop: 'select'\r\n            });\r\n            \r\n            super(extendedOptions);\r\n            \r\n            if(!this.uploader.isHTML5) {\r\n                this.element.removeAttr('multiple');\r\n            }\r\n            this.element.prop('value', null); // FF fix\r\n        }\r\n        /**\r\n         * Returns options\r\n         * @return {Object|undefined}\r\n         */\r\n        getOptions() {\r\n        }\r\n        /**\r\n         * Returns filters\r\n         * @return {Array<Function>|String|undefined}\r\n         */\r\n        getFilters() {\r\n        }\r\n        /**\r\n         * If returns \"true\" then HTMLInputElement will be cleared\r\n         * @returns {Boolean}\r\n         */\r\n        isEmptyAfterSelection() {\r\n            return !!this.element.attr('multiple');\r\n        }\r\n        /**\r\n         * Event handler\r\n         */\r\n        onChange() {\r\n            var files = this.uploader.isHTML5 ? this.element[0].files : this.element[0];\r\n            var options = this.getOptions();\r\n            var filters = this.getFilters();\r\n\r\n            if(!this.uploader.isHTML5) this.destroy();\r\n            this.uploader.addToQueue(files, options, filters);\r\n            if(this.isEmptyAfterSelection()) {\r\n                this.element.prop('value', null);\r\n                this.element.replaceWith($compile(this.element.clone())(this.scope)); // IE fix\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\n\r\n__identity.$inject = [\r\n    '$compile',\r\n    'FileDirective'\r\n];\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/FileSelect.js","'use strict';\r\n\r\n\r\nconst {\r\n  bind,\r\n  isUndefined\r\n} = angular;\r\n\r\n\r\nexport default function __identity($q) {\r\n\r\n\r\n  return class Pipeline {\r\n    /**\r\n     * @param {Array<Function>} pipes\r\n     */\r\n    constructor(pipes = []) {\r\n      this.pipes = pipes;\r\n    }\r\n    next(args) {\r\n      let pipe = this.pipes.shift();\r\n      if (isUndefined(pipe)) {\r\n        this.onSuccessful(...args);\r\n        return;\r\n      }\r\n      let err = new Error('The filter has not passed');\r\n      err.pipe = pipe;\r\n      err.args = args;\r\n      if (pipe.isAsync) {\r\n        let deferred = $q.defer();\r\n        let onFulfilled = bind(this, this.next, args);\r\n        let onRejected = bind(this, this.onThrown, err);\r\n        deferred.promise.then(onFulfilled, onRejected);\r\n        pipe(...args, deferred);\r\n      } else {\r\n        let isDone = Boolean(pipe(...args));\r\n        if (isDone) {\r\n          this.next(args);\r\n        } else {\r\n          this.onThrown(err);\r\n        }\r\n      }\r\n    }\r\n    exec(...args) {\r\n      this.next(args);\r\n    }\r\n    onThrown(err) {\r\n\r\n    }\r\n    onSuccessful(...args) {\r\n\r\n    }\r\n  }\r\n  \r\n}\r\n\r\n__identity.$inject = [\r\n  '$q'\r\n];\n\n\n// WEBPACK FOOTER //\n// ./src/services/Pipeline.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nlet {\r\n    extend,\r\n    forEach\r\n    } = angular;\r\n\r\n\r\nexport default function __identity(FileDirective) {\r\n    \r\n    \r\n    return class FileDrop extends FileDirective {\r\n        /**\r\n         * Creates instance of {FileDrop} object\r\n         * @param {Object} options\r\n         * @constructor\r\n         */\r\n        constructor(options) {\r\n            let extendedOptions = extend(options, {\r\n                // Map of events\r\n                events: {\r\n                    $destroy: 'destroy',\r\n                    drop: 'onDrop',\r\n                    dragover: 'onDragOver',\r\n                    dragleave: 'onDragLeave'\r\n                },\r\n                // Name of property inside uploader._directive object\r\n                prop: 'drop'\r\n            });\r\n            \r\n            super(extendedOptions);\r\n        }\r\n        /**\r\n         * Returns options\r\n         * @return {Object|undefined}\r\n         */\r\n        getOptions() {\r\n        }\r\n        /**\r\n         * Returns filters\r\n         * @return {Array<Function>|String|undefined}\r\n         */\r\n        getFilters() {\r\n        }\r\n        /**\r\n         * Event handler\r\n         */\r\n        onDrop(event) {\r\n            var transfer = this._getTransfer(event);\r\n            if(!transfer) return;\r\n            var options = this.getOptions();\r\n            var filters = this.getFilters();\r\n            this._preventAndStop(event);\r\n            forEach(this.uploader._directives.over, this._removeOverClass, this);\r\n            this.uploader.addToQueue(transfer.files, options, filters);\r\n        }\r\n        /**\r\n         * Event handler\r\n         */\r\n        onDragOver(event) {\r\n            var transfer = this._getTransfer(event);\r\n            if(!this._haveFiles(transfer.types)) return;\r\n            transfer.dropEffect = 'copy';\r\n            this._preventAndStop(event);\r\n            forEach(this.uploader._directives.over, this._addOverClass, this);\r\n        }\r\n        /**\r\n         * Event handler\r\n         */\r\n        onDragLeave(event) {\r\n            if(event.currentTarget === this.element[0]) return;\r\n            this._preventAndStop(event);\r\n            forEach(this.uploader._directives.over, this._removeOverClass, this);\r\n        }\r\n        /**\r\n         * Helper\r\n         */\r\n        _getTransfer(event) {\r\n            return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;\r\n        }\r\n        /**\r\n         * Helper\r\n         */\r\n        _preventAndStop(event) {\r\n            event.preventDefault();\r\n            event.stopPropagation();\r\n        }\r\n        /**\r\n         * Returns \"true\" if types contains files\r\n         * @param {Object} types\r\n         */\r\n        _haveFiles(types) {\r\n            if(!types) return false;\r\n            if(types.indexOf) {\r\n                return types.indexOf('Files') !== -1;\r\n            } else if(types.contains) {\r\n                return types.contains('Files');\r\n            } else {\r\n                return false;\r\n            }\r\n        }\r\n        /**\r\n         * Callback\r\n         */\r\n        _addOverClass(item) {\r\n            item.addOverClass();\r\n        }\r\n        /**\r\n         * Callback\r\n         */\r\n        _removeOverClass(item) {\r\n            item.removeOverClass();\r\n        }\r\n    }\r\n}\r\n\r\n\r\n__identity.$inject = [\r\n    'FileDirective'\r\n];\n\n\n// WEBPACK FOOTER //\n// ./src/services/FileDrop.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nlet {\r\n    extend\r\n    } = angular;\r\n\r\n\r\nexport default function __identity(FileDirective) {\r\n    \r\n    \r\n    return class FileOver extends FileDirective {\r\n        /**\r\n         * Creates instance of {FileDrop} object\r\n         * @param {Object} options\r\n         * @constructor\r\n         */\r\n        constructor(options) {\r\n            let extendedOptions = extend(options, {\r\n                // Map of events\r\n                events: {\r\n                    $destroy: 'destroy'\r\n                },\r\n                // Name of property inside uploader._directive object\r\n                prop: 'over',\r\n                // Over class\r\n                overClass: 'nv-file-over'\r\n            });\r\n            \r\n            super(extendedOptions);\r\n        }\r\n        /**\r\n         * Adds over class\r\n         */\r\n        addOverClass() {\r\n            this.element.addClass(this.getOverClass());\r\n        }\r\n        /**\r\n         * Removes over class\r\n         */\r\n        removeOverClass() {\r\n            this.element.removeClass(this.getOverClass());\r\n        }\r\n        /**\r\n         * Returns over class\r\n         * @returns {String}\r\n         */\r\n        getOverClass() {\r\n            return this.overClass;\r\n        }\r\n    }\r\n}\r\n\r\n\r\n__identity.$inject = [\r\n    'FileDirective'\r\n];\n\n\n// WEBPACK FOOTER //\n// ./src/services/FileOver.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nexport default function __identity($parse, FileUploader, FileSelect) {\r\n\r\n\r\n    return {\r\n        link: (scope, element, attributes) => {\r\n            var uploader = scope.$eval(attributes.uploader);\r\n\r\n            if (!(uploader instanceof FileUploader)) {\r\n                throw new TypeError('\"Uploader\" must be an instance of FileUploader');\r\n            }\r\n\r\n            var object = new FileSelect({\r\n                uploader: uploader,\r\n                element: element,\r\n                scope: scope\r\n            });\r\n\r\n            object.getOptions = $parse(attributes.options).bind(object, scope);\r\n            object.getFilters = () => attributes.filters;\r\n        }\r\n    };\r\n\r\n\r\n}\r\n\r\n\r\n__identity.$inject = [\r\n    '$parse',\r\n    'FileUploader',\r\n    'FileSelect'\r\n];\n\n\n// WEBPACK FOOTER //\n// ./src/directives/FileSelect.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nexport default function __identity($parse, FileUploader, FileDrop) {\r\n\r\n\r\n    return {\r\n        link: (scope, element, attributes) => {\r\n            var uploader = scope.$eval(attributes.uploader);\r\n\r\n            if (!(uploader instanceof FileUploader)) {\r\n                throw new TypeError('\"Uploader\" must be an instance of FileUploader');\r\n            }\r\n\r\n            if (!uploader.isHTML5) return;\r\n\r\n            var object = new FileDrop({\r\n                uploader: uploader,\r\n                element: element\r\n            });\r\n\r\n            object.getOptions = $parse(attributes.options).bind(object, scope);\r\n            object.getFilters = () => attributes.filters;\r\n        }\r\n    };\r\n\r\n\r\n}\r\n\r\n\r\n__identity.$inject = [\r\n    '$parse',\r\n    'FileUploader',\r\n    'FileDrop'\r\n];\n\n\n// WEBPACK FOOTER //\n// ./src/directives/FileDrop.js","'use strict';\r\n\r\n\r\nimport CONFIG from './../config.json';\r\n\r\n\r\nexport default function __identity(FileUploader, FileOver) {\r\n\r\n\r\n    return {\r\n        link: (scope, element, attributes) => {\r\n            var uploader = scope.$eval(attributes.uploader);\r\n\r\n            if (!(uploader instanceof FileUploader)) {\r\n                throw new TypeError('\"Uploader\" must be an instance of FileUploader');\r\n            }\r\n\r\n            var object = new FileOver({\r\n                uploader: uploader,\r\n                element: element\r\n            });\r\n\r\n            object.getOverClass = () => attributes.overClass || object.overClass;\r\n        }\r\n    };\r\n\r\n\r\n}\r\n\r\n\r\n__identity.$inject = [\r\n    'FileUploader',\r\n    'FileOver'\r\n];\n\n\n// WEBPACK FOOTER //\n// ./src/directives/FileOver.js"],"sourceRoot":""}