dext5editor-react
Version:
React component for DEXT5 Editor
1,078 lines (1,065 loc) • 85.9 kB
JavaScript
/**
* @license Copyright (c) 2003-2022, RAONWIZ DevTeam. All rights reserved.
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.DEXT5EditorReact = {}, global.React));
})(this, (function (exports, React) { 'use strict';
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 __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'
];
var namespaceEvents = ['beforeLoad', 'namespaceLoaded'];
var defaultEvents = __spreadArray(__spreadArray([], events, true), namespaceEvents, true);
var EVENT_PREFIX = '__RDE__';
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
});
}
DEXT5._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 index_cjs = {};
Object.defineProperty(index_cjs, '__esModule', { value: true });
function loadScript (src, opts, cb) {
const head = document.head || document.getElementsByTagName('head')[0];
const script = document.createElement('script');
if (typeof opts === 'function') {
cb = opts;
opts = {};
}
opts = opts || {};
cb = cb || function () {};
script.type = opts.type || 'text/javascript';
script.charset = opts.charset || 'utf8';
script.async = 'async' in opts ? !!opts.async : true;
script.src = src;
if (opts.attrs) {
setAttributes(script, opts.attrs);
}
if (opts.text) {
script.text = String(opts.text);
}
const onend = 'onload' in script ? stdOnEnd : ieOnEnd;
onend(script, cb);
if (!script.onload) {
stdOnEnd(script, cb);
}
head.appendChild(script);
}
function setAttributes(script, attrs) {
for (const attr in attrs) {
script.setAttribute(attr, attrs[attr]);
}
}
function stdOnEnd(script, cb) {
script.onload = function () {
this.onerror = this.onload = null;
cb(null, script);
};
script.onerror = function () {
this.onerror = this.onload = null;
cb(new Error('Failed to load ' + this.src), script);
};
}
function ieOnEnd(script, cb) {
script.onreadystatechange = function () {
if (this.readyState != 'complete' && this.readyState != 'loaded') {
return;
}
this.onreadystatechange = null;
cb(null, script);
};
}
function getRaonwizComponentNamespace(componentType, componentUrl, onNamespaceLoaded) {
let promise;
if (typeof componentType !== 'string' || componentType.length < 1) {
return Promise.reject(new TypeError('Component TYPE must be a non-empty string.'));
}
if (componentType in window) {
let _componentObj = null;
switch (componentType) {
case "RAONKUPLOAD":
_componentObj = RAONKUPLOAD;
break;
case "RAONKEDITOR":
_componentObj = RAONKEDITOR;
break;
case "DEXT5UPLOAD":
_componentObj = DEXT5UPLOAD;
break;
case "DEXT5":
_componentObj = DEXT5;
}
return Promise.resolve(_componentObj);
}
if (typeof componentUrl !== 'string' || componentUrl.length < 1) {
return Promise.reject(new TypeError('Component URL must be a non-empty string.'));
}
if (!promise) {
promise = getRaonwizComponentNamespace.scriptLoader(componentType, componentUrl).then(res => {
if (onNamespaceLoaded) {
onNamespaceLoaded(res);
}
return res;
});
}
return promise;
}
getRaonwizComponentNamespace.scriptLoader = (componentType, componentUrl) => new Promise((scriptResolve, scriptReject) => {
loadScript(componentUrl, err => {
let _componentObj = null;
switch (componentType) {
case "RAONKUPLOAD":
_componentObj = window.RAONKUPLOAD;
break;
case "RAONKEDITOR":
_componentObj = window.RAONKEDITOR;
break;
case "DEXT5UPLOAD":
_componentObj = window.DEXT5UPLOAD;
break;
case "DEXT5":
_componentObj = window.DEXT5;
break;
}
if (err) {
return scriptReject(err);
} else if (!_componentObj) {
return scriptReject(new Error('Script loaded from componentUrl doesn\'t provide Component namespace.'));
}
scriptResolve(_componentObj);
});
});
function debounce(fn, delay) {
let context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
let cancel;
return function () {
clearTimeout(cancel);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
cancel = setTimeout(fn.bind(context, ...args), delay);
};
}
index_cjs.debounce = debounce;
var getRaonwizComponentNamespace_1 = index_cjs.getRaonwizComponentNamespace = getRaonwizComponentNamespace;
var useEffect$1 = React__namespace.useEffect, useReducer = React__namespace.useReducer, useRef$1 = React__namespace.useRef;
var defComponentType = 'DEXT5';
var defComponentUrl = '/dext5editor/js/dext5editor.js';
var defConfig = {};
function useDEXT5Editor(_a) {
var debug = _a.debug, element = _a.element, config = _a.config, componentUrl = _a.componentUrl, createMode = _a.createMode, initContent = _a.initContent, 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 initContentRef = useRef$1(initContent);
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) {
dispatch({ type: 'ready' });
if (initContentRef.current) {
DEXT5.SetHtmlContentsEw(initContentRef.current, component.object.ID);
}
}
});
registerComponentEventHandler({
debug: debugRef.current,
component: component,
evtName: 'destroy',
handler: function () {
dispatch({ type: 'destroyed' });
}
});
dispatch({
type: 'unloaded',
payload: component
});
};
getRaonwizComponentNamespace_1(defComponentType, componentUrlRef.current, onNamespaceLoaded)
.then(initComponent)
.catch(function (error) {
{
console.error(error);
}
dispatch({ type: 'error' });
});
}
return function () {
if (component && component.object && component.object.ID && document.getElementById(component.object.ID) === null && DEXT5) {
if (DEXT5._ExternalLoadedEventMap.has(component.object.ID)) {
DEXT5._ExternalLoadedEventMap.delete(component.object.ID);
}
if (DEXT5._ExternalCreationCompleteEventMap.has(component.object.ID)) {
DEXT5._ExternalCreationCompleteEventMap.delete(component.object.ID);
}
if (DEXT5._ExternalDestroyEventMap.has(component.object.ID)) {
DEXT5._ExternalDestroyEventMap.delete(component.object.ID);
}
DEXT5.Destroy(component.object.ID);
}
};
}, [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 DEXT5._ExternalCreationCompleteEventMap === 'undefined') {
DEXT5._ExternalLoadedEventMap = new Map();
DEXT5._ExternalCreationCompleteEventMap = new Map();
DEXT5._ExternalDestroyEventMap = new Map();
}
DEXT5._ExternalLoadedEventMap.set(element.id, []);
DEXT5._ExternalCreationCompleteEventMap.set(element.id, []);
DEXT5._ExternalDestroyEventMap.set(element.id, []);
namespace._ExternalDestroy = true;
var _compConfig = {
EditorHolder: element.id,
Id: element.id
};
_compConfig = namespace.util.objectExtend(true, options, _compConfig);
if (createMode && createMode.toLowerCase() == "object") {
var _componentObject = new Dext5editor(_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];
DEXT5.config[key] = value;
}
var _componentObject = new Dext5editor(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 = DEXT5._ExternalLoadedEventMap.get(componentObj.ID);
_tempExternalLoadedEventListHT.push(_callbackFn);
DEXT5._ExternalLoadedEventMap.set(componentObj.ID, _tempExternalLoadedEventListHT);
break;
case "creationComplete":
if (typeof (_componentConfig.event['loadedEvent']) == 'function') {
break;
}
var _tempExternalCreationCompleteEventListHT = DEXT5._ExternalCreationCompleteEventMap.get(componentObj.ID);
_tempExternalCreationCompleteEventListHT.push(_callbackFn);
DEXT5._ExternalCreationCompleteEventMap.set(componentObj.ID, _tempExternalCreationCompleteEventListHT);
var _dummyFn1 = function (paramObj) {
var _tempLoaded = DEXT5._ExternalLoadedEventMap.get(componentObj.ID);
for (var _idx = 0, _len = _tempLoaded.length; _idx < _len; _idx++) {
try {
_tempLoaded[_idx]({ eventInfo: { componentName: paramObj.ID, paramObj: paramObj } });
}
catch (e) { }
}
var _tempCreationComplete = DEXT5._ExternalCreationCompleteEventMap.get(componentObj.ID);
for (var _idx = 0, _len = _tempCreationComplete.length; _idx < _len; _idx++) {
try {
_tempCreationComplete[_idx]({ eventInfo: { componentName: paramObj.ID, paramObj: paramObj } });
}
catch (e) { }
}
namespace._ExternalSetDestroyEvent(componentObj.ID);
};
_componentConfig.event['loadedEvent'] = _dummyFn1;
break;
case "destroy":
var _tempExternalDestroyEventListHT = DEXT5._ExternalDestroyEventMap.get(componentObj.ID);
_tempExternalDestroyEventListHT.push(_callbackFn);
DEXT5._ExternalDestroyEventMap.set(componentObj.ID, _tempExternalDestroyEventListHT);
break;
case "afterChangeMode":
_componentConfig.event[eventName] = function (newMode, currentMode, componentName) {
if (_callbackFn) {
var paramObj = {
newMode: newMode,
currentMode: currentMode,
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "afterPopupShow":
_componentConfig.event[eventName] = function (componentName, targetObj, popupType) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
targetObj: targetObj,
popupType: popupType
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "applyFontStyle":
_componentConfig.event[eventName] = function (componentName, fontStyleObject) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
fontStyleObject: fontStyleObject
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "beforeFullScreen":
_componentConfig.event[eventName] = function (componentName, editorFrameStatus) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
editorFrameStatus: editorFrameStatus
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "beforeInsertHyperlink":
_componentConfig.event[eventName] = function (componentName, url) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
url: url
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "beforeInsertUrl":
_componentConfig.event[eventName] = function (componentName, url) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
url: url
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "beforePaste":
_componentConfig.event[eventName] = function (pasteSource) {
if (_callbackFn) {
var paramObj = {
pasteSource: pasteSource
};
try {
return _callbackFn({ eventInfo: { paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "command":
_componentConfig.event[eventName] = function (componentName, paramObject) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
paramObject: paramObject
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "contentSizeChange":
_componentConfig.event[eventName] = function (componentName, sumOfSize) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
sumOfSize: sumOfSize
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "customAction":
_componentConfig.event[eventName] = function (command, componentName) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
command: command
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "dialogLoaded":
_componentConfig.event[eventName] = function (currentPageName, dialogDocument) {
if (_callbackFn) {
var paramObj = {
currentPageName: currentPageName,
dialogDocument: dialogDocument
};
try {
return _callbackFn({ eventInfo: { paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "drag":
_componentConfig.event[eventName] = function (DragEvent, eventObject) {
if (_callbackFn) {
var paramObj = {
DragEvent: DragEvent,
eventObject: eventObject
};
try {
return _callbackFn({ eventInfo: { paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "editorLoaded":
_componentConfig.event[eventName] = function (editor) {
if (_callbackFn) {
var paramObj = {
editor: editor
};
try {
return _callbackFn({ eventInfo: { componentName: editor.ID, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "focus":
_componentConfig.event[eventName] = function (blur, eventObject) {
if (_callbackFn) {
var paramObj = {
blur: blur,
eventObject: eventObject
};
try {
return _callbackFn({ eventInfo: { paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "focusInEditorWhole":
_componentConfig.event[eventName] = function (eventType, componentName) {
if (_callbackFn) {
var paramObj = {
eventType: eventType,
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "frameLoaded":
_componentConfig.event[eventName] = function (componentName, config, frame) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
config: config,
frame: frame
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "fullScreen":
_componentConfig.event[eventName] = function (componentName, editorFrameStatus) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
editorFrameStatus: editorFrameStatus
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "input":
_componentConfig.event[eventName] = function (inputStr, eventObject, currElem, componentName) {
if (_callbackFn) {
var paramObj = {
inputStr: inputStr,
eventObject: eventObject,
currElem: currElem,
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "insertEmoticon":
_componentConfig.event[eventName] = function (componentName, eventObject) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
eventObject: eventObject
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "key":
_componentConfig.event[eventName] = function (keyEvent, eventObject, currElem, componentName) {
if (_callbackFn) {
var paramObj = {
keyEvent: keyEvent,
eventObject: eventObject,
currElem: currElem,
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "languageDefinition":
_componentConfig.event[eventName] = function (editorLang, componentName) {
if (_callbackFn) {
var paramObj = {
editorLang: editorLang,
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "loadedEvent":
_componentConfig.event[eventName] = function (editor) {
if (_callbackFn) {
var paramObj = {
editor: editor
};
try {
return _callbackFn({ eventInfo: { componentName: editor.ID, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "managerImg":
_componentConfig.event[eventName] = function (element, componentName) {
if (_callbackFn) {
var paramObj = {
element: element,
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "managerInput":
_componentConfig.event[eventName] = function (element, componentName) {
if (_callbackFn) {
var paramObj = {
element: element,
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "managerSelect":
_componentConfig.event[eventName] = function (element, componentName) {
if (_callbackFn) {
var paramObj = {
element: element,
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "managerTextArea":
_componentConfig.event[eventName] = function (element, componentName) {
if (_callbackFn) {
var paramObj = {
element: element,
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "mouse":
_componentConfig.event[eventName] = function (mouseEvent, eventObject, currElem) {
if (_callbackFn) {
var paramObj = {
mouseEvent: mouseEvent,
eventObject: eventObject,
currElem: currElem
};
try {
return _callbackFn({ eventInfo: { paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "onError":
_componentConfig.event[eventName] = function (componentName, codemessage, response) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
codemessage: codemessage,
response: response
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "pasteImage":
_componentConfig.event[eventName] = function (HTMLCollection) {
if (_callbackFn) {
var paramObj = {
HTMLCollection: HTMLCollection
};
try {
return _callbackFn({ eventInfo: { paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "resized":
_componentConfig.event[eventName] = function (editor) {
if (_callbackFn) {
var paramObj = {
editor: editor
};
try {
return _callbackFn({ eventInfo: { componentName: editor.ID, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "setComplete":
_componentConfig.event[eventName] = function (componentName) {
if (_callbackFn) {
var paramObj = {
editorId: componentName
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "setForbiddenWordComplete":
_componentConfig.event[eventName] = function (componentName, paramObject) {
if (_callbackFn) {
var paramObj = {
editorId: componentName,
paramObject: paramObject
};
try {
return _callbackFn({ eventInfo: { componentName: componentName, paramObj: paramObj } });
}
catch (e) { }
}
};
break;
case "setInsertComplete":
_componentConfig.event[eventName] = function (componentName) {
if (_callbackFn) {
var paramObj = {
editorId: componentName
};
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("dext_frame_holder" + componentName);
if (_targetElem) {
_domNodeRemovedTargetNode = _targetElem;
}
else {
_domNodeRemovedTargetNode = document.getElementById("dext_frame_" + componentName);
}
if (_domNodeRemovedTargetNode) {
new MutationObserver(function () {
var _tempDestroy = DEXT5._ExternalDestroyEventMap.get(componentName);
var editor = DEXT5.getEditorByName(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 (!!editor && typeof editor._config !== 'undefined' && typeof editor._config.event.destroy === 'function') {
try {
editor._config.event.destroy({ eventInfo: { componentName: componentName, paramObj: undefined } });
}
catch (e) { }
}
else if (typeof DEXTTOP.DEXTWIN.DEXT5_Destroy === 'function') {
try {
DEXTTOP.DEXTWIN.DEXT5_Destroy({ eventInfo: { componentName: componentName, paramObj: undefined } });
}
catch (e) { }
}
}).observe(_domNodeRemovedTargetNode, { childList: true });
}
}
else {
_targetElem = document.getElementById("dext_frame_" + componentName);
if (_targetElem) {
_domNodeRemovedTargetNode = _targetElem;
}
if (_domNodeRemovedTargetNode) {
_domNodeRemovedTargetNode.addEventListener('DOMNodeRemoved', function (e) {
var _tempDestroy = DEXT5._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 (!!DEXTTOP.G_CURREDITOR && typeof DEXTTOP.G_CURREDITOR._config !== 'undefined' && typeof DEXTTOP.G_CURREDITOR._config.event.destroy === 'function') {
try {
DEXTTOP.G_CURREDITOR._config.event.destroy({ eventInfo: { componentName: componentName, paramObj: undefined } });
}
catch (e) { }
}
else if (typeof DEXTTOP.DEXTWIN.DEXT5_Destroy === 'function') {
try {
DEXTTOP.DEXTWIN.DEXT5_Destroy({ eventInfo: { componentName: componentName, paramObj: undefined } });
}
catch (e) { }
}
}, false);
}
}
};
}
var propTypes$1 = {exports: {}};
var reactIs = {exports: {}};
var reactIs_development = {};
var hasRequiredReactIs_development;
function requireReactIs_development () {
if (hasRequiredReactIs_development) return reactIs_development;
hasRequiredReactIs_development = 1;
{
(function() {
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;
var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') :