{"ast":null,"code":"import React, { Component } from 'react';\nimport { Button } from 'primereact/button';\nimport { Messages } from 'primereact/messages';\nimport { ProgressBar } from 'primereact/progressbar';\nimport { DomHandler, classNames, IconUtils, ObjectUtils } from 'primereact/utils';\nimport { Ripple } from 'primereact/ripple';\nimport { localeOption } from 'primereact/api';\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar FileUpload = /*#__PURE__*/function (_Component) {\n _inherits(FileUpload, _Component);\n\n var _super = _createSuper(FileUpload);\n\n function FileUpload(props) {\n var _this;\n\n _classCallCheck(this, FileUpload);\n\n _this = _super.call(this, props);\n _this.state = {\n files: [],\n msgs: [],\n focused: false,\n progress: 0\n };\n _this.choose = _this.choose.bind(_assertThisInitialized(_this));\n _this.upload = _this.upload.bind(_assertThisInitialized(_this));\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.onFileSelect = _this.onFileSelect.bind(_assertThisInitialized(_this));\n _this.onDragEnter = _this.onDragEnter.bind(_assertThisInitialized(_this));\n _this.onDragOver = _this.onDragOver.bind(_assertThisInitialized(_this));\n _this.onDragLeave = _this.onDragLeave.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onSimpleUploaderClick = _this.onSimpleUploaderClick.bind(_assertThisInitialized(_this));\n _this.duplicateIEEvent = false;\n return _this;\n }\n\n _createClass(FileUpload, [{\n key: \"hasFiles\",\n value: function hasFiles() {\n return this.state.files && this.state.files.length > 0;\n }\n }, {\n key: \"isImage\",\n value: function isImage(file) {\n return /^image\\//.test(file.type);\n }\n }, {\n key: \"chooseDisabled\",\n value: function chooseDisabled() {\n return this.props.disabled || this.props.fileLimit && this.props.fileLimit <= this.state.files.length + this.uploadedFileCount;\n }\n }, {\n key: \"uploadDisabled\",\n value: function uploadDisabled() {\n return this.props.disabled || !this.hasFiles();\n }\n }, {\n key: \"cancelDisabled\",\n value: function cancelDisabled() {\n return this.props.disabled || !this.hasFiles();\n }\n }, {\n key: \"chooseButtonLabel\",\n value: function chooseButtonLabel() {\n return this.props.chooseLabel || this.props.chooseOptions.label || localeOption('choose');\n }\n }, {\n key: \"uploadButtonLabel\",\n value: function uploadButtonLabel() {\n return this.props.uploadLabel || this.props.uploadOptions.label || localeOption('upload');\n }\n }, {\n key: \"cancelButtonLabel\",\n value: function cancelButtonLabel() {\n return this.props.cancelLabel || this.props.cancelOptions.label || localeOption('cancel');\n }\n }, {\n key: \"remove\",\n value: function remove(event, index) {\n this.clearInputElement();\n\n var currentFiles = _toConsumableArray(this.state.files);\n\n var removedFile = this.state.files[index];\n currentFiles.splice(index, 1);\n this.setState({\n files: currentFiles\n });\n\n if (this.props.onRemove) {\n this.props.onRemove({\n originalEvent: event,\n file: removedFile\n });\n }\n }\n }, {\n key: \"clearInputElement\",\n value: function clearInputElement() {\n if (this.fileInput) {\n this.fileInput.value = '';\n }\n }\n }, {\n key: \"clearIEInput\",\n value: function clearIEInput() {\n if (this.fileInput) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n\n this.fileInput.value = '';\n }\n }\n }, {\n key: \"formatSize\",\n value: function formatSize(bytes) {\n if (bytes === 0) {\n return '0 B';\n }\n\n var k = 1000,\n dm = 3,\n sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n }, {\n key: \"onFileSelect\",\n value: function onFileSelect(event) {\n var _this2 = this;\n\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n\n this.setState({\n msgs: []\n });\n this.files = this.state.files ? _toConsumableArray(this.state.files) : [];\n var files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n\n if (!this.isFileSelected(file)) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = window.URL.createObjectURL(file);\n }\n\n this.files.push(file);\n }\n }\n }\n\n this.setState({\n files: this.files\n }, function () {\n if (_this2.hasFiles() && _this2.props.auto) {\n _this2.upload();\n }\n });\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n files: files\n });\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n\n if (this.props.mode === 'basic' && this.files.length > 0) {\n this.fileInput.style.display = 'none';\n }\n }\n }, {\n key: \"isFileSelected\",\n value: function isFileSelected(file) {\n var _iterator = _createForOfIteratorHelper(this.state.files),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var sFile = _step.value;\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return false;\n }\n }, {\n key: \"isIE11\",\n value: function isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n }\n }, {\n key: \"validate\",\n value: function validate(file) {\n if (this.props.maxFileSize && file.size > this.props.maxFileSize) {\n var message = {\n severity: 'error',\n summary: this.props.invalidFileSizeMessageSummary.replace('{0}', file.name),\n detail: this.props.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.props.maxFileSize))\n };\n\n if (this.props.mode === 'advanced') {\n this.messagesUI.show(message);\n }\n\n if (this.props.onValidationFail) {\n this.props.onValidationFail(file);\n }\n\n return false;\n }\n\n return true;\n }\n }, {\n key: \"upload\",\n value: function upload() {\n var _this3 = this;\n\n if (this.props.customUpload) {\n if (this.props.fileLimit) {\n this.uploadedFileCount += this.state.files.length;\n }\n\n if (this.props.uploadHandler) {\n this.props.uploadHandler({\n files: this.state.files,\n options: {\n clear: this.clear,\n props: this.props\n }\n });\n }\n } else {\n this.setState({\n msgs: []\n });\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n\n if (this.props.onBeforeUpload) {\n this.props.onBeforeUpload({\n 'xhr': xhr,\n 'formData': formData\n });\n }\n\n var _iterator2 = _createForOfIteratorHelper(this.state.files),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var file = _step2.value;\n formData.append(this.props.name, file, file.name);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n xhr.upload.addEventListener('progress', function (event) {\n if (event.lengthComputable) {\n _this3.setState({\n progress: Math.round(event.loaded * 100 / event.total)\n }, function () {\n if (_this3.props.onProgress) {\n _this3.props.onProgress({\n originalEvent: event,\n progress: _this3.state.progress\n });\n }\n });\n }\n });\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n _this3.setState({\n progress: 0\n });\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (_this3.props.fileLimit) {\n _this3.uploadedFileCount += _this3.state.files.length;\n }\n\n if (_this3.props.onUpload) {\n _this3.props.onUpload({\n xhr: xhr,\n files: _this3.state.files\n });\n }\n } else {\n if (_this3.props.onError) {\n _this3.props.onError({\n xhr: xhr,\n files: _this3.state.files\n });\n }\n }\n\n _this3.clear();\n }\n };\n\n xhr.open('POST', this.props.url, true);\n\n if (this.props.onBeforeSend) {\n this.props.onBeforeSend({\n 'xhr': xhr,\n 'formData': formData\n });\n }\n\n xhr.withCredentials = this.props.withCredentials;\n xhr.send(formData);\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.setState({\n files: []\n });\n\n if (this.props.onClear) {\n this.props.onClear();\n }\n\n this.clearInputElement();\n }\n }, {\n key: \"choose\",\n value: function choose() {\n this.fileInput.click();\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.which === 13) {\n // enter\n this.choose();\n }\n }\n }, {\n key: \"onDragEnter\",\n value: function onDragEnter(event) {\n if (!this.props.disabled) {\n event.dataTransfer.dropEffect = \"copy\";\n event.stopPropagation();\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event) {\n if (!this.props.disabled) {\n event.dataTransfer.dropEffect = \"copy\";\n DomHandler.addClass(this.content, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event) {\n if (!this.props.disabled) {\n event.dataTransfer.dropEffect = \"copy\";\n DomHandler.removeClass(this.content, 'p-fileupload-highlight');\n }\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n if (!this.props.disabled) {\n DomHandler.removeClass(this.content, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n var files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n var allowDrop = this.props.multiple || files && files.length === 0;\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n }, {\n key: \"onSimpleUploaderClick\",\n value: function onSimpleUploaderClick() {\n if (this.hasFiles()) {\n this.upload();\n } else {\n this.fileInput.click();\n }\n }\n }, {\n key: \"renderChooseButton\",\n value: function renderChooseButton() {\n var _this4 = this;\n\n var _this$props$chooseOpt = this.props.chooseOptions,\n className = _this$props$chooseOpt.className,\n style = _this$props$chooseOpt.style,\n icon = _this$props$chooseOpt.icon,\n iconOnly = _this$props$chooseOpt.iconOnly;\n var chooseClassName = classNames('p-button p-fileupload-choose p-component', {\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused,\n 'p-button-icon-only': iconOnly\n }, className);\n var labelClassName = 'p-button-label p-clickable';\n var label = iconOnly ? /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName,\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName\n }, this.chooseButtonLabel());\n return /*#__PURE__*/React.createElement(\"span\", {\n className: chooseClassName,\n style: style,\n onClick: this.choose,\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n tabIndex: 0\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this4.fileInput = el;\n },\n type: \"file\",\n onChange: this.onFileSelect,\n multiple: this.props.multiple,\n accept: this.props.accept,\n disabled: this.chooseDisabled()\n }), IconUtils.getJSXIcon(icon || 'pi pi-fw pi-plus', {\n className: 'p-button-icon p-button-icon-left p-clickable'\n }, {\n props: this.props\n }), label, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderFile\",\n value: function renderFile(file, index) {\n var _this5 = this;\n\n var preview = this.isImage(file) ? /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"img\", {\n alt: file.name,\n role: \"presentation\",\n src: file.objectURL,\n width: this.props.previewWidth\n })) : null;\n var fileName = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fileupload-filename\"\n }, file.name);\n var size = /*#__PURE__*/React.createElement(\"div\", null, this.formatSize(file.size));\n var removeButton = /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n icon: \"pi pi-times\",\n onClick: function onClick(e) {\n return _this5.remove(e, index);\n }\n }));\n var content = /*#__PURE__*/React.createElement(React.Fragment, null, preview, fileName, size, removeButton);\n\n if (this.props.itemTemplate) {\n var defaultContentOptions = {\n onRemove: function onRemove(event) {\n return _this5.remove(event, index);\n },\n previewElement: preview,\n fileNameElement: fileName,\n sizeElement: size,\n removeElement: removeButton,\n formatSize: this.formatSize(file.size),\n files: this.state.files,\n index: index,\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(this.props.itemTemplate, file, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fileupload-row\",\n key: file.name + file.type + file.size\n }, content);\n }\n }, {\n key: \"renderFiles\",\n value: function renderFiles() {\n var _this6 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fileupload-files\"\n }, this.state.files.map(function (file, index) {\n return _this6.renderFile(file, index);\n }));\n }\n }, {\n key: \"renderEmptyContent\",\n value: function renderEmptyContent() {\n if (this.props.emptyTemplate && !this.hasFiles()) {\n return ObjectUtils.getJSXElement(this.props.emptyTemplate, this.props);\n }\n\n return null;\n }\n }, {\n key: \"renderProgressBarContent\",\n value: function renderProgressBarContent() {\n if (this.props.progressBarTemplate) {\n return ObjectUtils.getJSXElement(this.props.progressBarTemplate, this.props);\n }\n\n return /*#__PURE__*/React.createElement(ProgressBar, {\n value: this.state.progress,\n showValue: false\n });\n }\n }, {\n key: \"renderAdvanced\",\n value: function renderAdvanced() {\n var _this7 = this;\n\n var className = classNames('p-fileupload p-fileupload-advanced p-component', this.props.className);\n var headerClassName = classNames('p-fileupload-buttonbar', this.props.headerClassName);\n var contentClassName = classNames('p-fileupload-content', this.props.contentClassName);\n var uploadButton, cancelButton, filesList, progressBar;\n var chooseButton = this.renderChooseButton();\n var emptyContent = this.renderEmptyContent();\n\n if (!this.props.auto) {\n var uploadOptions = this.props.uploadOptions;\n var cancelOptions = this.props.cancelOptions;\n var uploadLabel = !uploadOptions.iconOnly ? this.uploadButtonLabel() : '';\n var cancelLabel = !cancelOptions.iconOnly ? this.cancelButtonLabel() : '';\n uploadButton = /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n label: uploadLabel,\n icon: uploadOptions.icon || 'pi pi-upload',\n onClick: this.upload,\n disabled: this.uploadDisabled(),\n style: uploadOptions.style,\n className: uploadOptions.className\n });\n cancelButton = /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n label: cancelLabel,\n icon: cancelOptions.icon || 'pi pi-times',\n onClick: this.clear,\n disabled: this.cancelDisabled(),\n style: cancelOptions.style,\n className: cancelOptions.className\n });\n }\n\n if (this.hasFiles()) {\n filesList = this.renderFiles();\n progressBar = this.renderProgressBarContent();\n }\n\n var header = /*#__PURE__*/React.createElement(\"div\", {\n className: headerClassName,\n style: this.props.headerStyle\n }, chooseButton, uploadButton, cancelButton);\n\n if (this.props.headerTemplate) {\n var defaultContentOptions = {\n className: headerClassName,\n chooseButton: chooseButton,\n uploadButton: uploadButton,\n cancelButton: cancelButton,\n element: header,\n props: this.props\n };\n header = ObjectUtils.getJSXElement(this.props.headerTemplate, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, header, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n _this7.content = el;\n },\n className: contentClassName,\n style: this.props.contentStyle,\n onDragEnter: this.onDragEnter,\n onDragOver: this.onDragOver,\n onDragLeave: this.onDragLeave,\n onDrop: this.onDrop\n }, progressBar, /*#__PURE__*/React.createElement(Messages, {\n ref: function ref(el) {\n return _this7.messagesUI = el;\n }\n }), filesList, emptyContent));\n }\n }, {\n key: \"renderBasic\",\n value: function renderBasic() {\n var _this8 = this;\n\n var hasFiles = this.hasFiles();\n var chooseOptions = this.props.chooseOptions;\n var className = classNames('p-fileupload p-fileupload-basic p-component', this.props.className);\n var buttonClassName = classNames('p-button p-component p-fileupload-choose', {\n 'p-fileupload-choose-selected': hasFiles,\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n }, chooseOptions.className);\n var chooseIcon = chooseOptions.icon || classNames({\n 'pi pi-plus': !chooseOptions.icon && (!hasFiles || this.props.auto),\n 'pi pi-upload': !chooseOptions.icon && hasFiles && !this.props.auto\n });\n var labelClassName = 'p-button-label p-clickable';\n var chooseLabel = chooseOptions.iconOnly ? /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName,\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName\n }, this.chooseButtonLabel());\n var label = this.props.auto ? chooseLabel : /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName\n }, hasFiles ? this.state.files[0].name : chooseLabel);\n var icon = IconUtils.getJSXIcon(chooseIcon, {\n className: 'p-button-icon p-button-icon-left'\n }, {\n props: this.props,\n hasFiles: hasFiles\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(Messages, {\n ref: function ref(el) {\n return _this8.messagesUI = el;\n }\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: buttonClassName,\n style: chooseOptions.style,\n onMouseUp: this.onSimpleUploaderClick,\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n tabIndex: 0\n }, icon, label, !hasFiles && /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this8.fileInput = el;\n },\n type: \"file\",\n accept: this.props.accept,\n multiple: this.props.multiple,\n disabled: this.props.disabled,\n onChange: this.onFileSelect\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.props.mode === 'advanced') return this.renderAdvanced();else if (this.props.mode === 'basic') return this.renderBasic();\n }\n }]);\n\n return FileUpload;\n}(Component);\n\n_defineProperty(FileUpload, \"defaultProps\", {\n id: null,\n name: null,\n url: null,\n mode: 'advanced',\n multiple: false,\n accept: null,\n disabled: false,\n auto: false,\n maxFileSize: null,\n invalidFileSizeMessageSummary: '{0}: Invalid file size, ',\n invalidFileSizeMessageDetail: 'maximum upload size is {0}.',\n style: null,\n className: null,\n widthCredentials: false,\n previewWidth: 50,\n chooseLabel: null,\n uploadLabel: null,\n cancelLabel: null,\n chooseOptions: {\n label: null,\n icon: null,\n iconOnly: false,\n className: null,\n style: null\n },\n uploadOptions: {\n label: null,\n icon: null,\n iconOnly: false,\n className: null,\n style: null\n },\n cancelOptions: {\n label: null,\n icon: null,\n iconOnly: false,\n className: null,\n style: null\n },\n customUpload: false,\n headerClassName: null,\n headerStyle: null,\n contentClassName: null,\n contentStyle: null,\n headerTemplate: null,\n itemTemplate: null,\n emptyTemplate: null,\n progressBarTemplate: null,\n onBeforeUpload: null,\n onBeforeSend: null,\n onUpload: null,\n onError: null,\n onClear: null,\n onSelect: null,\n onProgress: null,\n onValidationFail: null,\n uploadHandler: null,\n onRemove: null\n});\n\nexport { FileUpload };","map":{"version":3,"names":["React","Component","Button","Messages","ProgressBar","DomHandler","classNames","IconUtils","ObjectUtils","Ripple","localeOption","_arrayLikeToArray$1","arr","len","length","i","arr2","Array","_arrayWithoutHoles","isArray","_iterableToArray","iter","Symbol","iterator","from","_unsupportedIterableToArray$1","o","minLen","n","Object","prototype","toString","call","slice","constructor","name","test","_nonIterableSpread","TypeError","_toConsumableArray","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","_createClass","protoProps","staticProps","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","p","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","value","_typeof","obj","_possibleConstructorReturn","_getPrototypeOf","getPrototypeOf","_defineProperty","_createForOfIteratorHelper","allowArrayLike","it","_unsupportedIterableToArray","F","s","done","e","_e","f","normalCompletion","didErr","err","step","next","_e2","_arrayLikeToArray","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","result","NewTarget","Reflect","construct","arguments","apply","sham","Proxy","Boolean","valueOf","FileUpload","_Component","_super","_this","state","files","msgs","focused","progress","choose","bind","upload","clear","onFileSelect","onDragEnter","onDragOver","onDragLeave","onDrop","onKeyDown","onFocus","onBlur","onSimpleUploaderClick","duplicateIEEvent","hasFiles","isImage","file","type","chooseDisabled","disabled","fileLimit","uploadedFileCount","uploadDisabled","cancelDisabled","chooseButtonLabel","chooseLabel","chooseOptions","label","uploadButtonLabel","uploadLabel","uploadOptions","cancelButtonLabel","cancelLabel","cancelOptions","remove","event","index","clearInputElement","currentFiles","removedFile","splice","setState","onRemove","originalEvent","fileInput","clearIEInput","formatSize","bytes","k","dm","sizes","Math","floor","log","parseFloat","pow","toFixed","_this2","isIE11","dataTransfer","isFileSelected","validate","objectURL","window","URL","createObjectURL","push","auto","onSelect","mode","style","display","_iterator","_step","sFile","size","document","maxFileSize","message","severity","summary","invalidFileSizeMessageSummary","replace","detail","invalidFileSizeMessageDetail","messagesUI","show","onValidationFail","_this3","customUpload","uploadHandler","options","xhr","XMLHttpRequest","formData","FormData","onBeforeUpload","_iterator2","_step2","append","addEventListener","lengthComputable","round","loaded","total","onProgress","onreadystatechange","readyState","status","onUpload","onError","open","url","onBeforeSend","withCredentials","send","onClear","click","which","dropEffect","stopPropagation","preventDefault","addClass","content","removeClass","allowDrop","multiple","renderChooseButton","_this4","_this$props$chooseOpt","className","icon","iconOnly","chooseClassName","labelClassName","createElement","dangerouslySetInnerHTML","__html","onClick","tabIndex","ref","el","onChange","accept","getJSXIcon","renderFile","_this5","preview","alt","role","src","width","previewWidth","fileName","removeButton","Fragment","itemTemplate","defaultContentOptions","previewElement","fileNameElement","sizeElement","removeElement","element","getJSXElement","renderFiles","_this6","map","renderEmptyContent","emptyTemplate","renderProgressBarContent","progressBarTemplate","showValue","renderAdvanced","_this7","headerClassName","contentClassName","uploadButton","cancelButton","filesList","progressBar","chooseButton","emptyContent","header","headerStyle","headerTemplate","id","contentStyle","renderBasic","_this8","buttonClassName","chooseIcon","onMouseUp","render","widthCredentials"],"sources":["/Users/paolasanchez/Desktop/Pry4/Katoikia/katoikia-app/web-ui/sakai-react/node_modules/primereact/fileupload/fileupload.esm.js"],"sourcesContent":["import React, { Component } from 'react';\nimport { Button } from 'primereact/button';\nimport { Messages } from 'primereact/messages';\nimport { ProgressBar } from 'primereact/progressbar';\nimport { DomHandler, classNames, IconUtils, ObjectUtils } from 'primereact/utils';\nimport { Ripple } from 'primereact/ripple';\nimport { localeOption } from 'primereact/api';\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar FileUpload = /*#__PURE__*/function (_Component) {\n _inherits(FileUpload, _Component);\n\n var _super = _createSuper(FileUpload);\n\n function FileUpload(props) {\n var _this;\n\n _classCallCheck(this, FileUpload);\n\n _this = _super.call(this, props);\n _this.state = {\n files: [],\n msgs: [],\n focused: false,\n progress: 0\n };\n _this.choose = _this.choose.bind(_assertThisInitialized(_this));\n _this.upload = _this.upload.bind(_assertThisInitialized(_this));\n _this.clear = _this.clear.bind(_assertThisInitialized(_this));\n _this.onFileSelect = _this.onFileSelect.bind(_assertThisInitialized(_this));\n _this.onDragEnter = _this.onDragEnter.bind(_assertThisInitialized(_this));\n _this.onDragOver = _this.onDragOver.bind(_assertThisInitialized(_this));\n _this.onDragLeave = _this.onDragLeave.bind(_assertThisInitialized(_this));\n _this.onDrop = _this.onDrop.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n _this.onSimpleUploaderClick = _this.onSimpleUploaderClick.bind(_assertThisInitialized(_this));\n _this.duplicateIEEvent = false;\n return _this;\n }\n\n _createClass(FileUpload, [{\n key: \"hasFiles\",\n value: function hasFiles() {\n return this.state.files && this.state.files.length > 0;\n }\n }, {\n key: \"isImage\",\n value: function isImage(file) {\n return /^image\\//.test(file.type);\n }\n }, {\n key: \"chooseDisabled\",\n value: function chooseDisabled() {\n return this.props.disabled || this.props.fileLimit && this.props.fileLimit <= this.state.files.length + this.uploadedFileCount;\n }\n }, {\n key: \"uploadDisabled\",\n value: function uploadDisabled() {\n return this.props.disabled || !this.hasFiles();\n }\n }, {\n key: \"cancelDisabled\",\n value: function cancelDisabled() {\n return this.props.disabled || !this.hasFiles();\n }\n }, {\n key: \"chooseButtonLabel\",\n value: function chooseButtonLabel() {\n return this.props.chooseLabel || this.props.chooseOptions.label || localeOption('choose');\n }\n }, {\n key: \"uploadButtonLabel\",\n value: function uploadButtonLabel() {\n return this.props.uploadLabel || this.props.uploadOptions.label || localeOption('upload');\n }\n }, {\n key: \"cancelButtonLabel\",\n value: function cancelButtonLabel() {\n return this.props.cancelLabel || this.props.cancelOptions.label || localeOption('cancel');\n }\n }, {\n key: \"remove\",\n value: function remove(event, index) {\n this.clearInputElement();\n\n var currentFiles = _toConsumableArray(this.state.files);\n\n var removedFile = this.state.files[index];\n currentFiles.splice(index, 1);\n this.setState({\n files: currentFiles\n });\n\n if (this.props.onRemove) {\n this.props.onRemove({\n originalEvent: event,\n file: removedFile\n });\n }\n }\n }, {\n key: \"clearInputElement\",\n value: function clearInputElement() {\n if (this.fileInput) {\n this.fileInput.value = '';\n }\n }\n }, {\n key: \"clearIEInput\",\n value: function clearIEInput() {\n if (this.fileInput) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n\n this.fileInput.value = '';\n }\n }\n }, {\n key: \"formatSize\",\n value: function formatSize(bytes) {\n if (bytes === 0) {\n return '0 B';\n }\n\n var k = 1000,\n dm = 3,\n sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n }, {\n key: \"onFileSelect\",\n value: function onFileSelect(event) {\n var _this2 = this;\n\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n\n this.setState({\n msgs: []\n });\n this.files = this.state.files ? _toConsumableArray(this.state.files) : [];\n var files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n\n if (!this.isFileSelected(file)) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = window.URL.createObjectURL(file);\n }\n\n this.files.push(file);\n }\n }\n }\n\n this.setState({\n files: this.files\n }, function () {\n if (_this2.hasFiles() && _this2.props.auto) {\n _this2.upload();\n }\n });\n\n if (this.props.onSelect) {\n this.props.onSelect({\n originalEvent: event,\n files: files\n });\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n\n if (this.props.mode === 'basic' && this.files.length > 0) {\n this.fileInput.style.display = 'none';\n }\n }\n }, {\n key: \"isFileSelected\",\n value: function isFileSelected(file) {\n var _iterator = _createForOfIteratorHelper(this.state.files),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var sFile = _step.value;\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return false;\n }\n }, {\n key: \"isIE11\",\n value: function isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n }\n }, {\n key: \"validate\",\n value: function validate(file) {\n if (this.props.maxFileSize && file.size > this.props.maxFileSize) {\n var message = {\n severity: 'error',\n summary: this.props.invalidFileSizeMessageSummary.replace('{0}', file.name),\n detail: this.props.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.props.maxFileSize))\n };\n\n if (this.props.mode === 'advanced') {\n this.messagesUI.show(message);\n }\n\n if (this.props.onValidationFail) {\n this.props.onValidationFail(file);\n }\n\n return false;\n }\n\n return true;\n }\n }, {\n key: \"upload\",\n value: function upload() {\n var _this3 = this;\n\n if (this.props.customUpload) {\n if (this.props.fileLimit) {\n this.uploadedFileCount += this.state.files.length;\n }\n\n if (this.props.uploadHandler) {\n this.props.uploadHandler({\n files: this.state.files,\n options: {\n clear: this.clear,\n props: this.props\n }\n });\n }\n } else {\n this.setState({\n msgs: []\n });\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n\n if (this.props.onBeforeUpload) {\n this.props.onBeforeUpload({\n 'xhr': xhr,\n 'formData': formData\n });\n }\n\n var _iterator2 = _createForOfIteratorHelper(this.state.files),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var file = _step2.value;\n formData.append(this.props.name, file, file.name);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n xhr.upload.addEventListener('progress', function (event) {\n if (event.lengthComputable) {\n _this3.setState({\n progress: Math.round(event.loaded * 100 / event.total)\n }, function () {\n if (_this3.props.onProgress) {\n _this3.props.onProgress({\n originalEvent: event,\n progress: _this3.state.progress\n });\n }\n });\n }\n });\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n _this3.setState({\n progress: 0\n });\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (_this3.props.fileLimit) {\n _this3.uploadedFileCount += _this3.state.files.length;\n }\n\n if (_this3.props.onUpload) {\n _this3.props.onUpload({\n xhr: xhr,\n files: _this3.state.files\n });\n }\n } else {\n if (_this3.props.onError) {\n _this3.props.onError({\n xhr: xhr,\n files: _this3.state.files\n });\n }\n }\n\n _this3.clear();\n }\n };\n\n xhr.open('POST', this.props.url, true);\n\n if (this.props.onBeforeSend) {\n this.props.onBeforeSend({\n 'xhr': xhr,\n 'formData': formData\n });\n }\n\n xhr.withCredentials = this.props.withCredentials;\n xhr.send(formData);\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.setState({\n files: []\n });\n\n if (this.props.onClear) {\n this.props.onClear();\n }\n\n this.clearInputElement();\n }\n }, {\n key: \"choose\",\n value: function choose() {\n this.fileInput.click();\n }\n }, {\n key: \"onFocus\",\n value: function onFocus() {\n this.setState({\n focused: true\n });\n }\n }, {\n key: \"onBlur\",\n value: function onBlur() {\n this.setState({\n focused: false\n });\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(event) {\n if (event.which === 13) {\n // enter\n this.choose();\n }\n }\n }, {\n key: \"onDragEnter\",\n value: function onDragEnter(event) {\n if (!this.props.disabled) {\n event.dataTransfer.dropEffect = \"copy\";\n event.stopPropagation();\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragOver\",\n value: function onDragOver(event) {\n if (!this.props.disabled) {\n event.dataTransfer.dropEffect = \"copy\";\n DomHandler.addClass(this.content, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n }\n }\n }, {\n key: \"onDragLeave\",\n value: function onDragLeave(event) {\n if (!this.props.disabled) {\n event.dataTransfer.dropEffect = \"copy\";\n DomHandler.removeClass(this.content, 'p-fileupload-highlight');\n }\n }\n }, {\n key: \"onDrop\",\n value: function onDrop(event) {\n if (!this.props.disabled) {\n DomHandler.removeClass(this.content, 'p-fileupload-highlight');\n event.stopPropagation();\n event.preventDefault();\n var files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n var allowDrop = this.props.multiple || files && files.length === 0;\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n }, {\n key: \"onSimpleUploaderClick\",\n value: function onSimpleUploaderClick() {\n if (this.hasFiles()) {\n this.upload();\n } else {\n this.fileInput.click();\n }\n }\n }, {\n key: \"renderChooseButton\",\n value: function renderChooseButton() {\n var _this4 = this;\n\n var _this$props$chooseOpt = this.props.chooseOptions,\n className = _this$props$chooseOpt.className,\n style = _this$props$chooseOpt.style,\n icon = _this$props$chooseOpt.icon,\n iconOnly = _this$props$chooseOpt.iconOnly;\n var chooseClassName = classNames('p-button p-fileupload-choose p-component', {\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused,\n 'p-button-icon-only': iconOnly\n }, className);\n var labelClassName = 'p-button-label p-clickable';\n var label = iconOnly ? /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName,\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName\n }, this.chooseButtonLabel());\n return /*#__PURE__*/React.createElement(\"span\", {\n className: chooseClassName,\n style: style,\n onClick: this.choose,\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n tabIndex: 0\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this4.fileInput = el;\n },\n type: \"file\",\n onChange: this.onFileSelect,\n multiple: this.props.multiple,\n accept: this.props.accept,\n disabled: this.chooseDisabled()\n }), IconUtils.getJSXIcon(icon || 'pi pi-fw pi-plus', {\n className: 'p-button-icon p-button-icon-left p-clickable'\n }, {\n props: this.props\n }), label, /*#__PURE__*/React.createElement(Ripple, null));\n }\n }, {\n key: \"renderFile\",\n value: function renderFile(file, index) {\n var _this5 = this;\n\n var preview = this.isImage(file) ? /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"img\", {\n alt: file.name,\n role: \"presentation\",\n src: file.objectURL,\n width: this.props.previewWidth\n })) : null;\n var fileName = /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fileupload-filename\"\n }, file.name);\n var size = /*#__PURE__*/React.createElement(\"div\", null, this.formatSize(file.size));\n var removeButton = /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n icon: \"pi pi-times\",\n onClick: function onClick(e) {\n return _this5.remove(e, index);\n }\n }));\n var content = /*#__PURE__*/React.createElement(React.Fragment, null, preview, fileName, size, removeButton);\n\n if (this.props.itemTemplate) {\n var defaultContentOptions = {\n onRemove: function onRemove(event) {\n return _this5.remove(event, index);\n },\n previewElement: preview,\n fileNameElement: fileName,\n sizeElement: size,\n removeElement: removeButton,\n formatSize: this.formatSize(file.size),\n files: this.state.files,\n index: index,\n element: content,\n props: this.props\n };\n content = ObjectUtils.getJSXElement(this.props.itemTemplate, file, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fileupload-row\",\n key: file.name + file.type + file.size\n }, content);\n }\n }, {\n key: \"renderFiles\",\n value: function renderFiles() {\n var _this6 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-fileupload-files\"\n }, this.state.files.map(function (file, index) {\n return _this6.renderFile(file, index);\n }));\n }\n }, {\n key: \"renderEmptyContent\",\n value: function renderEmptyContent() {\n if (this.props.emptyTemplate && !this.hasFiles()) {\n return ObjectUtils.getJSXElement(this.props.emptyTemplate, this.props);\n }\n\n return null;\n }\n }, {\n key: \"renderProgressBarContent\",\n value: function renderProgressBarContent() {\n if (this.props.progressBarTemplate) {\n return ObjectUtils.getJSXElement(this.props.progressBarTemplate, this.props);\n }\n\n return /*#__PURE__*/React.createElement(ProgressBar, {\n value: this.state.progress,\n showValue: false\n });\n }\n }, {\n key: \"renderAdvanced\",\n value: function renderAdvanced() {\n var _this7 = this;\n\n var className = classNames('p-fileupload p-fileupload-advanced p-component', this.props.className);\n var headerClassName = classNames('p-fileupload-buttonbar', this.props.headerClassName);\n var contentClassName = classNames('p-fileupload-content', this.props.contentClassName);\n var uploadButton, cancelButton, filesList, progressBar;\n var chooseButton = this.renderChooseButton();\n var emptyContent = this.renderEmptyContent();\n\n if (!this.props.auto) {\n var uploadOptions = this.props.uploadOptions;\n var cancelOptions = this.props.cancelOptions;\n var uploadLabel = !uploadOptions.iconOnly ? this.uploadButtonLabel() : '';\n var cancelLabel = !cancelOptions.iconOnly ? this.cancelButtonLabel() : '';\n uploadButton = /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n label: uploadLabel,\n icon: uploadOptions.icon || 'pi pi-upload',\n onClick: this.upload,\n disabled: this.uploadDisabled(),\n style: uploadOptions.style,\n className: uploadOptions.className\n });\n cancelButton = /*#__PURE__*/React.createElement(Button, {\n type: \"button\",\n label: cancelLabel,\n icon: cancelOptions.icon || 'pi pi-times',\n onClick: this.clear,\n disabled: this.cancelDisabled(),\n style: cancelOptions.style,\n className: cancelOptions.className\n });\n }\n\n if (this.hasFiles()) {\n filesList = this.renderFiles();\n progressBar = this.renderProgressBarContent();\n }\n\n var header = /*#__PURE__*/React.createElement(\"div\", {\n className: headerClassName,\n style: this.props.headerStyle\n }, chooseButton, uploadButton, cancelButton);\n\n if (this.props.headerTemplate) {\n var defaultContentOptions = {\n className: headerClassName,\n chooseButton: chooseButton,\n uploadButton: uploadButton,\n cancelButton: cancelButton,\n element: header,\n props: this.props\n };\n header = ObjectUtils.getJSXElement(this.props.headerTemplate, defaultContentOptions);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n id: this.props.id,\n className: className,\n style: this.props.style\n }, header, /*#__PURE__*/React.createElement(\"div\", {\n ref: function ref(el) {\n _this7.content = el;\n },\n className: contentClassName,\n style: this.props.contentStyle,\n onDragEnter: this.onDragEnter,\n onDragOver: this.onDragOver,\n onDragLeave: this.onDragLeave,\n onDrop: this.onDrop\n }, progressBar, /*#__PURE__*/React.createElement(Messages, {\n ref: function ref(el) {\n return _this7.messagesUI = el;\n }\n }), filesList, emptyContent));\n }\n }, {\n key: \"renderBasic\",\n value: function renderBasic() {\n var _this8 = this;\n\n var hasFiles = this.hasFiles();\n var chooseOptions = this.props.chooseOptions;\n var className = classNames('p-fileupload p-fileupload-basic p-component', this.props.className);\n var buttonClassName = classNames('p-button p-component p-fileupload-choose', {\n 'p-fileupload-choose-selected': hasFiles,\n 'p-disabled': this.props.disabled,\n 'p-focus': this.state.focused\n }, chooseOptions.className);\n var chooseIcon = chooseOptions.icon || classNames({\n 'pi pi-plus': !chooseOptions.icon && (!hasFiles || this.props.auto),\n 'pi pi-upload': !chooseOptions.icon && hasFiles && !this.props.auto\n });\n var labelClassName = 'p-button-label p-clickable';\n var chooseLabel = chooseOptions.iconOnly ? /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName,\n dangerouslySetInnerHTML: {\n __html: \" \"\n }\n }) : /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName\n }, this.chooseButtonLabel());\n var label = this.props.auto ? chooseLabel : /*#__PURE__*/React.createElement(\"span\", {\n className: labelClassName\n }, hasFiles ? this.state.files[0].name : chooseLabel);\n var icon = IconUtils.getJSXIcon(chooseIcon, {\n className: 'p-button-icon p-button-icon-left'\n }, {\n props: this.props,\n hasFiles: hasFiles\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: this.props.style\n }, /*#__PURE__*/React.createElement(Messages, {\n ref: function ref(el) {\n return _this8.messagesUI = el;\n }\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: buttonClassName,\n style: chooseOptions.style,\n onMouseUp: this.onSimpleUploaderClick,\n onKeyDown: this.onKeyDown,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n tabIndex: 0\n }, icon, label, !hasFiles && /*#__PURE__*/React.createElement(\"input\", {\n ref: function ref(el) {\n return _this8.fileInput = el;\n },\n type: \"file\",\n accept: this.props.accept,\n multiple: this.props.multiple,\n disabled: this.props.disabled,\n onChange: this.onFileSelect\n }), /*#__PURE__*/React.createElement(Ripple, null)));\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.props.mode === 'advanced') return this.renderAdvanced();else if (this.props.mode === 'basic') return this.renderBasic();\n }\n }]);\n\n return FileUpload;\n}(Component);\n\n_defineProperty(FileUpload, \"defaultProps\", {\n id: null,\n name: null,\n url: null,\n mode: 'advanced',\n multiple: false,\n accept: null,\n disabled: false,\n auto: false,\n maxFileSize: null,\n invalidFileSizeMessageSummary: '{0}: Invalid file size, ',\n invalidFileSizeMessageDetail: 'maximum upload size is {0}.',\n style: null,\n className: null,\n widthCredentials: false,\n previewWidth: 50,\n chooseLabel: null,\n uploadLabel: null,\n cancelLabel: null,\n chooseOptions: {\n label: null,\n icon: null,\n iconOnly: false,\n className: null,\n style: null\n },\n uploadOptions: {\n label: null,\n icon: null,\n iconOnly: false,\n className: null,\n style: null\n },\n cancelOptions: {\n label: null,\n icon: null,\n iconOnly: false,\n className: null,\n style: null\n },\n customUpload: false,\n headerClassName: null,\n headerStyle: null,\n contentClassName: null,\n contentStyle: null,\n headerTemplate: null,\n itemTemplate: null,\n emptyTemplate: null,\n progressBarTemplate: null,\n onBeforeUpload: null,\n onBeforeSend: null,\n onUpload: null,\n onError: null,\n onClear: null,\n onSelect: null,\n onProgress: null,\n onValidationFail: null,\n uploadHandler: null,\n onRemove: null\n});\n\nexport { FileUpload };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"}