dext5upload-react
Version:
React component for DEXT5 Upload
936 lines (924 loc) • 40.4 kB
JavaScript
/**
* @license Copyright (c) 2003-2022, RAONWIZ DevTeam. All rights reserved.
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var raonwizIntegrationsCommon = require('raonwiz-integrations-common');
var PropTypes = require('prop-types');
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n["default"] = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespace(React);
var PropTypes__namespace = /*#__PURE__*/_interopNamespace(PropTypes);
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
}
function __spreadArray(to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
}
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};
var events = [
'loaded',
'creationComplete',
'destroy',
'beforeAddItem',
'afterAddItem',
'afterAddItemEndTime',
'beforeDeleteItem',
'deleteItemEndTime',
'transferStart',
'transferComplete',
'beforeFileDownload',
'beforeFileViewOrOpen',
'afterDownload',
'finishDownloaded',
'onError',
'uploadingCancel',
'selectItem',
'deselectItem',
'customAction',
'alert'
];
var namespaceEvents = ['beforeLoad', 'namespaceLoaded'];
var defaultEvents = __spreadArray(__spreadArray([], events, true), namespaceEvents, true);
var EVENT_PREFIX = '__RDU__';
function prefixEventName(evtName) {
return "".concat(EVENT_PREFIX).concat(evtName);
}
function stripPrefix(prefixedEventName) {
return prefixedEventName.substr(EVENT_PREFIX.length);
}
function eventNameToHandlerName(evtName) {
var cap = evtName.substr(0, 1).toUpperCase() + evtName.substr(1);
return "on".concat(cap);
}
function handlerNameToEventName(handlerName) {
return handlerName.substr(2, 1).toLowerCase() + handlerName.substr(3);
}
var ComponentEventAction = __spreadArray(__spreadArray([], events, true), namespaceEvents, true).reduce(function (acc, evtName) {
var _a;
return __assign(__assign({}, acc), (_a = {}, _a[evtName] = prefixEventName(evtName), _a));
}, {});
function uniqueName() {
return Math.random()
.toString(36)
.replace(/[^a-z]+/g, '')
.substr(0, 5);
}
function registerComponentEventHandler(_a) {
var debug = _a.debug, component = _a.component, evtName = _a.evtName, handler = _a.handler;
var handlerId = debug && uniqueName();
var _handler = handler;
if (debug) {
_handler = function (args) {
console.log({
logType: "RAONWIZ Log - invoke",
operation: 'invoke',
component: component,
componentName: component.object.ID,
evtName: evtName,
handlerId: handlerId,
eventInfo: args.eventInfo
});
return handler(args);
};
}
if (debug) {
console.log({
logType: "RAONWIZ Log - register",
operation: 'register',
component: component,
componentName: component.object.ID,
evtName: evtName,
handlerId: handlerId
});
}
DEXT5UPLOAD._ExternalAttachEvents(component.object, evtName, _handler);
return function () {
if (debug) {
console.log({
logType: "RAONWIZ Log - unregister",
operation: 'unregister',
component: component,
componentName: component.object.ID,
evtName: evtName,
handlerId: handlerId
});
}
};
}
var useEffect$1 = React__namespace.useEffect, useReducer = React__namespace.useReducer, useRef$1 = React__namespace.useRef;
var defComponentType = "DEXT5UPLOAD";
var defComponentUrl = "/dext5upload/js/dext5upload.js";
var defConfig = {};
function useDEXT5Upload(_a) {
var debug = _a.debug, element = _a.element, config = _a.config, componentUrl = _a.componentUrl, createMode = _a.createMode, dispatchEvent = _a.dispatchEvent, _b = _a.subscribeTo, subscribeTo = _b === void 0 ? defaultEvents : _b;
var componentUrlRef = useRef$1(componentUrl || defComponentUrl);
var createModeRef = useRef$1(createMode);
var subscribeToRef = useRef$1(subscribeTo !== null && subscribeTo !== void 0 ? subscribeTo : defaultEvents);
var debugRef = useRef$1(debug);
var dispatchEventRef = useRef$1(dispatchEvent);
var configRef = useRef$1(config || defConfig);
var _c = useReducer(reducer, {
component: undefined,
hookStatus: "init",
}), _d = _c[0], component = _d.component, hookStatus = _d.hookStatus, dispatch = _c[1];
useEffect$1(function () {
if (element && !component) {
dispatch({ type: "loading" });
var onNamespaceLoaded = function (namespace) {
var _a;
if (subscribeToRef.current.indexOf("namespaceLoaded") !== -1) {
(_a = dispatchEventRef.current) === null || _a === void 0 ? void 0 : _a.call(dispatchEventRef, {
type: ComponentEventAction.namespaceLoaded,
payload: namespace,
});
}
};
var initComponent = function (namespace) {
var _a;
if (subscribeToRef.current.indexOf("beforeLoad") !== -1) {
(_a = dispatchEventRef.current) === null || _a === void 0 ? void 0 : _a.call(dispatchEventRef, {
type: ComponentEventAction.beforeLoad,
payload: namespace,
});
}
if (typeof namespace["_ExternalMakeComponent"] === "undefined") {
_ExternalMakeComponent(namespace);
}
if (typeof namespace["_ExternalSetDestroyEvent"] === "undefined") {
_ExternalSetDestroyEvent(namespace);
}
if (typeof namespace["_ExternalAttachEvents"] === "undefined") {
_ExternalAttachEvents(namespace);
}
if (debug) {
console.log({
logType: "RAONWIZ Log - initComponent",
operation: "makeComponent config",
configRef: configRef.current,
componentName: element.id,
});
}
var component = namespace["_ExternalMakeComponent"](element, configRef.current, createModeRef.current);
var subscribedComponentEvents = subscribeToRef.current.filter(function (evtName) { return namespaceEvents.indexOf(evtName) === -1; });
subscribedComponentEvents.forEach(function (evtName) {
registerComponentEventHandler({
debug: debugRef.current,
component: component,
evtName: evtName,
handler: function (payload) {
var _a;
return (_a = dispatchEventRef.current) === null || _a === void 0 ? void 0 : _a.call(dispatchEventRef, {
type: "".concat(EVENT_PREFIX).concat(evtName),
payload: payload,
});
},
});
});
registerComponentEventHandler({
debug: debugRef.current,
component: component,
evtName: "loaded",
handler: function () {
dispatch({ type: "loaded" });
},
});
registerComponentEventHandler({
debug: debugRef.current,
component: component,
evtName: "creationComplete",
handler: function (_a) {
_a.component;
dispatch({ type: "ready" });
},
});
registerComponentEventHandler({
debug: debugRef.current,
component: component,
evtName: "destroy",
handler: function () {
dispatch({ type: "destroyed" });
},
});
dispatch({
type: "unloaded",
payload: component,
});
};
raonwizIntegrationsCommon.getRaonwizComponentNamespace(defComponentType, componentUrlRef.current, onNamespaceLoaded)
.then(initComponent)
.catch(function (error) {
if (process.env.NODE_ENV !== "test") {
console.error(error);
}
dispatch({ type: "error" });
});
}
return function () {
if (component && component.object && component.object.ID && document.getElementById(component.object.ID) === null && DEXT5UPLOAD) {
if (DEXT5UPLOAD._ExternalLoadedEventMap.has(component.object.ID)) {
DEXT5UPLOAD._ExternalLoadedEventMap.delete(component.object.ID);
}
if (DEXT5UPLOAD._ExternalCreationCompleteEventMap.has(component.object.ID)) {
DEXT5UPLOAD._ExternalCreationCompleteEventMap.delete(component.object.ID);
}
if (DEXT5UPLOAD._ExternalDestroyEventMap.has(component.object.ID)) {
DEXT5UPLOAD._ExternalDestroyEventMap.delete(component.object.ID);
}
DEXT5UPLOAD.Destroy(component.object.ID, true);
}
};
}, [component, element]);
return {
component: component,
status: component === null || component === void 0 ? void 0 : component.status,
error: hookStatus === "error",
loading: hookStatus === "loading",
};
}
function reducer(state, action) {
switch (action.type) {
case "init":
return __assign(__assign({}, state), { hookStatus: "init" });
case "loading":
return __assign(__assign({}, state), { hookStatus: "loading" });
case "unloaded":
return {
component: action.payload,
hookStatus: "unloaded",
};
case "loaded":
return __assign(__assign({}, state), { hookStatus: "loaded" });
case "ready":
return __assign(__assign({}, state), { hookStatus: "ready" });
case "destroyed":
return {
component: undefined,
hookStatus: "destroyed",
};
case "error":
return {
component: undefined,
hookStatus: "error",
};
default:
return state;
}
}
function _ExternalMakeComponent(namespace) {
namespace["_ExternalMakeComponent"] = function (element, options, createMode) {
if (typeof DEXT5UPLOAD._ExternalLoadedEventMap === "undefined") {
DEXT5UPLOAD._ExternalLoadedEventMap = new Map();
}
if (typeof DEXT5UPLOAD._ExternalCreationCompleteEventMap === "undefined") {
DEXT5UPLOAD._ExternalCreationCompleteEventMap = new Map();
}
if (typeof DEXT5UPLOAD._ExternalDestroyEventMap === "undefined") {
DEXT5UPLOAD._ExternalDestroyEventMap = new Map();
}
DEXT5UPLOAD._ExternalLoadedEventMap.set(element.id, []);
DEXT5UPLOAD._ExternalCreationCompleteEventMap.set(element.id, []);
DEXT5UPLOAD._ExternalDestroyEventMap.set(element.id, []);
namespace._ExternalDestroy = true;
var _compConfig = {
UploadHolder: element.id,
Id: element.id
};
_compConfig = namespace.util.objectExtend(true, options, _compConfig);
if (createMode && createMode.toLowerCase() == "object") {
var _componentObject = new Dext5Upload(_compConfig);
return { object: _componentObject, status: 'ready' };
}
else {
for (var _i = 0, _a = Object.entries(_compConfig); _i < _a.length; _i++) {
var _b = _a[_i], key = _b[0], value = _b[1];
DEXT5UPLOAD.config[key] = value;
}
var _componentObject = new Dext5Upload(element.id);
return { object: _componentObject, status: 'ready' };
}
};
}
function _ExternalAttachEvents(namespace) {
namespace["_ExternalAttachEvents"] = function (componentObj, eventName, callbackFn) {
var _componentConfig = componentObj._config;
var _callbackFn = callbackFn;
switch (eventName) {
case "loaded":
var _tempExternalLoadedEventListHT = DEXT5UPLOAD._ExternalLoadedEventMap.get(componentObj.ID);
_tempExternalLoadedEventListHT.push(_callbackFn);
DEXT5UPLOAD._ExternalLoadedEventMap.set(componentObj.ID, _tempExternalLoadedEventListHT);
break;
case "creationComplete":
if (typeof _componentConfig.event[eventName] == "function") {
break;
}
var _tempExternalCreationCompleteEventListHT = DEXT5UPLOAD._ExternalCreationCompleteEventMap.get(componentObj.ID);
_tempExternalCreationCompleteEventListHT.push(_callbackFn);
DEXT5UPLOAD._ExternalCreationCompleteEventMap.set(componentObj.ID, _tempExternalCreationCompleteEventListHT);
var _dummyFn1 = function (componentName, paramObj) {
var _tempLoaded = DEXT5UPLOAD._ExternalLoadedEventMap.get(componentObj.ID);
for (var _idx = 0, _len = _tempLoaded.length; _idx < _len; _idx++) {
try {
_tempLoaded[_idx]({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
var _tempCreationComplete = DEXT5UPLOAD._ExternalCreationCompleteEventMap.get(componentObj.ID);
for (var _idx = 0, _len = _tempCreationComplete.length; _idx < _len; _idx++) {
try {
_tempCreationComplete[_idx]({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
namespace._ExternalSetDestroyEvent(componentObj.ID);
};
_componentConfig.event[eventName] = _dummyFn1;
break;
case "destroy":
var _tempExternalDestroyEventListHT = DEXT5UPLOAD._ExternalDestroyEventMap.get(componentObj.ID);
_tempExternalDestroyEventListHT.push(_callbackFn);
DEXT5UPLOAD._ExternalDestroyEventMap.set(componentObj.ID, _tempExternalDestroyEventListHT);
break;
case "afterAddItem":
_componentConfig.event[eventName] = function (componentName, strFileName, nFileSize, nAddItemIndex, objFile) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
strFileName: strFileName,
nFileSize: nFileSize,
nAddItemIndex: nAddItemIndex,
objFile: objFile
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "afterAddItemEndTime":
_componentConfig.event[eventName] = function (componentName) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "afterDownload":
_componentConfig.event[eventName] = function (componentName, strDownloadPath, nViewOrSave) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
strDownloadPath: strDownloadPath,
nViewOrSave: nViewOrSave
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "beforeAddItem":
_componentConfig.event[eventName] = function (componentName, strFileName, nFileSize, nAddItemIndex, strFileLocalPath, objFile) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
strFileName: strFileName,
nFileSize: nFileSize,
nAddItemIndex: nAddItemIndex,
strFileLocalPath: strFileLocalPath,
objFile: objFile
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "beforeDeleteItem":
_componentConfig.event[eventName] = function (componentName, strWebFile, strItemKey, strItemUrlOrPath, nDeleteItemIndex) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
strWebFile: strWebFile,
strItemKey: strItemKey,
strItemUrlOrPath: strItemUrlOrPath,
nDeleteItemIndex: nDeleteItemIndex
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "beforeFileDownload":
_componentConfig.event[eventName] = function (componentName, nWebFile, strItemKey, strItemOrgName, strItemUrlOrPath, largeFiles, isLastEvent) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
nWebFile: nWebFile,
strItemKey: strItemKey,
strItemOrgName: strItemOrgName,
strItemUrlOrPath: strItemUrlOrPath,
largeFiles: largeFiles,
isLastEvent: isLastEvent,
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "beforeFileViewOrOpen":
_componentConfig.event[eventName] = function (componentName, strWebFile, strItemKey, strItemOrgName, strItemUrlOrPath, strLargeFile) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
strWebFile: strWebFile,
strItemKey: strItemKey,
strItemOrgName: strItemOrgName,
strItemUrlOrPath: strItemUrlOrPath,
strLargeFile: strLargeFile
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "customAction":
_componentConfig.event[eventName] = function (componentName, strCmmand) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
strCmmand: strCmmand
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "deleteItemEndTime":
_componentConfig.event[eventName] = function (componentName, nDeleteItemCount) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
nDeleteItemCount: nDeleteItemCount
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "dropZoneAddItem":
_componentConfig.event[eventName] = function (objFile, strFilePath, objDropZoneId) {
if (_callbackFn) {
var paramObj = {
objFile: objFile,
strFilePath: strFilePath,
objDropZoneId: objDropZoneId
};
try {
return _callbackFn({
eventInfo: { paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "excuteFileDownload":
_componentConfig.event[eventName] = function (componentName, openUrl) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
openUrl: openUrl
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "finishDownloaded":
_componentConfig.event[eventName] = function (componentName, nDownloadItemCount) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
nDownloadItemCount: nDownloadItemCount
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "initAddAllFile":
_componentConfig.event[eventName] = function (componentName, evtDataObj) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
evtDataObj: evtDataObj
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "onAddFileProcessing":
_componentConfig.event[eventName] = function (componentName, time) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
time: time
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "onError":
_componentConfig.event[eventName] = function (componentName, code, message, uploadedFileListObj) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
code: code,
message: message,
uploadedFileListObj: uploadedFileListObj
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "onLanguageDefinition":
_componentConfig.event[eventName] = function (componentName, objLang) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
objLang: objLang
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "selectItem":
_componentConfig.event[eventName] = function (componentName, itemInfo) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
itemInfo: itemInfo
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "transferComplete":
_componentConfig.event[eventName] = function (componentName) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "transferStart":
_componentConfig.event[eventName] = function (componentName) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
case "uploadingCancel":
_componentConfig.event[eventName] = function (componentName, transferStart) {
if (_callbackFn) {
var paramObj = {
uploadID: componentName,
transferStart: transferStart
};
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
break;
default:
var _dummyFn2 = function (componentName, paramObj) {
if (_callbackFn) {
try {
return _callbackFn({
eventInfo: { componentName: componentName, paramObj: paramObj },
});
}
catch (e) { }
}
};
_componentConfig.event[eventName] = _dummyFn2;
}
};
}
function _ExternalSetDestroyEvent(namespace) {
namespace["_ExternalSetDestroyEvent"] = function (componentName) {
var _domNodeRemovedTargetNode;
var _targetElem;
if (typeof MutationObserver === "function") {
_targetElem = document.getElementById("dext5uploader_holder_" + componentName);
if (_targetElem) {
_domNodeRemovedTargetNode = _targetElem;
}
else {
_domNodeRemovedTargetNode = document.getElementById("dext5uploader_frame_" + componentName);
}
if (_domNodeRemovedTargetNode) {
new MutationObserver(function () {
var _tempDestroy = DEXT5UPLOAD._ExternalDestroyEventMap.get(componentName);
var uploader = DEXT5UPLOAD.GetUploadByName(componentName);
if (typeof _tempDestroy !== "undefined" && _tempDestroy.length > 0) {
for (var _idx = 0, _len = _tempDestroy.length; _idx < _len; _idx++) {
try {
_tempDestroy[_idx]({
eventInfo: {
componentName: componentName,
paramObj: undefined,
},
});
}
catch (e) { }
}
}
else if (
!!uploader &&
typeof uploader._config !== "undefined" &&
typeof uploader._config.event.destroy === "function") {
try {
uploader._config.event.destroy({
eventInfo: {
componentName: componentName,
paramObj: undefined,
},
});
}
catch (e) { }
}
else if (typeof UPLOADTOP.UPLOADWIN.DEXT5UPLOAD_Destroy === "function") {
try {
UPLOADTOP.UPLOADWIN.DEXT5UPLOAD_Destroy({
eventInfo: {
componentName: componentName,
paramObj: undefined,
},
});
}
catch (e) { }
}
}).observe(_domNodeRemovedTargetNode, { childList: true });
}
}
else {
_targetElem = document.getElementById("dext5uploader_frame_" + componentName);
if (_targetElem) {
_domNodeRemovedTargetNode = _targetElem;
}
if (_domNodeRemovedTargetNode) {
_domNodeRemovedTargetNode.addEventListener("DOMNodeRemoved", function (e) {
var _tempDestroy = DEXT5UPLOAD._ExternalDestroyEventMap.get(componentName);
if (typeof _tempDestroy !== "undefined" &&
_tempDestroy.length > 0) {
for (var _idx = 0, _len = _tempDestroy.length; _idx < _len; _idx++) {
try {
_tempDestroy[_idx]({
eventInfo: {
componentName: componentName,
paramObj: undefined,
},
});
}
catch (e) { }
}
}
else if (
!!UPLOADTOP.G_CURRUPLOADER &&
typeof UPLOADTOP.G_CURRUPLOADER._config !== "undefined" &&
typeof UPLOADTOP.G_CURRUPLOADER._config.event.destroy ===
"function") {
try {
UPLOADTOP.G_CURRUPLOADER._config.event.destroy({
eventInfo: {
componentName: componentName,
paramObj: undefined,
},
});
}
catch (e) { }
}
else if (typeof UPLOADTOP.UPLOADWIN.DEXT5UPLOAD_Destroy === "function") {
try {
UPLOADTOP.UPLOADWIN.DEXT5UPLOAD_Destroy({
eventInfo: {
componentName: componentName,
paramObj: undefined,
},
});
}
catch (e) { }
}
}, false);
}
}
};
}
var useEffect = React__namespace.useEffect, useRef = React__namespace.useRef, useState = React__namespace.useState;
function getComponentUniqueName() {
return 'dext5upload_' + Math.random()
.toString(36)
.replace(/[^a-z]+/g, '')
.substr(0, 5);
}
function DEXT5Upload(_a) {
var debug = _a.debug, _b = _a.id, id = _b === void 0 ? getComponentUniqueName() : _b, _c = _a.config, config = _c === void 0 ? {} : _c, componentUrl = _a.componentUrl, createMode = _a.createMode, mode = _a.mode,
handlers = __rest(_a, ["debug", "id", "config", "componentUrl", "createMode", "mode"]);
var _d = useState(null), element = _d[0], setElement = _d[1];
var refs = useRef(handlers);
var dispatchEvent = function (_a) {
var type = _a.type, payload = _a.payload;
var handlerName = eventNameToHandlerName(stripPrefix(type));
var handler = refs.current[handlerName];
if (handler) {
return handler(payload);
}
};
if (config && typeof mode === 'string') {
config.Mode = mode;
}
var _e = useDEXT5Upload({
debug: debug,
element: element,
config: config,
componentUrl: componentUrl,
createMode: createMode,
dispatchEvent: dispatchEvent,
subscribeTo: Object.keys(handlers)
.filter(function (key) { return key.indexOf('on') === 0; })
.map(handlerNameToEventName)
}), component = _e.component, status = _e.status;
useEffect(function () {
if (component && status === 'ready' && typeof mode === 'string') {
var _isLoadedComponent = DEXT5UPLOAD.IsLoadedUploadEx(component.object.ID);
if (debug) {
console.log({
logType: 'RAONWIZ Log - useEffect',
operation: 'useEffect',
component: component,
componentName: component.object.ID,
mode: mode,
status: status,
IsLoadedComponentEx: _isLoadedComponent
});
}
(_isLoadedComponent) && (DEXT5UPLOAD.SetUploadMode(mode, component.object.ID));
}
}, [component, status, mode]);
return (React__namespace.createElement("div", { id: id !== null && id !== void 0 ? id : undefined, ref: setElement }));
}
var propTypes = __assign({
config: PropTypes__namespace.object,
debug: PropTypes__namespace.bool,
componentUrl: PropTypes__namespace.string,
createMode: PropTypes__namespace.string,
id: PropTypes__namespace.string,
mode: PropTypes__namespace.oneOf(['edit', 'view']) }, defaultEvents.reduce(function (acc, key) {
var _a;
return __assign(__assign({}, acc), (_a = {}, _a[eventNameToHandlerName(key)] = PropTypes__namespace.func, _a));
}, {}));
DEXT5Upload.propTypes = propTypes;
exports.ComponentEventAction = ComponentEventAction;
exports.DEXT5Upload = DEXT5Upload;
exports.prefixEventName = prefixEventName;
exports.registerComponentEventHandler = registerComponentEventHandler;
exports.stripPrefix = stripPrefix;
exports.useDEXT5Upload = useDEXT5Upload;