UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime

2 lines (1 loc) 14.8 kB
this.primereact=this.primereact||{},this.primereact.fileupload=function(e,t,n,l,r,a,o,i){"use strict";function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var l=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,l.get?l:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=s(t);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e},c.apply(this,arguments)}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,l=new Array(t);n<t;n++)l[n]=e[n];return l}function m(e){if(Array.isArray(e))return p(e)}function f(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function d(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.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)?p(e,t):void 0}}function y(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e){return m(e)||f(e)||d(e)||y()}function v(e){throw new TypeError('"'+e+'" is read-only')}function g(e){if(Array.isArray(e))return e}function h(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var l,r,a,o,i=[],s=!0,u=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(l=a.call(n)).done)&&(i.push(l.value),i.length!==t);s=!0);}catch(e){u=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw r}}return i}}function E(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function S(e,t){return g(e)||h(e,t)||d(e,t)||E()}var O={defaultProps:{__TYPE:"FileUpload",id:null,name:null,url:null,mode:"advanced",multiple:!1,accept:null,disabled:!1,auto:!1,maxFileSize:null,invalidFileSizeMessageSummary:"{0}: Invalid file size, ",invalidFileSizeMessageDetail:"maximum upload size is {0}.",style:null,className:null,widthCredentials:!1,previewWidth:50,chooseLabel:null,uploadLabel:null,cancelLabel:null,chooseOptions:{label:null,icon:null,iconOnly:!1,className:null,style:null},uploadOptions:{label:null,icon:null,iconOnly:!1,className:null,style:null},cancelOptions:{label:null,icon:null,iconOnly:!1,className:null,style:null},customUpload:!1,headerClassName:null,headerStyle:null,contentClassName:null,contentStyle:null,headerTemplate:null,itemTemplate:null,emptyTemplate:null,progressBarTemplate:null,onBeforeUpload:null,onBeforeSend:null,onBeforeDrop:null,onBeforeSelect:null,onUpload:null,onError:null,onClear:null,onSelect:null,onProgress:null,onValidationFail:null,uploadHandler:null,onRemove:null,children:void 0},getProps:function(e){return i.ObjectUtils.getMergedProps(e,O.defaultProps)},getOtherProps:function(e){return i.ObjectUtils.getDiffProps(e,O.defaultProps)}};function N(e){return N="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},N(e)}function w(e,t){if("object"!==N(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var l=n.call(e,t||"default");if("object"!==N(l))return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function j(e){var t=w(e,"string");return"symbol"===N(t)?t:String(t)}var P={defaultProps:{__TYPE:"Badge",value:null,severity:null,size:null,style:null,className:null,children:void 0},getProps:function(e){return i.ObjectUtils.getMergedProps(e,P.defaultProps)},getOtherProps:function(e){return i.ObjectUtils.getDiffProps(e,P.defaultProps)}},B=u.memo(u.forwardRef((function(e,t){var n,l,r,a=P.getProps(e),o=u.useRef(null),s=P.getOtherProps(a),p=i.classNames("p-badge p-component",(n={"p-badge-no-gutter":i.ObjectUtils.isNotEmpty(a.value)&&1===String(a.value).length,"p-badge-dot":i.ObjectUtils.isEmpty(a.value),"p-badge-lg":"large"===a.size,"p-badge-xl":"xlarge"===a.size},l="p-badge-".concat(a.severity),r=null!==a.severity,(l=j(l))in n?Object.defineProperty(n,l,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[l]=r,n),a.className);return u.useImperativeHandle(t,(function(){return{props:a,getElement:function(){return o.current}}})),u.createElement("span",c({ref:o,className:p,style:a.style},s),a.value)})));function U(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=T(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var l=0,r=function(){};return{s:r,n:function(){return l>=e.length?{done:!0}:{done:!1,value:e[l++]}},e:function(e){throw e},f:r}}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 a,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,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(i)throw a}}}}function T(e,t){if(e){if("string"==typeof e)return C(e,t);var n=Object.prototype.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)?C(e,t):void 0}}function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,l=new Array(t);n<t;n++)l[n]=e[n];return l}B.displayName="Badge";var F=u.memo(u.forwardRef((function(e,t){var s=O.getProps(e),p=S(u.useState([]),2),m=p[0],f=p[1],d=S(u.useState([]),2),y=d[0],g=d[1],h=S(u.useState(0),2),E=h[0],N=h[1],w=S(u.useState(!1),2),j=w[0],P=w[1],T=S(u.useState(!1),2),C=T[0],F=T[1],M=u.useRef(null),z=u.useRef(null),D=u.useRef(null),R=u.useRef(!1),I=u.useRef(0),x=i.ObjectUtils.isNotEmpty(y),L=i.ObjectUtils.isNotEmpty(m),A=s.disabled||C,k=s.chooseLabel||s.chooseOptions.label||n.localeOption("choose"),_=s.uploadLabel||s.uploadOptions.label||n.localeOption("upload"),H=s.cancelLabel||s.cancelOptions.label||n.localeOption("cancel"),X=A||s.fileLimit&&s.fileLimit<=y.length+I,J=A||!x,V=A||!x,K=function(e){return/^image\//.test(e.type)},Y=function(e,t){$();var n=b(y),l=y[t];n.splice(t,1),g(n),s.onRemove&&s.onRemove({originalEvent:e,file:l})},W=function(e,t){$();var n=b(m),l=y[t];n.splice(t,1),f(n),s.onRemove&&s.onRemove({originalEvent:e,file:l})},$=function(){M.current&&(M.current.value="")},q=function(e){if(0===e)return"0 B";var t=Math.floor(Math.log(e)/Math.log(1e3));return parseFloat((e/Math.pow(1e3,t)).toFixed(3))+" "+["B","KB","MB","GB","TB","PB","EB","ZB","YB"][t]},G=function(e){if(!s.onBeforeSelect||!1!==s.onBeforeSelect({originalEvent:e,files:y}))if("drop"!==e.type&&Q()&&R.current)R.current=!1;else{var t=[];s.multiple&&(t=y?b(y):[]);for(var n=e.dataTransfer?e.dataTransfer.files:e.target.files,l=0;l<n.length;l++){var r=n[l];!Z(r)&&ee(r)&&(K(r)&&(r.objectURL=window.URL.createObjectURL(r)),t.push(r))}g(t),i.ObjectUtils.isNotEmpty(t)&&s.auto&&te(t),s.onSelect&&s.onSelect({originalEvent:e,files:n}),"drop"!==e.type&&Q()?M.current&&(R.current=!0,M.current.value=""):$(),"basic"===s.mode&&t.length>0&&(M.current.style.display="none")}},Z=function(e){return y.some((function(t){return t.name+t.type+t.size===e.name+e.type+e.size}))},Q=function(){return!!window.MSInputMethodContext&&!!document.documentMode},ee=function(e){if(s.maxFileSize&&e.size>s.maxFileSize){var t={severity:"error",summary:s.invalidFileSizeMessageSummary.replace("{0}",e.name),detail:s.invalidFileSizeMessageDetail.replace("{0}",q(s.maxFileSize)),sticky:!0};return"advanced"===s.mode&&z.current.show(t),s.onValidationFail&&s.onValidationFail(e),!1}return!0},te=function(e){if((e=e||y)&&e.nativeEvent&&(e=y),s.customUpload)s.fileLimit&&v("uploadedFileCount"),s.uploadHandler&&s.uploadHandler({files:e,options:{clear:ne,props:s}});else{F(!0);var t=new XMLHttpRequest,n=new FormData;s.onBeforeUpload&&s.onBeforeUpload({xhr:t,formData:n});var l,r=U(e);try{for(r.s();!(l=r.n()).done;){var a=l.value;n.append(s.name,a,a.name)}}catch(e){r.e(e)}finally{r.f()}t.upload.addEventListener("progress",(function(e){if(e.lengthComputable){var t=Math.round(100*e.loaded/e.total);N(t),s.onProgress&&s.onProgress({originalEvent:e,progress:t})}})),t.onreadystatechange=function(){4===t.readyState&&(N(0),F(!1),t.status>=200&&t.status<300?(s.fileLimit&&v("uploadedFileCount"),s.onUpload&&s.onUpload({xhr:t,files:e})):s.onError&&s.onError({xhr:t,files:e}),f((function(t){return[].concat(b(t),b(e))})),ne())},t.open("POST",s.url,!0),s.onBeforeSend&&s.onBeforeSend({xhr:t,formData:n}),t.withCredentials=s.withCredentials,t.send(n)}},ne=function(){g([]),F(!1),s.onClear&&s.onClear(),$()},le=function(){M.current.click()},re=function(){P(!0)},ae=function(){P(!1)},oe=function(e){13===e.which&&le()},ie=function(e){A||(e.dataTransfer.dropEffect="copy",e.stopPropagation(),e.preventDefault())},se=function(e){A||(e.dataTransfer.dropEffect="copy",i.DomHandler.addClass(D.current,"p-fileupload-highlight"),e.stopPropagation(),e.preventDefault())},ue=function(e){A||(e.dataTransfer.dropEffect="copy",i.DomHandler.removeClass(D.current,"p-fileupload-highlight"))},ce=function(e){if(!s.disabled&&(i.DomHandler.removeClass(D.current,"p-fileupload-highlight"),e.stopPropagation(),e.preventDefault(),!s.onBeforeDrop||!1!==s.onBeforeDrop(e))){var t=e.dataTransfer?e.dataTransfer.files:e.target.files;(s.multiple||i.ObjectUtils.isEmpty(y)&&t&&1===t.length)&&G(e)}},pe=function(){!A&&x?te():M.current.click()};u.useImperativeHandle(t,(function(){return{props:s,upload:te,clear:ne,formatSize:q,onFileSelect:G,getInput:function(){return M.current},getContent:function(){return D.current},getFiles:function(){return y},setFiles:function(e){return g(e||[])}}}));var me,fe,de,ye,be,ve,ge,he,Ee,Se,Oe=function(e,t,n){"warning"===t.severity?Y(e,n):W(e,n)},Ne=function(e,t,n){var r=e.name+e.type+e.size,a=K(e)?u.createElement("img",{role:"presentation",className:"p-fileupload-file-thumbnail",alt:e.name,src:e.objectURL,width:s.previewWidth}):null,o=u.createElement("div",{className:"p-fileupload-filename"},e.name),c=u.createElement("div",null,q(e.size)),p=u.createElement("div",null,u.createElement("div",null," ",e.name),u.createElement("span",null,q(e.size)),u.createElement(B,{className:"p-fileupload-file-badge",value:n.value,severity:n.severity})),m=u.createElement("div",null,u.createElement(l.Button,{type:"button",icon:"pi pi-times",className:"p-button-danger p-button-text p-button-rounded",onClick:function(e){return Oe(e,n,t)},disabled:A})),f=u.createElement(u.Fragment,null,a,p,m);if(s.itemTemplate){var d={onRemove:function(e){return Y(e,t)},previewElement:a,fileNameElement:o,sizeElement:c,removeElement:m,formatSize:q(e.size),element:f,index:t,props:s};f=i.ObjectUtils.getJSXElement(s.itemTemplate,e,d)}return u.createElement("div",{className:"p-fileupload-row",key:r},f)},we=function(){var e={severity:"success",value:"Completed"},t=m&&m.map((function(t,n){return Ne(t,n,e)}));return u.createElement("div",null,t)};return"advanced"===s.mode?function(){var e,t,n,p,m,f,d,b,v,g,h,S,N,w,P,B,U=O.getOtherProps(s),T=i.classNames("p-fileupload p-fileupload-advanced p-component",s.className),C=i.classNames("p-fileupload-buttonbar",s.headerClassName),F=i.classNames("p-fileupload-content",s.contentClassName),R=(t=(e=s.chooseOptions).style,n=e.icon,m=i.classNames("p-button p-fileupload-choose p-component",{"p-disabled":A,"p-focus":j,"p-button-icon-only":p=e.iconOnly},e.className),f="p-button-label p-clickable",d=p?u.createElement("span",{className:f,dangerouslySetInnerHTML:{__html:"&nbsp;"}}):u.createElement("span",{className:f},k),b=u.createElement("input",{ref:M,type:"file",onChange:G,multiple:s.multiple,accept:s.accept,disabled:X}),v=i.IconUtils.getJSXIcon(n||"pi pi-fw pi-plus",{className:"p-button-icon p-button-icon-left p-clickable"},{props:s}),u.createElement("span",{className:m,style:t,onClick:le,onKeyDown:oe,onFocus:re,onBlur:ae,tabIndex:0},b,v,d,u.createElement(o.Ripple,null))),I=!s.emptyTemplate||x||L?null:i.ObjectUtils.getJSXElement(s.emptyTemplate,s);if(!s.auto){var K=s.uploadOptions,Y=s.cancelOptions,W=Y.iconOnly?"":H;g=u.createElement(l.Button,{type:"button",label:K.iconOnly?"":_,icon:K.icon||"pi pi-upload",onClick:te,disabled:J,style:K.style,className:K.className}),h=u.createElement(l.Button,{type:"button",label:W,icon:Y.icon||"pi pi-times",onClick:ne,disabled:V,style:Y.style,className:Y.className})}x&&(P={severity:"warning",value:"Pending"},B=y.map((function(e,t){return Ne(e,t,P)})),S=u.createElement("div",null,B),w=s.progressBarTemplate?i.ObjectUtils.getJSXElement(s.progressBarTemplate,s):u.createElement(a.ProgressBar,{value:E,showValue:!1})),L&&(N=we());var $=u.createElement("div",{className:C,style:s.headerStyle},R,g,h);s.headerTemplate&&($=i.ObjectUtils.getJSXElement(s.headerTemplate,{className:C,chooseButton:R,uploadButton:g,cancelButton:h,element:$,props:s}));return u.createElement("div",c({id:s.id,className:T,style:s.style},U),$,u.createElement("div",{ref:D,className:F,style:s.contentStyle,onDragEnter:ie,onDragOver:se,onDragLeave:ue,onDrop:ce},w,u.createElement(r.Messages,{ref:z}),x?S:null,L?N:null,I))}():"basic"===s.mode?(me=s.chooseOptions,fe=O.getOtherProps(s),de=i.classNames("p-fileupload p-fileupload-basic p-component",s.className),ye=i.classNames("p-button p-component p-fileupload-choose",{"p-fileupload-choose-selected":x,"p-disabled":A,"p-focus":j},me.className),be=me.icon||i.classNames({"pi pi-plus":!me.icon&&(!x||s.auto),"pi pi-upload":!me.icon&&x&&!s.auto}),ve="p-button-label p-clickable",ge=me.iconOnly?u.createElement("span",{className:ve,dangerouslySetInnerHTML:{__html:"&nbsp;"}}):u.createElement("span",{className:ve},k),he=s.auto?ge:u.createElement("span",{className:ve},x?y[0].name:ge),Ee=i.IconUtils.getJSXIcon(be,{className:"p-button-icon p-button-icon-left"},{props:s,hasFiles:x}),Se=!x&&u.createElement("input",{ref:M,type:"file",accept:s.accept,multiple:s.multiple,disabled:A,onChange:G}),u.createElement("div",c({className:de,style:s.style},fe),u.createElement(r.Messages,{ref:z}),u.createElement("span",{className:ye,style:me.style,onMouseUp:pe,onKeyDown:oe,onFocus:re,onBlur:ae,tabIndex:0},Ee,he,Se,u.createElement(o.Ripple,null)))):void 0})));return F.displayName="FileUpload",e.FileUpload=F,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.button,primereact.messages,primereact.progressbar,primereact.ripple,primereact.utils);