dext5upload-react
Version:
React component for DEXT5 Upload
5 lines (4 loc) • 16.6 kB
JavaScript
/**
* @license Copyright (c) 2003-2022, RAONWIZ DevTeam. All rights reserved.
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).DEXT5UploadReact={},e.React)}(this,(function(e,t){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var o=n(t),r=function(){return r=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},r.apply(this,arguments)};function a(e,t,n){if(n||2===arguments.length)for(var o,r=0,a=t.length;r<a;r++)!o&&r in t||(o||(o=Array.prototype.slice.call(t,0,r)),o[r]=t[r]);return e.concat(o||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var c=["loaded","creationComplete","destroy","beforeAddItem","afterAddItem","afterAddItemEndTime","beforeDeleteItem","deleteItemEndTime","transferStart","transferComplete","beforeFileDownload","beforeFileViewOrOpen","afterDownload","finishDownloaded","onError","uploadingCancel","selectItem","deselectItem","customAction","alert"],i=["beforeLoad","namespaceLoaded"],d=a(a([],c,!0),i,!0),l="__RDU__";function p(e){return"".concat(l).concat(e)}function u(e){return e.substr(l.length)}function s(e){var t=e.substr(0,1).toUpperCase()+e.substr(1);return"on".concat(t)}function f(e){return e.substr(2,1).toLowerCase()+e.substr(3)}var m=a(a([],c,!0),i,!0).reduce((function(e,t){var n;return r(r({},e),((n={})[t]=p(t),n))}),{});function v(e){var t=e.debug,n=e.component,o=e.evtName,r=e.handler,a=t&&Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),c=r;return t&&(c=function(e){return console.log({logType:"RAONWIZ Log - invoke",operation:"invoke",component:n,componentName:n.object.ID,evtName:o,handlerId:a,eventInfo:e.eventInfo}),r(e)}),t&&console.log({logType:"RAONWIZ Log - register",operation:"register",component:n,componentName:n.object.ID,evtName:o,handlerId:a}),DEXT5UPLOAD._ExternalAttachEvents(n.object,o,c),function(){t&&console.log({logType:"RAONWIZ Log - unregister",operation:"unregister",component:n,componentName:n.object.ID,evtName:o,handlerId:a})}}var D,O={};function E(e,t){e.onload=function(){this.onerror=this.onload=null,t(null,e)},e.onerror=function(){this.onerror=this.onload=null,t(new Error("Failed to load "+this.src),e)}}function y(e,t){e.onreadystatechange=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||(this.onreadystatechange=null,t(null,e))}}function b(e,t,n){if("string"!=typeof e||e.length<1)return Promise.reject(new TypeError("Component TYPE must be a non-empty string."));if(e in window){var o=null;switch(e){case"RAONKUPLOAD":o=RAONKUPLOAD;break;case"RAONKEDITOR":o=RAONKEDITOR;break;case"DEXT5UPLOAD":o=DEXT5UPLOAD;break;case"DEXT5":o=DEXT5}return Promise.resolve(o)}return"string"!=typeof t||t.length<1?Promise.reject(new TypeError("Component URL must be a non-empty string.")):(D||(D=b.scriptLoader(e,t).then((function(e){return n&&n(e),e}))),D)}Object.defineProperty(O,"__esModule",{value:!0}),b.scriptLoader=function(e,t){return new Promise((function(n,o){var r,a,c,i,d;r=t,a=function(t){D=void 0;var r=null;switch(e){case"RAONKUPLOAD":r=window.RAONKUPLOAD;break;case"RAONKEDITOR":r=window.RAONKEDITOR;break;case"DEXT5UPLOAD":r=window.DEXT5UPLOAD;break;case"DEXT5":r=window.DEXT5}return t?o(t):r?void n(r):o(new Error("Script loaded from componentUrl doesn't provide Component namespace."))},i=document.head||document.getElementsByTagName("head")[0],d=document.createElement("script"),"function"==typeof a&&(c=a,a={}),a=a||{},c=c||function(){},d.type=a.type||"text/javascript",d.charset=a.charset||"utf8",d.async=!("async"in a)||!!a.async,d.src=r,a.attrs&&function(e,t){for(var n in t)e.setAttribute(n,t[n])}(d,a.attrs),a.text&&(d.text=String(a.text)),("onload"in d?E:y)(d,c),d.onload||E(d,c),i.appendChild(d)}))},O.debounce=function(e,t){var n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function(){clearTimeout(n);for(var r=arguments.length,a=new Array(r),c=0;c<r;c++)a[c]=arguments[c];n=setTimeout(e.bind.apply(e,[o].concat(a)),t)}};var I=O.getRaonwizComponentNamespace=b,h=o.useEffect,g=o.useReducer,A=o.useRef,L="DEXT5UPLOAD",P="/dext5upload/js/dext5upload.js",T={};function U(e){var t=e.debug,n=e.element,o=e.config,r=e.componentUrl,a=e.createMode,c=e.dispatchEvent,p=e.subscribeTo,u=void 0===p?d:p,s=A(r||P),f=A(a),D=A(null!=u?u:d),O=A(t),E=A(c),y=A(o||T),b=g(j,{component:void 0,hookStatus:"init"}),U=b[0],_=U.component,x=U.hookStatus,N=b[1];return h((function(){if(n&&!_){N({type:"loading"});I(L,s.current,(function(e){var t;-1!==D.current.indexOf("namespaceLoaded")&&(null===(t=E.current)||void 0===t||t.call(E,{type:m.namespaceLoaded,payload:e}))})).then((function(e){var o;-1!==D.current.indexOf("beforeLoad")&&(null===(o=E.current)||void 0===o||o.call(E,{type:m.beforeLoad,payload:e})),void 0===e._ExternalMakeComponent&&function(e){e._ExternalMakeComponent=function(t,n,o){void 0===DEXT5UPLOAD._ExternalLoadedEventMap&&(DEXT5UPLOAD._ExternalLoadedEventMap=new Map),void 0===DEXT5UPLOAD._ExternalCreationCompleteEventMap&&(DEXT5UPLOAD._ExternalCreationCompleteEventMap=new Map),void 0===DEXT5UPLOAD._ExternalDestroyEventMap&&(DEXT5UPLOAD._ExternalDestroyEventMap=new Map),DEXT5UPLOAD._ExternalLoadedEventMap.set(t.id,[]),DEXT5UPLOAD._ExternalCreationCompleteEventMap.set(t.id,[]),DEXT5UPLOAD._ExternalDestroyEventMap.set(t.id,[]),e._ExternalDestroy=!0;var r={UploadHolder:t.id,Id:t.id};if(r=e.util.objectExtend(!0,n,r),o&&"object"==o.toLowerCase())return{object:new Dext5Upload(r),status:"ready"};for(var a=0,c=Object.entries(r);a<c.length;a++){var i=c[a],d=i[0],l=i[1];DEXT5UPLOAD.config[d]=l}return{object:new Dext5Upload(t.id),status:"ready"}}}(e),void 0===e._ExternalSetDestroyEvent&&function(e){e._ExternalSetDestroyEvent=function(e){var t,n;"function"==typeof MutationObserver?(t=(n=document.getElementById("dext5uploader_holder_"+e))||document.getElementById("dext5uploader_frame_"+e))&&new MutationObserver((function(){var t=DEXT5UPLOAD._ExternalDestroyEventMap.get(e),n=DEXT5UPLOAD.GetUploadByName(e);if(void 0!==t&&t.length>0)for(var o=0,r=t.length;o<r;o++)try{t[o]({eventInfo:{componentName:e,paramObj:void 0}})}catch(e){}else if(n&&void 0!==n._config&&"function"==typeof n._config.event.destroy)try{n._config.event.destroy({eventInfo:{componentName:e,paramObj:void 0}})}catch(e){}else if("function"==typeof UPLOADTOP.UPLOADWIN.DEXT5UPLOAD_Destroy)try{UPLOADTOP.UPLOADWIN.DEXT5UPLOAD_Destroy({eventInfo:{componentName:e,paramObj:void 0}})}catch(e){}})).observe(t,{childList:!0}):((n=document.getElementById("dext5uploader_frame_"+e))&&(t=n),t&&t.addEventListener("DOMNodeRemoved",(function(t){var n=DEXT5UPLOAD._ExternalDestroyEventMap.get(e);if(void 0!==n&&n.length>0)for(var o=0,r=n.length;o<r;o++)try{n[o]({eventInfo:{componentName:e,paramObj:void 0}})}catch(t){}else if(UPLOADTOP.G_CURRUPLOADER&&void 0!==UPLOADTOP.G_CURRUPLOADER._config&&"function"==typeof UPLOADTOP.G_CURRUPLOADER._config.event.destroy)try{UPLOADTOP.G_CURRUPLOADER._config.event.destroy({eventInfo:{componentName:e,paramObj:void 0}})}catch(t){}else if("function"==typeof UPLOADTOP.UPLOADWIN.DEXT5UPLOAD_Destroy)try{UPLOADTOP.UPLOADWIN.DEXT5UPLOAD_Destroy({eventInfo:{componentName:e,paramObj:void 0}})}catch(t){}}),!1))}}(e),void 0===e._ExternalAttachEvents&&function(e){e._ExternalAttachEvents=function(t,n,o){var r=t._config,a=o;switch(n){case"loaded":var c=DEXT5UPLOAD._ExternalLoadedEventMap.get(t.ID);c.push(a),DEXT5UPLOAD._ExternalLoadedEventMap.set(t.ID,c);break;case"creationComplete":if("function"==typeof r.event[n])break;var i=DEXT5UPLOAD._ExternalCreationCompleteEventMap.get(t.ID);i.push(a),DEXT5UPLOAD._ExternalCreationCompleteEventMap.set(t.ID,i);var d=function(n,o){for(var r=DEXT5UPLOAD._ExternalLoadedEventMap.get(t.ID),a=0,c=r.length;a<c;a++)try{r[a]({eventInfo:{componentName:n,paramObj:o}})}catch(e){}var i=DEXT5UPLOAD._ExternalCreationCompleteEventMap.get(t.ID);for(a=0,c=i.length;a<c;a++)try{i[a]({eventInfo:{componentName:n,paramObj:o}})}catch(e){}e._ExternalSetDestroyEvent(t.ID)};r.event[n]=d;break;case"destroy":var l=DEXT5UPLOAD._ExternalDestroyEventMap.get(t.ID);l.push(a),DEXT5UPLOAD._ExternalDestroyEventMap.set(t.ID,l);break;case"afterAddItem":r.event[n]=function(e,t,n,o,r){if(a){var c={uploadID:e,strFileName:t,nFileSize:n,nAddItemIndex:o,objFile:r};try{return a({eventInfo:{componentName:e,paramObj:c}})}catch(e){}}};break;case"afterAddItemEndTime":r.event[n]=function(e){if(a){var t={uploadID:e};try{return a({eventInfo:{componentName:e,paramObj:t}})}catch(e){}}};break;case"afterDownload":r.event[n]=function(e,t,n){if(a){var o={uploadID:e,strDownloadPath:t,nViewOrSave:n};try{return a({eventInfo:{componentName:e,paramObj:o}})}catch(e){}}};break;case"beforeAddItem":r.event[n]=function(e,t,n,o,r,c){if(a){var i={uploadID:e,strFileName:t,nFileSize:n,nAddItemIndex:o,strFileLocalPath:r,objFile:c};try{return a({eventInfo:{componentName:e,paramObj:i}})}catch(e){}}};break;case"beforeDeleteItem":r.event[n]=function(e,t,n,o,r){if(a){var c={uploadID:e,strWebFile:t,strItemKey:n,strItemUrlOrPath:o,nDeleteItemIndex:r};try{return a({eventInfo:{componentName:e,paramObj:c}})}catch(e){}}};break;case"beforeFileDownload":r.event[n]=function(e,t,n,o,r,c,i){if(a){var d={uploadID:e,nWebFile:t,strItemKey:n,strItemOrgName:o,strItemUrlOrPath:r,largeFiles:c,isLastEvent:i};try{return a({eventInfo:{componentName:e,paramObj:d}})}catch(e){}}};break;case"beforeFileViewOrOpen":r.event[n]=function(e,t,n,o,r,c){if(a){var i={uploadID:e,strWebFile:t,strItemKey:n,strItemOrgName:o,strItemUrlOrPath:r,strLargeFile:c};try{return a({eventInfo:{componentName:e,paramObj:i}})}catch(e){}}};break;case"customAction":r.event[n]=function(e,t){if(a){var n={uploadID:e,strCmmand:t};try{return a({eventInfo:{componentName:e,paramObj:n}})}catch(e){}}};break;case"deleteItemEndTime":r.event[n]=function(e,t){if(a){var n={uploadID:e,nDeleteItemCount:t};try{return a({eventInfo:{componentName:e,paramObj:n}})}catch(e){}}};break;case"dropZoneAddItem":r.event[n]=function(e,t,n){if(a){var o={objFile:e,strFilePath:t,objDropZoneId:n};try{return a({eventInfo:{paramObj:o}})}catch(e){}}};break;case"excuteFileDownload":r.event[n]=function(e,t){if(a){var n={uploadID:e,openUrl:t};try{return a({eventInfo:{componentName:e,paramObj:n}})}catch(e){}}};break;case"finishDownloaded":r.event[n]=function(e,t){if(a){var n={uploadID:e,nDownloadItemCount:t};try{return a({eventInfo:{componentName:e,paramObj:n}})}catch(e){}}};break;case"initAddAllFile":r.event[n]=function(e,t){if(a){var n={uploadID:e,evtDataObj:t};try{return a({eventInfo:{componentName:e,paramObj:n}})}catch(e){}}};break;case"onAddFileProcessing":r.event[n]=function(e,t){if(a){var n={uploadID:e,time:t};try{return a({eventInfo:{componentName:e,paramObj:n}})}catch(e){}}};break;case"onError":r.event[n]=function(e,t,n,o){if(a){var r={uploadID:e,code:t,message:n,uploadedFileListObj:o};try{return a({eventInfo:{componentName:e,paramObj:r}})}catch(e){}}};break;case"onLanguageDefinition":r.event[n]=function(e,t){if(a){var n={uploadID:e,objLang:t};try{return a({eventInfo:{componentName:e,paramObj:n}})}catch(e){}}};break;case"selectItem":r.event[n]=function(e,t){if(a){var n={uploadID:e,itemInfo:t};try{return a({eventInfo:{componentName:e,paramObj:n}})}catch(e){}}};break;case"transferComplete":r.event[n]=function(e){if(a){var t={uploadID:e};try{return a({eventInfo:{componentName:e,paramObj:t}})}catch(e){}}};break;case"transferStart":r.event[n]=function(e){if(a){var t={uploadID:e};try{return a({eventInfo:{componentName:e,paramObj:t}})}catch(e){}}};break;case"uploadingCancel":r.event[n]=function(e,t){if(a){var n={uploadID:e,transferStart:t};try{return a({eventInfo:{componentName:e,paramObj:n}})}catch(e){}}};break;default:var p=function(e,t){if(a)try{return a({eventInfo:{componentName:e,paramObj:t}})}catch(e){}};r.event[n]=p}}}(e),t&&console.log({logType:"RAONWIZ Log - initComponent",operation:"makeComponent config",configRef:y.current,componentName:n.id});var r=e._ExternalMakeComponent(n,y.current,f.current);D.current.filter((function(e){return-1===i.indexOf(e)})).forEach((function(e){v({debug:O.current,component:r,evtName:e,handler:function(t){var n;return null===(n=E.current)||void 0===n?void 0:n.call(E,{type:"".concat(l).concat(e),payload:t})}})})),v({debug:O.current,component:r,evtName:"loaded",handler:function(){N({type:"loaded"})}}),v({debug:O.current,component:r,evtName:"creationComplete",handler:function(e){e.component,N({type:"ready"})}}),v({debug:O.current,component:r,evtName:"destroy",handler:function(){N({type:"destroyed"})}}),N({type:"unloaded",payload:r})})).catch((function(e){console.error(e),N({type:"error"})}))}return function(){_&&_.object&&_.object.ID&&null===document.getElementById(_.object.ID)&&DEXT5UPLOAD&&(DEXT5UPLOAD._ExternalLoadedEventMap.has(_.object.ID)&&DEXT5UPLOAD._ExternalLoadedEventMap.delete(_.object.ID),DEXT5UPLOAD._ExternalCreationCompleteEventMap.has(_.object.ID)&&DEXT5UPLOAD._ExternalCreationCompleteEventMap.delete(_.object.ID),DEXT5UPLOAD._ExternalDestroyEventMap.has(_.object.ID)&&DEXT5UPLOAD._ExternalDestroyEventMap.delete(_.object.ID),DEXT5UPLOAD.Destroy(_.object.ID,!0))}}),[_,n]),{component:_,status:null==_?void 0:_.status,error:"error"===x,loading:"loading"===x}}function j(e,t){switch(t.type){case"init":return r(r({},e),{hookStatus:"init"});case"loading":return r(r({},e),{hookStatus:"loading"});case"unloaded":return{component:t.payload,hookStatus:"unloaded"};case"loaded":return r(r({},e),{hookStatus:"loaded"});case"ready":return r(r({},e),{hookStatus:"ready"});case"destroyed":return{component:void 0,hookStatus:"destroyed"};case"error":return{component:void 0,hookStatus:"error"};default:return e}}var _,x,N,k,C={exports:{}};C.exports=function(){if(k)return N;k=1;var e=x?_:(x=1,_="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");function t(){}function n(){}return n.resetWarningCache=t,N=function(){function o(t,n,o,r,a,c){if(c!==e){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function r(){return o}o.isRequired=o;var a={array:o,bigint:o,bool:o,func:o,number:o,object:o,string:o,symbol:o,any:o,arrayOf:r,element:o,elementType:o,instanceOf:r,node:o,objectOf:r,oneOf:r,oneOfType:r,shape:r,exact:r,checkPropTypes:n,resetWarningCache:t};return a.PropTypes=a,a}}()();var w=o.useEffect,X=o.useRef,M=o.useState;function R(e){var t=e.debug,n=e.id,r=void 0===n?"dext5upload_"+Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5):n,a=e.config,c=void 0===a?{}:a,i=e.componentUrl,d=e.createMode,l=e.mode,p=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n}(e,["debug","id","config","componentUrl","createMode","mode"]),m=M(null),v=m[0],D=m[1],O=X(p);c&&"string"==typeof l&&(c.Mode=l);var E=U({debug:t,element:v,config:c,componentUrl:i,createMode:d,dispatchEvent:function(e){var t=e.type,n=e.payload,o=s(u(t)),r=O.current[o];if(r)return r(n)},subscribeTo:Object.keys(p).filter((function(e){return 0===e.indexOf("on")})).map(f)}),y=E.component,b=E.status;return w((function(){if(y&&"ready"===b&&"string"==typeof l){var e=DEXT5UPLOAD.IsLoadedUploadEx(y.object.ID);t&&console.log({logType:"RAONWIZ Log - useEffect",operation:"useEffect",component:y,componentName:y.object.ID,mode:l,status:b,IsLoadedComponentEx:e}),e&&DEXT5UPLOAD.SetUploadMode(l,y.object.ID)}}),[y,b,l]),o.createElement("div",{id:null!=r?r:void 0,ref:D})}var S=r({config:C.exports.object,debug:C.exports.bool,componentUrl:C.exports.string,createMode:C.exports.string,id:C.exports.string,mode:C.exports.oneOf(["edit","view"])},d.reduce((function(e,t){var n;return r(r({},e),((n={})[s(t)]=C.exports.func,n))}),{}));R.propTypes=S,e.ComponentEventAction=m,e.DEXT5Upload=R,e.prefixEventName=p,e.registerComponentEventHandler=v,e.stripPrefix=u,e.useDEXT5Upload=U,Object.defineProperty(e,"__esModule",{value:!0})}));