primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 80+ 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) • 12.2 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/button"),l=require("primereact/messages"),a=require("primereact/progressbar"),r=require("primereact/ripple"),o=require("primereact/utils");function i(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 s=i(e);function u(){return u=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},u.apply(this,arguments)}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}function p(e){if(Array.isArray(e))return c(e)}function m(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function f(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 d(){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 y(e){return p(e)||m(e)||f(e)||d()}function b(e){if(Array.isArray(e))return e}function v(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var l,a,r=[],o=!0,i=!1;try{for(n=n.call(e);!(o=(l=n.next()).done)&&(r.push(l.value),!t||r.length!==t);o=!0);}catch(e){i=!0,a=e}finally{try{o||null==n.return||n.return()}finally{if(i)throw a}}return r}}function h(){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 g(e,t){return b(e)||v(e,t)||f(e,t)||h()}function E(e){throw new TypeError('"'+e+'" is read-only')}function S(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=O(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var l=0,a=function(){};return{s:a,n:function(){return l>=e.length?{done:!0}:{done:!1,value:e[l++]}},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 r,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,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(i)throw r}}}}function O(e,t){if(e){if("string"==typeof e)return N(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)?N(e,t):void 0}}function N(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}var w=s.memo(s.forwardRef((function(e,i){var c=g(s.useState([]),2),p=c[0],m=c[1],f=g(s.useState(0),2),d=f[0],b=f[1],v=g(s.useState(!1),2),h=v[0],O=v[1],N=g(s.useState(!1),2),B=N[0],U=N[1],j=s.useRef(null),T=s.useRef(null),C=s.useRef(null),F=s.useRef(!1),D=s.useRef(0),M=o.ObjectUtils.isNotEmpty(p),z=e.disabled||B,I=e.chooseLabel||e.chooseOptions.label||t.localeOption("choose"),L=e.uploadLabel||e.uploadOptions.label||t.localeOption("upload"),x=e.cancelLabel||e.cancelOptions.label||t.localeOption("cancel"),P=z||e.fileLimit&&e.fileLimit<=p.length+D,R=z||!M,A=z||!M,k=function(e){return/^image\//.test(e.type)},H=function(t,n){_();var l=y(p),a=p[n];l.splice(n,1),m(l),e.onRemove&&e.onRemove({originalEvent:t,file:a})},_=function(){j.current&&(j.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]},X=function(t){if(!e.onBeforeSelect||!1!==e.onBeforeSelect({originalEvent:t,files:p}))if("drop"!==t.type&&K()&&F.current)F.current=!1;else{var n=[];e.multiple&&(n=p?y(p):[]);for(var l=t.dataTransfer?t.dataTransfer.files:t.target.files,a=0;a<l.length;a++){var r=l[a];!J(r)&&V(r)&&(k(r)&&(r.objectURL=window.URL.createObjectURL(r)),n.push(r))}m(n),o.ObjectUtils.isNotEmpty(n)&&e.auto&&W(n),e.onSelect&&e.onSelect({originalEvent:t,files:l}),"drop"!==t.type&&K()?j.current&&(F.current=!0,j.current.value=""):_(),"basic"===e.mode&&n.length>0&&(j.current.style.display="none")}},J=function(e){return p.some((function(t){return t.name+t.type+t.size===e.name+e.type+e.size}))},K=function(){return!!window.MSInputMethodContext&&!!document.documentMode},V=function(t){if(e.maxFileSize&&t.size>e.maxFileSize){var n={severity:"error",summary:e.invalidFileSizeMessageSummary.replace("{0}",t.name),detail:e.invalidFileSizeMessageDetail.replace("{0}",q(e.maxFileSize)),sticky:!0};return"advanced"===e.mode&&T.current.show(n),e.onValidationFail&&e.onValidationFail(t),!1}return!0},W=function(t){if((t=t||p)&&t.nativeEvent&&(t=p),e.customUpload)e.fileLimit&&E("uploadedFileCount"),e.uploadHandler&&e.uploadHandler({files:t,options:{clear:Y,props:e}});else{U(!0);var n=new XMLHttpRequest,l=new FormData;e.onBeforeUpload&&e.onBeforeUpload({xhr:n,formData:l});var a,r=S(t);try{for(r.s();!(a=r.n()).done;){var o=a.value;l.append(e.name,o,o.name)}}catch(e){r.e(e)}finally{r.f()}n.upload.addEventListener("progress",(function(t){if(t.lengthComputable){var n=Math.round(100*t.loaded/t.total);b(n),e.onProgress&&e.onProgress({originalEvent:t,progress:n})}})),n.onreadystatechange=function(){4===n.readyState&&(b(0),U(!1),n.status>=200&&n.status<300?(e.fileLimit&&E("uploadedFileCount"),e.onUpload&&e.onUpload({xhr:n,files:t})):e.onError&&e.onError({xhr:n,files:t}),Y())},n.open("POST",e.url,!0),e.onBeforeSend&&e.onBeforeSend({xhr:n,formData:l}),n.withCredentials=e.withCredentials,n.send(l)}},Y=function(){m([]),U(!1),e.onClear&&e.onClear(),_()},$=function(){j.current.click()},G=function(){O(!0)},Z=function(){O(!1)},Q=function(e){13===e.which&&$()},ee=function(e){z||(e.dataTransfer.dropEffect="copy",e.stopPropagation(),e.preventDefault())},te=function(e){z||(e.dataTransfer.dropEffect="copy",o.DomHandler.addClass(C.current,"p-fileupload-highlight"),e.stopPropagation(),e.preventDefault())},ne=function(e){z||(e.dataTransfer.dropEffect="copy",o.DomHandler.removeClass(C.current,"p-fileupload-highlight"))},le=function(t){if(!e.disabled&&(o.DomHandler.removeClass(C.current,"p-fileupload-highlight"),t.stopPropagation(),t.preventDefault(),!e.onBeforeDrop||!1!==e.onBeforeDrop(t))){var n=t.dataTransfer?t.dataTransfer.files:t.target.files;(e.multiple||o.ObjectUtils.isEmpty(p)&&n&&1===n.length)&&X(t)}},ae=function(){!z&&M?W():j.current.click()};s.useImperativeHandle(i,(function(){return{props:e,upload:W,clear:Y,formatSize:q,onFileSelect:X,getInput:function(){return j.current},getContent:function(){return C.current},getFiles:function(){return p}}}));var re,oe,ie,se,ue,ce,pe,me,fe,de,ye=function(t,l){var a=t.name+t.type+t.size,r=k(t)?s.createElement("div",null,s.createElement("img",{alt:t.name,role:"presentation",src:t.objectURL,width:e.previewWidth})):null,i=s.createElement("div",{className:"p-fileupload-filename"},t.name),u=s.createElement("div",null,q(t.size)),c=s.createElement("div",null,s.createElement(n.Button,{type:"button",icon:"pi pi-times",onClick:function(e){return H(e,l)},disabled:z})),p=s.createElement(s.Fragment,null,r,i,u,c);if(e.itemTemplate){var m={onRemove:function(e){return H(e,l)},previewElement:r,fileNameElement:i,sizeElement:u,removeElement:c,formatSize:q(t.size),element:p,props:e};p=o.ObjectUtils.getJSXElement(e.itemTemplate,t,m)}return s.createElement("div",{className:"p-fileupload-row",key:a},p)};return"advanced"===e.mode?function(){var t,i,c,m,f,y,b,v,g,E,S,O,N,B,U=o.ObjectUtils.findDiffKeys(e,w.defaultProps),F=o.classNames("p-fileupload p-fileupload-advanced p-component",e.className),D=o.classNames("p-fileupload-buttonbar",e.headerClassName),k=o.classNames("p-fileupload-content",e.contentClassName),H=(i=(t=e.chooseOptions).style,c=t.icon,f=o.classNames("p-button p-fileupload-choose p-component",{"p-disabled":z,"p-focus":h,"p-button-icon-only":m=t.iconOnly},t.className),y="p-button-label p-clickable",b=m?s.createElement("span",{className:y,dangerouslySetInnerHTML:{__html:" "}}):s.createElement("span",{className:y},I),v=s.createElement("input",{ref:j,type:"file",onChange:X,multiple:e.multiple,accept:e.accept,disabled:P}),g=o.IconUtils.getJSXIcon(c||"pi pi-fw pi-plus",{className:"p-button-icon p-button-icon-left p-clickable"},{props:e}),s.createElement("span",{className:f,style:i,onClick:$,onKeyDown:Q,onFocus:G,onBlur:Z,tabIndex:0},v,g,b,s.createElement(r.Ripple,null))),_=e.emptyTemplate&&!M?o.ObjectUtils.getJSXElement(e.emptyTemplate,e):null;if(!e.auto){var q=e.uploadOptions,J=e.cancelOptions,K=J.iconOnly?"":x;E=s.createElement(n.Button,{type:"button",label:q.iconOnly?"":L,icon:q.icon||"pi pi-upload",onClick:W,disabled:R,style:q.style,className:q.className}),S=s.createElement(n.Button,{type:"button",label:K,icon:J.icon||"pi pi-times",onClick:Y,disabled:A,style:J.style,className:J.className})}M&&(B=p.map(ye),O=s.createElement("div",{className:"p-fileupload-files"},B),N=e.progressBarTemplate?o.ObjectUtils.getJSXElement(e.progressBarTemplate,e):s.createElement(a.ProgressBar,{value:d,showValue:!1}));var V=s.createElement("div",{className:D,style:e.headerStyle},H,E,S);e.headerTemplate&&(V=o.ObjectUtils.getJSXElement(e.headerTemplate,{className:D,chooseButton:H,uploadButton:E,cancelButton:S,element:V,props:e}));return s.createElement("div",u({id:e.id,className:F,style:e.style},U),V,s.createElement("div",{ref:C,className:k,style:e.contentStyle,onDragEnter:ee,onDragOver:te,onDragLeave:ne,onDrop:le},N,s.createElement(l.Messages,{ref:T}),O,_))}():"basic"===e.mode?(re=e.chooseOptions,oe=o.ObjectUtils.findDiffKeys(e,w.defaultProps),ie=o.classNames("p-fileupload p-fileupload-basic p-component",e.className),se=o.classNames("p-button p-component p-fileupload-choose",{"p-fileupload-choose-selected":M,"p-disabled":z,"p-focus":h},re.className),ue=re.icon||o.classNames({"pi pi-plus":!re.icon&&(!M||e.auto),"pi pi-upload":!re.icon&&M&&!e.auto}),ce="p-button-label p-clickable",pe=re.iconOnly?s.createElement("span",{className:ce,dangerouslySetInnerHTML:{__html:" "}}):s.createElement("span",{className:ce},I),me=e.auto?pe:s.createElement("span",{className:ce},M?p[0].name:pe),fe=o.IconUtils.getJSXIcon(ue,{className:"p-button-icon p-button-icon-left"},{props:e,hasFiles:M}),de=!M&&s.createElement("input",{ref:j,type:"file",accept:e.accept,multiple:e.multiple,disabled:z,onChange:X}),s.createElement("div",u({className:ie,style:e.style},oe),s.createElement(l.Messages,{ref:T}),s.createElement("span",{className:se,style:re.style,onMouseUp:ae,onKeyDown:Q,onFocus:G,onBlur:Z,tabIndex:0},fe,me,de,s.createElement(r.Ripple,null)))):void 0})));w.displayName="FileUpload",w.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},exports.FileUpload=w;