"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/componentbase"),r=require("primereact/hooks"),a=require("primereact/utils"),l=require("primereact/button"),o=require("primereact/icons/plus"),i=require("primereact/icons/times"),s=require("primereact/icons/upload"),c=require("primereact/messages"),u=require("primereact/progressbar"),p=require("primereact/ripple");function d(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var f=d(e);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function b(e,t){if("object"!=m(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=m(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function y(e){var t=b(e,"string");return"symbol"==m(t)?t:t+""}function v(e,t,n){return(t=y(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n div {\n flex: 1 1 auto;\n width: 25%;\n }\n \n .p-fileupload-row > div:last-child {\n text-align: right;\n }\n \n .p-fileupload-content > .p-progressbar {\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n }\n \n .p-button.p-fileupload-choose {\n position: relative;\n overflow: hidden;\n }\n \n .p-fileupload-buttonbar {\n display: flex;\n flex-wrap: wrap;\n }\n \n .p-button.p-fileupload-choose input[type='file'] {\n display: none;\n }\n \n .p-fileupload-choose.p-fileupload-choose-selected input[type='file'] {\n display: none;\n }\n \n .p-fileupload-filename {\n word-break: break-all;\n }\n \n .p-fileupload-file-thumbnail {\n flex-shrink: 0;\n }\n \n .p-fileupload-file-badge {\n margin: 0.5rem;\n }\n \n .p-fluid .p-fileupload .p-button {\n width: auto;\n }\n}\n"}});function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 l,o=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){i=!0,l=e},f:function(){try{o||null==n.return||n.return()}finally{if(i)throw l}}}}function L(e,t){if(e){if("string"==typeof e)return R(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?R(e,t):void 0}}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n0&&(J.current.style.display="none")}},ue=function(e){return S.some((function(t){return t.name+t.type+t.size===e.name+e.type+e.size}))},pe=function(e){if(y.maxFileSize&&e.size>y.maxFileSize){var t={severity:"error",summary:y.invalidFileSizeMessageSummary.replace("{0}",e.name),detail:y.invalidFileSizeMessageDetail.replace("{0}",se(y.maxFileSize)),sticky:!0};return"advanced"===y.mode&&V.current.show(t),y.onValidationFail&&y.onValidationFail(e),!1}return!0},de=function(e){if((e=e||S)&&e.nativeEvent&&(e=S),y.customUpload)y.fileLimit&&j("uploadedFileCount"),y.uploadHandler&&y.uploadHandler({files:e,options:{clear:fe,props:y}});else{R(!0);var t=new XMLHttpRequest,n=new FormData;y.onBeforeUpload&&y.onBeforeUpload({xhr:t,formData:n});var r,a=z(e);try{for(a.s();!(r=a.n()).done;){var l=r.value;n.append(y.name,l,l.name)}}catch(e){a.e(e)}finally{a.f()}t.upload.addEventListener("progress",(function(e){if(e.lengthComputable){var t=Math.round(100*e.loaded/e.total);B(t),y.onProgress&&y.onProgress({originalEvent:e,progress:t})}})),t.onreadystatechange=function(){4===t.readyState&&(B(0),R(!1),t.status>=200&&t.status<300?(y.fileLimit&&j("uploadedFileCount"),y.onUpload&&y.onUpload({xhr:t,files:e})):y.onError&&y.onError({xhr:t,files:e}),fe(),O((function(t){return[].concat(w(t),w(e))})))},t.open("POST",y.url,!0),y.onBeforeSend&&y.onBeforeSend({xhr:t,formData:n}),t.withCredentials=y.withCredentials,t.send(n)}},fe=function(){N([]),O([]),R(!1),y.onClear&&y.onClear(),ie()},me=function(){J.current.click()},be=function(){F(!0)},ye=function(){F(!1)},ve=function(e){"Enter"!==e.code&&"NumpadEnter"!==e.code||me()},ge=function(e){if(!y.disabled&&(!X()&&a.DomHandler.removeClass(K.current,"p-fileupload-highlight"),K.current.setAttribute("data-p-highlight",!1),e.stopPropagation(),e.preventDefault(),!y.onBeforeDrop||!1!==y.onBeforeDrop(e))){var t=e.dataTransfer?e.dataTransfer.files:e.target.files;(y.multiple||a.ObjectUtils.isEmpty(S)&&t&&1===t.length)&&ce(e)}},he=function(){!G&&Y?de():J.current.click()};f.useImperativeHandle(d,(function(){return{props:y,upload:de,clear:fe,formatSize:se,onFileSelect:ce,getInput:function(){return J.current},getContent:function(){return K.current},getFiles:function(){return S},setFiles:function(e){return N(e||[])},getUploadedFiles:function(){return h},setUploadedFiles:function(e){return O(e||[])}}}));var Oe,Ee,Se,Ne,we,je,Pe,Ie,Be,Ue,xe=function(e,t,n){"warning"===t.severity?le(e,n):oe(e,n)},Ce=function(e,t,n){var r=e.name+e.type+e.size,o=m({role:"presentation",className:H("thumbnail"),src:e.objectURL,width:y.previewWidth},q("thumbnail")),s=ae(e)?f.createElement("img",g({},o,{alt:e.name})):null,c=m(q("details")),u=m(q("fileSize")),p=m({className:H("fileName")},q("fileName")),d=m(q("actions")),b=f.createElement("div",p,e.name),v=f.createElement("div",u,se(e.size)),h=f.createElement("div",c,f.createElement("div",p," ",e.name),f.createElement("span",u,se(e.size)),f.createElement(T,{className:"p-fileupload-file-badge",value:n.value,severity:n.severity,pt:q("badge"),__parentMetadata:{parent:k}})),O=f.createElement("div",d,f.createElement(l.Button,{type:"button",icon:y.removeIcon||f.createElement(i.TimesIcon,null),text:!0,rounded:!0,severity:"danger",onClick:function(e){return xe(e,n,t)},disabled:G,pt:q("removeButton"),__parentMetadata:{parent:k},unstyled:X()})),E=f.createElement(f.Fragment,null,s,h,O);if(y.itemTemplate){var S={onRemove:function(e){return le(e,t)},previewElement:s,fileNameElement:b,sizeElement:v,removeElement:O,formatSize:se(e.size),element:E,index:t,props:y};E=a.ObjectUtils.getJSXElement(y.itemTemplate,e,S)}var N=m({key:r,className:H("file")},q("file"));return f.createElement("div",N,E)},Fe=function(){var e={severity:"success",value:t.localeOption("completed")||"Completed"},n=h&&h.map((function(t,n){return Ce(t,n,e)}));return f.createElement("div",null,n)};return"advanced"===y.mode?function(){var e,n,r,d,b,v,h,O,E,N,w,j,P,B,U,x,F,T,M,z=(n=(e=y.chooseOptions).className,r=e.style,d=e.icon,b=e.iconOnly,v=m({className:H("chooseButtonLabel")},q("chooseButtonLabel")),h=b?f.createElement("span",g({},v,{dangerouslySetInnerHTML:{__html:" "}})):f.createElement("span",v,Q),O=m({ref:J,type:"file",onChange:function(e){return ce(e)},multiple:y.multiple,accept:y.accept,disabled:te},q("input")),E=f.createElement("input",O),N=m({className:H("chooseIcon",{iconOnly:b}),"aria-hidden":"true"},q("chooseIcon")),w=a.IconUtils.getJSXIcon(d||f.createElement(o.PlusIcon,N),_({},N),{props:y}),j=m({className:a.classNames(n,H("chooseButton",{iconOnly:b,disabled:G,className:n,focusedState:C})),style:r,onClick:me,onKeyDown:function(e){return ve(e)},onFocus:be,onBlur:ye,tabIndex:0,"data-p-disabled":G,"data-p-focus":C},q("chooseButton")),f.createElement("span",j,E,w,h,f.createElement(p.Ripple,null))),L=!y.emptyTemplate||Y||$?null:a.ObjectUtils.getJSXElement(y.emptyTemplate,y);if(!y.auto){var R=y.uploadOptions,A=y.cancelOptions,W=R.iconOnly?"":Z,ae=A.iconOnly?"":ee,le=m({className:H("uploadIcon",{iconOnly:R.iconOnly}),"aria-hidden":"true"},q("uploadIcon")),oe=a.IconUtils.getJSXIcon(R.icon||f.createElement(s.UploadIcon,le),_({},le),{props:y}),ie=m({className:H("cancelIcon",{iconOnly:A.iconOnly}),"aria-hidden":"true"},q("cancelIcon")),se=a.IconUtils.getJSXIcon(A.icon||f.createElement(i.TimesIcon,ie),_({},ie),{props:y});P=f.createElement(l.Button,{type:"button",label:W,"aria-hidden":"true",icon:oe,onClick:de,disabled:ne,style:R.style,className:R.className,pt:q("uploadButton"),__parentMetadata:{parent:k},unstyled:X()}),B=f.createElement(l.Button,{type:"button",label:ae,"aria-hidden":"true",icon:se,onClick:fe,disabled:re,style:A.style,className:A.className,pt:q("cancelButton"),__parentMetadata:{parent:k},unstyled:X()})}Y&&(T={severity:"warning",value:t.localeOption("pending")||"Pending"},M=S.map((function(e,t){return Ce(e,t,T)})),U=f.createElement("div",null,M),F=y.progressBarTemplate?a.ObjectUtils.getJSXElement(y.progressBarTemplate,{progress:I,props:y}):f.createElement(u.ProgressBar,{value:I,showValue:!1,pt:q("progressbar"),__parentMetadata:{parent:k}})),$&&(x=Fe());var ue=m({className:a.classNames(y.headerClassName,H("buttonbar")),style:y.headerStyle},q("buttonbar")),pe=f.createElement("div",ue,z,P,B);if(y.headerTemplate){var he={className:a.classNames("p-fileupload-buttonbar",y.headerClassName),chooseButton:z,uploadButton:P,cancelButton:B,element:pe,props:y};pe=a.ObjectUtils.getJSXElement(y.headerTemplate,he)}var Oe=m({id:y.id,className:a.classNames(y.className,H("root")),style:y.style},D.getOtherProps(y),q("root")),Ee=m({ref:K,className:a.classNames(y.contentClassName,H("content")),style:y.contentStyle,onDragEnter:function(e){return t=e,void(G||(t.dataTransfer.dropEffect="copy",t.stopPropagation(),t.preventDefault()));var t},onDragOver:function(e){return t=e,void(G||(t.dataTransfer.dropEffect="copy",!X()&&a.DomHandler.addClass(K.current,"p-fileupload-highlight"),K.current.setAttribute("data-p-highlight",!0),t.stopPropagation(),t.preventDefault()));var t},onDragLeave:function(e){G||(e.dataTransfer.dropEffect="copy",!X()&&a.DomHandler.removeClass(K.current,"p-fileupload-highlight"),K.current.setAttribute("data-p-highlight",!1))},onDrop:function(e){return ge(e)},"data-p-highlight":!1},q("content"));return f.createElement("div",Oe,pe,f.createElement("div",Ee,F,f.createElement(c.Messages,{ref:V,__parentMetadata:{parent:k}}),Y?U:null,$?x:null,L))}():"basic"===y.mode?(Oe=y.chooseOptions,Ee=m({className:H("label")},q("label")),Se=Oe.iconOnly?f.createElement("span",g({},Ee,{dangerouslySetInnerHTML:{__html:" "}})):f.createElement("span",Ee,Q),Ne=y.auto?Se:f.createElement("span",Ee,Y?y.selectedFileLabel||S[0].name:Se),we=m({className:H("chooseIcon",{iconOnly:Oe.iconOnly})},q("chooseIcon")),je=a.IconUtils.getJSXIcon(Oe.icon?Oe.icon:Oe.icon||Y&&!y.auto?!Oe.icon&&Y&&!y.auto&&f.createElement(s.UploadIcon,we):f.createElement(o.PlusIcon,we),_({},we),{props:y,hasFiles:Y}),Pe=m({ref:J,type:"file",onChange:function(e){return ce(e)},multiple:y.multiple,accept:y.accept,disabled:G},q("input")),Ie=!Y&&f.createElement("input",Pe),Be=m({className:a.classNames(y.className,H("root")),style:y.style},D.getOtherProps(y),q("root")),Ue=m({className:a.classNames(Oe.className,H("basicButton",{hasFiles:Y,disabled:G,focusedState:C})),style:Oe.style,tabIndex:0,onClick:he,onKeyDown:function(e){return ve(e)},onFocus:be,onBlur:ye},D.getOtherProps(y),q("basicButton")),f.createElement("div",Be,f.createElement(c.Messages,{ref:V,pt:q("message"),__parentMetadata:{parent:k}}),f.createElement("span",Ue,je,Ne,Ie,f.createElement(p.Ripple,null)))):void 0})));k.displayName="FileUpload",exports.FileUpload=k;