{"version":3,"sources":["webpack:///21.1e4e69ef.bundle.js","webpack:///./src/js/components/global/DownloadButton.js","webpack:///./node_modules/blob/index.js"],"names":["webpackJsonp","255","module","exports","__webpack_require__","$","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","defineProperty","_createClass","defineProperties","target","props","i","length","descriptor","key","protoProps","staticProps","_component2","_component","_blob2","_blob","DownloadButton","el","config","downloading","progressBarContent","setScrollBarProgress","_Component","this","dom","$trigger","$el","on","onDownload","e","preventDefault","currentTarget","css","$spinner","find","console","log","show","endpoint","dataset","ajax","xhrFields","responseType","url","method","done","response","newBlob","Blob","type","window","navigator","msSaveOrOpenBlob","link","document","createElement","body","appendChild","href","URL","createObjectURL","notAlphaNumericMatcher","RegExp","sanitizeTitle","title","replace","download","click","hide","removeChild","fail","Component","616","mapArrayBufferViews","ary","map","chunk","buffer","ArrayBuffer","buf","byteLength","copy","Uint8Array","set","byteOffset","BlobBuilderConstructor","options","bb","BlobBuilder","forEach","part","append","getBlob","BlobConstructor","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","size","blobSupportsArrayBufferView","blobBuilderSupported"],"mappings":"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","file":"21.1e4e69ef.bundle.js","sourcesContent":["webpackJsonp([21],{\n\n/***/ 255:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function($) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _component = __webpack_require__(33);\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _blob = __webpack_require__(616);\n\nvar _blob2 = _interopRequireDefault(_blob);\n\n__webpack_require__(213);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _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\nvar DownloadButton = function (_Component) {\n _inherits(DownloadButton, _Component);\n\n function DownloadButton(el, config) {\n _classCallCheck(this, DownloadButton);\n\n var _this = _possibleConstructorReturn(this, (DownloadButton.__proto__ || Object.getPrototypeOf(DownloadButton)).call(this, el, config));\n\n _this.downloading = false;\n\n if ($(_this.config.progressBarContent).length > 0) {\n _this.setScrollBarProgress();\n }\n return _this;\n }\n\n _createClass(DownloadButton, [{\n key: 'setupDefaults',\n value: function setupDefaults() {\n this.dom = {\n $trigger: this.$el\n };\n }\n }, {\n key: 'addListeners',\n value: function addListeners() {\n this.dom.$trigger.on('click', this.onDownload);\n }\n }, {\n key: 'onDownload',\n value: function onDownload(e) {\n var _this2 = this;\n\n e.preventDefault();\n // Return if download its on queue\n if (this.downloading) return;\n this.downloading = true;\n\n $(e.currentTarget).css('cursor', 'inherit');\n var $spinner = $(e.currentTarget).find('.spinner');\n console.log($spinner);\n $spinner.show();\n var endpoint = e.currentTarget.dataset.endpoint;\n\n $.ajax({\n xhrFields: { responseType: 'blob' },\n url: endpoint,\n method: 'get'\n }).done(function (response) {\n var newBlob = new _blob2.default([response], { type: response.type });\n // IE doesn't allow using a blob object directly as link href\n // instead it is necessary to use msSaveOrOpenBlob\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveOrOpenBlob(newBlob);\n _this2.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n return;\n }\n // For other browsers:\n var link = document.createElement('a');\n document.body.appendChild(link);\n link.href = window.URL.createObjectURL(newBlob);\n var notAlphaNumericMatcher = new RegExp(/[^\\w\\s]/gim);\n var sanitizeTitle = document.title.replace(notAlphaNumericMatcher, '');\n link.download = sanitizeTitle.replace(/\\s/g, '-');\n link.click();\n $spinner.hide();\n document.body.removeChild(link);\n _this2.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n }).fail(function () {\n $spinner.hide();\n _this2.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n });\n }\n }]);\n\n return DownloadButton;\n}(_component2.default);\n\nexports.default = DownloadButton;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10)))\n\n/***/ }),\n\n/***/ 616:\n/***/ (function(module, exports) {\n\n/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\r\n\r\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :\r\n typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :\r\n typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :\r\n typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : \r\n false;\r\n\r\n/**\r\n * Check if Blob constructor is supported\r\n */\r\n\r\nvar blobSupported = (function() {\r\n try {\r\n var a = new Blob(['hi']);\r\n return a.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\r\n\r\nvar blobSupportsArrayBufferView = blobSupported && (function() {\r\n try {\r\n var b = new Blob([new Uint8Array([1,2])]);\r\n return b.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if BlobBuilder is supported\r\n */\r\n\r\nvar blobBuilderSupported = BlobBuilder\r\n && BlobBuilder.prototype.append\r\n && BlobBuilder.prototype.getBlob;\r\n\r\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\r\n\r\nfunction mapArrayBufferViews(ary) {\r\n return ary.map(function(chunk) {\r\n if (chunk.buffer instanceof ArrayBuffer) {\r\n var buf = chunk.buffer;\r\n\r\n // if this is a subarray, make a copy so we only\r\n // include the subarray region from the underlying buffer\r\n if (chunk.byteLength !== buf.byteLength) {\r\n var copy = new Uint8Array(chunk.byteLength);\r\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\r\n buf = copy.buffer;\r\n }\r\n\r\n return buf;\r\n }\r\n\r\n return chunk;\r\n });\r\n}\r\n\r\nfunction BlobBuilderConstructor(ary, options) {\r\n options = options || {};\r\n\r\n var bb = new BlobBuilder();\r\n mapArrayBufferViews(ary).forEach(function(part) {\r\n bb.append(part);\r\n });\r\n\r\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\r\n};\r\n\r\nfunction BlobConstructor(ary, options) {\r\n return new Blob(mapArrayBufferViews(ary), options || {});\r\n};\r\n\r\nif (typeof Blob !== 'undefined') {\r\n BlobBuilderConstructor.prototype = Blob.prototype;\r\n BlobConstructor.prototype = Blob.prototype;\r\n}\r\n\r\nmodule.exports = (function() {\r\n if (blobSupported) {\r\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\r\n } else if (blobBuilderSupported) {\r\n return BlobBuilderConstructor;\r\n } else {\r\n return undefined;\r\n }\r\n})();\r\n\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// 21.1e4e69ef.bundle.js","import Component from 'component';\nimport Blob from 'blob';\nimport 'waypoints/jquery.waypoints';\n\nclass DownloadButton extends Component {\n constructor(el, config) {\n super(el, config);\n\n this.downloading = false;\n\n if ($(this.config.progressBarContent).length > 0) {\n this.setScrollBarProgress();\n }\n }\n\n setupDefaults() {\n this.dom = {\n $trigger: this.$el\n };\n }\n\n addListeners() {\n this.dom.$trigger.on('click', this.onDownload);\n }\n\n onDownload(e) {\n e.preventDefault();\n // Return if download its on queue\n if (this.downloading) return;\n this.downloading = true;\n\n $(e.currentTarget).css('cursor', 'inherit');\n const $spinner = $(e.currentTarget).find('.spinner');\n console.log($spinner);\n $spinner.show();\n const { endpoint } = e.currentTarget.dataset;\n $.ajax({\n xhrFields: { responseType: 'blob' },\n url: endpoint,\n method: 'get'\n })\n .done(response => {\n const newBlob = new Blob([response], { type: response.type });\n // IE doesn't allow using a blob object directly as link href\n // instead it is necessary to use msSaveOrOpenBlob\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveOrOpenBlob(newBlob);\n this.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n return;\n }\n // For other browsers:\n const link = document.createElement('a');\n document.body.appendChild(link);\n link.href = window.URL.createObjectURL(newBlob);\n const notAlphaNumericMatcher = new RegExp(/[^\\w\\s]/gim);\n const sanitizeTitle = document.title.replace(\n notAlphaNumericMatcher,\n ''\n );\n link.download = sanitizeTitle.replace(/\\s/g, '-');\n link.click();\n $spinner.hide();\n document.body.removeChild(link);\n this.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n })\n .fail(() => {\n $spinner.hide();\n this.downloading = false;\n $(e.currentTarget).css('cursor', 'pointer');\n });\n }\n}\n\nexport default DownloadButton;\n\n\n\n// WEBPACK FOOTER //\n// ./src/js/components/global/DownloadButton.js","/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\r\n\r\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :\r\n typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :\r\n typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :\r\n typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : \r\n false;\r\n\r\n/**\r\n * Check if Blob constructor is supported\r\n */\r\n\r\nvar blobSupported = (function() {\r\n try {\r\n var a = new Blob(['hi']);\r\n return a.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\r\n\r\nvar blobSupportsArrayBufferView = blobSupported && (function() {\r\n try {\r\n var b = new Blob([new Uint8Array([1,2])]);\r\n return b.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if BlobBuilder is supported\r\n */\r\n\r\nvar blobBuilderSupported = BlobBuilder\r\n && BlobBuilder.prototype.append\r\n && BlobBuilder.prototype.getBlob;\r\n\r\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\r\n\r\nfunction mapArrayBufferViews(ary) {\r\n return ary.map(function(chunk) {\r\n if (chunk.buffer instanceof ArrayBuffer) {\r\n var buf = chunk.buffer;\r\n\r\n // if this is a subarray, make a copy so we only\r\n // include the subarray region from the underlying buffer\r\n if (chunk.byteLength !== buf.byteLength) {\r\n var copy = new Uint8Array(chunk.byteLength);\r\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\r\n buf = copy.buffer;\r\n }\r\n\r\n return buf;\r\n }\r\n\r\n return chunk;\r\n });\r\n}\r\n\r\nfunction BlobBuilderConstructor(ary, options) {\r\n options = options || {};\r\n\r\n var bb = new BlobBuilder();\r\n mapArrayBufferViews(ary).forEach(function(part) {\r\n bb.append(part);\r\n });\r\n\r\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\r\n};\r\n\r\nfunction BlobConstructor(ary, options) {\r\n return new Blob(mapArrayBufferViews(ary), options || {});\r\n};\r\n\r\nif (typeof Blob !== 'undefined') {\r\n BlobBuilderConstructor.prototype = Blob.prototype;\r\n BlobConstructor.prototype = Blob.prototype;\r\n}\r\n\r\nmodule.exports = (function() {\r\n if (blobSupported) {\r\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\r\n } else if (blobBuilderSupported) {\r\n return BlobBuilderConstructor;\r\n } else {\r\n return undefined;\r\n }\r\n})();\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/blob/index.js\n// module id = 616\n// module chunks = 14 19 21"],"sourceRoot":""}