raonkeditor-react
Version:
React component for RAON K Editor
1,148 lines (1,129 loc) • 67.6 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.RAONKEditorReact = {}, 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',
'afterChangeMode',
'onError',
'onLanguageDefinition',
'afterPopupShow',
'agentInstall',
'beforeInsertUrl',
'mouse',
'command',
'key',
'resized',
'documentEditComplete',
'pasteImage',
'wordCount',
'beforePaste',
'customAction',
'fullScreen',
'setComplete',
'setInsertComplete',
'closeInstallPopup',
'setForbiddenWordComplete',
'drag',
'focus',
'dialogLoaded',
'beforeInsertHyperlink'
];
var namespaceEvents = ['beforeLoad', 'namespaceLoaded'];
var defaultEvents = __spreadArray(__spreadArray([], events, true), namespaceEvents, true);
var EVENT_PREFIX = '__RKE__';
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
});
}
RAONKEDITOR._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) {
var head = document.head || document.getElementsByTagName('head')[0];
var 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);
}
var onend = 'onload' in script ? stdOnEnd : ieOnEnd;
onend(script, cb);
if (!script.onload) {
stdOnEnd(script, cb);
}
head.appendChild(script);
}
function setAttributes(script, attrs) {
for (var 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);
};
}
var promise;
function getRaonwizComponentNamespace(componentType, componentUrl, onNamespaceLoaded) {
if (typeof componentType !== 'string' || componentType.length < 1) {
return Promise.reject(new TypeError('Component TYPE must be a non-empty string.'));
}
if (componentType in window) {
var _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(function (res) {
if (onNamespaceLoaded) {
onNamespaceLoaded(res);
}
return res;
});
}
return promise;
}
getRaonwizComponentNamespace.scriptLoader = function (componentType, componentUrl) {
return new Promise(function (scriptResolve, scriptReject) {
loadScript(componentUrl, function (err) {
promise = undefined;
var _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) {
var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var 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.apply(fn, [context].concat(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 = "RAONKEDITOR";
var defComponentUrl = "/raonkeditor/js/raonkeditor.js";
var defConfig = {};
function useRaonkEditor(_a) {
var debug = _a.debug, element = _a.element, config = _a.config, componentUrl = _a.componentUrl, _b = _a.runtimes, runtimes = _b === void 0 ? "html5" : _b, dispatchEvent = _a.dispatchEvent, _c = _a.subscribeTo, subscribeTo = _c === void 0 ? defaultEvents : _c;
var componentUrlRef = useRef$1(componentUrl || defComponentUrl);
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 runtimesRef = useRef$1(runtimes);
var _d = useReducer(reducer, {
component: undefined,
hookStatus: "init",
}), _e = _d[0], component = _e.component, hookStatus = _e.hookStatus, dispatch = _d[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;
var isViewMode = configRef.current.Mode === "view";
var isReadOnly = configRef.current.ReadOnly;
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);
}
typeof runtimesRef.current !== "undefined" &&
(configRef.current.Runtimes = runtimesRef.current);
if (debug) {
console.log({
logType: "RAONWIZ Log - initComponent",
operation: "makeComponent config",
configRef: configRef.current,
runtimesRef: runtimesRef.current,
componentName: element.id,
});
}
var component = namespace["_ExternalMakeComponent"](element, configRef.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" });
if (!isViewMode) {
RAONKEDITOR.SetReadOnly(isReadOnly, element.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 && RAONKEDITOR) {
if (RAONKEDITOR._ExternalLoadedEventMap.has(component.object.ID)) {
RAONKEDITOR._ExternalLoadedEventMap.delete(component.object.ID);
}
if (RAONKEDITOR._ExternalCreationCompleteEventMap.has(component.object.ID)) {
RAONKEDITOR._ExternalCreationCompleteEventMap.delete(component.object.ID);
}
if (RAONKEDITOR._ExternalDestroyEventMap.has(component.object.ID)) {
RAONKEDITOR._ExternalDestroyEventMap.delete(component.object.ID);
}
RAONKEDITOR.Destroy(component.object.ID, false);
}
};
}, [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) {
if (typeof RAONKEDITOR._ExternalLoadedEventMap === "undefined") {
RAONKEDITOR._ExternalLoadedEventMap = new Map();
}
if (typeof RAONKEDITOR._ExternalCreationCompleteEventMap === "undefined") {
RAONKEDITOR._ExternalCreationCompleteEventMap = new Map();
}
if (typeof RAONKEDITOR._ExternalDestroyEventMap === "undefined") {
RAONKEDITOR._ExternalDestroyEventMap = new Map();
}
RAONKEDITOR._ExternalLoadedEventMap.set(element.id, []);
RAONKEDITOR._ExternalCreationCompleteEventMap.set(element.id, []);
RAONKEDITOR._ExternalDestroyEventMap.set(element.id, []);
namespace._ExternalDestroy = true;
var _compConfig = {
Id: element.id,
EditorHolder: element.id,
};
_compConfig = namespace.util.objectExtend(true, options, _compConfig);
var _componentObject = new RAONKEditor(_compConfig);
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 = RAONKEDITOR._ExternalLoadedEventMap.get(componentObj.ID);
_tempExternalLoadedEventListHT.push(_callbackFn);
RAONKEDITOR._ExternalLoadedEventMap.set(componentObj.ID, _tempExternalLoadedEventListHT);
break;
case "creationComplete":
if (typeof _componentConfig.event[eventName] == "function") {
break;
}
var _tempExternalCreationCompleteEventListHT = RAONKEDITOR._ExternalCreationCompleteEventMap.get(componentObj.ID);
_tempExternalCreationCompleteEventListHT.push(_callbackFn);
RAONKEDITOR._ExternalCreationCompleteEventMap.set(componentObj.ID, _tempExternalCreationCompleteEventListHT);
var _dummyFn1 = function (componentName, paramObj) {
var _tempLoaded = RAONKEDITOR._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 = RAONKEDITOR._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 = RAONKEDITOR._ExternalDestroyEventMap.get(componentObj.ID);
_tempExternalDestroyEventListHT.push(_callbackFn);
RAONKEDITOR._ExternalDestroyEventMap.set(componentObj.ID, _tempExternalDestroyEventListHT);
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("raonk_frame_holder" + componentName);
if (_targetElem) {
_domNodeRemovedTargetNode = _targetElem;
}
else {
_domNodeRemovedTargetNode = document.getElementById("raonk_frame_" + componentName);
}
if (_domNodeRemovedTargetNode) {
new MutationObserver(function () {
var _tempDestroy = RAONKEDITOR._ExternalDestroyEventMap.get(componentName);
var editor = RAONKEDITOR.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 KEDITORTOP.KEDITORWIN.RAONKEDITOR_Destroy === "function") {
try {
KEDITORTOP.KEDITORWIN.RAONKEDITOR_Destroy({
eventInfo: {
componentName: componentName,
paramObj: undefined,
},
});
}
catch (e) { }
}
}).observe(_domNodeRemovedTargetNode, { childList: true });
}
}
else {
_targetElem = document.getElementById("raonk_frame_" + componentName);
if (_targetElem) {
_domNodeRemovedTargetNode = _targetElem;
}
if (_domNodeRemovedTargetNode) {
_domNodeRemovedTargetNode.addEventListener("DOMNodeRemoved", function (e) {
var _tempDestroy = RAONKEDITOR._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 (
!!KEDITORTOP.G_CURRKEDITOR &&
typeof KEDITORTOP.G_CURRKEDITOR._config !== "undefined" &&
typeof KEDITORTOP.G_CURRKEDITOR._config.event.destroy ===
"function") {
try {
KEDITORTOP.G_CURRKEDITOR._config.event.destroy({
eventInfo: {
componentName: componentName,
paramObj: undefined,
},
});
}
catch (e) { }
}
else if (typeof KEDITORTOP.KEDITORWIN.RAONKEDITOR_Destroy === "function") {
try {
KEDITORTOP.KEDITORWIN.RAONKEDITOR_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') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
function isValidElementType(type) {
return typeof type === 'string' || typeof type === 'function' ||
type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
}
function typeOf(object) {
if (typeof object === 'object' && object !== null) {
var $$typeof = object.$$typeof;
switch ($$typeof) {
case REACT_ELEMENT_TYPE:
var type = object.type;
switch (type) {
case REACT_ASYNC_MODE_TYPE:
case REACT_CONCURRENT_MODE_TYPE:
case REACT_FRAGMENT_TYPE:
case REACT_PROFILER_TYPE:
case REACT_STRICT_MODE_TYPE:
case REACT_SUSPENSE_TYPE:
return type;
default:
var $$typeofType = type && type.$$typeof;
switch ($$typeofType) {
case REACT_CONTEXT_TYPE:
case REACT_FORWARD_REF_TYPE:
case REACT_LAZY_TYPE:
case REACT_MEMO_TYPE:
case REACT_PROVIDER_TYPE:
return $$typeofType;
default:
return $$typeof;
}
}
case REACT_PORTAL_TYPE:
return $$typeof;
}
}
return undefined;
}
var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false;
function isAsyncMode(object) {
{
if (!hasWarnedAboutDeprecatedIsAsyncMode) {
hasWarnedAboutDeprecatedIsAsyncMode = true;
console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
}
}
return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
return typeOf(object) === REACT_SUSPENSE_TYPE;
}
reactIs_development.AsyncMode = AsyncMode;
reactIs_development.ConcurrentMode = ConcurrentMode;
reactIs_development.ContextConsumer = ContextConsumer;
reactIs_development.ContextProvider = ContextProvider;
reactIs_development.Element = Element;
reactIs_development.ForwardRef = ForwardRef;
reactIs_development.Fragment = Fragment;
reactIs_development.Lazy = Lazy;
reactIs_development.Memo = Memo;
reactIs_development.Portal = Portal;
reactIs_development.Profiler = Profiler;
reactIs_development.StrictMode = StrictMode;
reactIs_development.Suspense = Suspense;
reactIs_development.isAsyncMode = isAsyncMode;
reactIs_development.isConcurrentMode = isConcurrentMode;
reactIs_development.isContextConsumer = isContextConsumer;
reactIs_development.isContextProvider = isContextProvider;
reactIs_development.isElement = isElement;
reactIs_development.isForwardRef = isForwardRef;
reactIs_development.isFragment = isFragment;
reactIs_development.isLazy = isLazy;
reactIs_development.isMemo = isMemo;
reactIs_development.isPortal = isPortal;
reactIs_development.isProfiler = isProfiler;
reactIs_development.isStrictMode = isStrictMode;
reactIs_development.isSuspense = isSuspense;
reactIs_development.isValidElementType = isValidElementType;
reactIs_development.typeOf = typeOf;
})();
}
return reactIs_development;
}
var hasRequiredReactIs;
function requireReactIs () {
if (hasRequiredReactIs) return reactIs.exports;
hasRequiredReactIs = 1;
(function (module) {
{
module.exports = requireReactIs_development();
}
} (reactIs));
return reactIs.exports;
}
var objectAssign;
var hasRequiredObjectAssign;
function requireObjectAssign () {
if (hasRequiredObjectAssign) return objectAssign;
hasRequiredObjectAssign = 1;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
var test1 = new String('abc');
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
}
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
}
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !==
'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
return false;
}
}
objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
return objectAssign;
}
var ReactPropTypesSecret_1;
var hasRequiredReactPropTypesSecret;
function requireReactPropTypesSecret () {
if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;
hasRequiredReactPropTypesSecret = 1;
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
ReactPropTypesSecret_1 = ReactPropTypesSecret;
return ReactPropTypesSecret_1;
}
var has;
var hasRequiredHas;
function requireHas () {
if (hasRequiredHas) return has;
hasRequiredHas = 1;
has = Function.call.bind(Object.prototype.hasOwnProperty);
return has;
}
var checkPropTypes_1;
var hasRequiredCheckPropTypes;
function requireCheckPropTypes () {
if (hasRequiredCheckPropTypes) return checkPropTypes_1;
hasRequiredCheckPropTypes = 1;
var printWarning = function() {};
{
var ReactPropTypesSecret = requireReactPropTypesSecret();
var loggedTypeFailures = {};
var has = requireHas();
printWarning = function(text) {
var message = 'Warning: ' + text;
if (typeof console !== 'undefined') {
console.error(message);
}
try {
throw new Error(message);
} catch (x) { }
};
}
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
{
for (var typeSpecName in typeSpecs) {
if (has(typeSpecs, typeSpecName)) {
var error;
try {
if (typeof typeSpecs[typeSpecName] !== 'function') {
var err = Error(
(componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
);
err.name = 'Invariant Violation';
throw err;
}
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
} catch (ex) {
error = ex;
}
if (error && !(error instanceof Error)) {
printWarning(
(componentName || 'React class') + ': type specification of ' +
location + ' `' + typeSpecName + '` is invalid; the type checker ' +
'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
'You may have forgotten to pass an argument to the type checker ' +
'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
'shape all require an argument).'
);
}
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
loggedTypeFailures[error.message] = true;
var stack = getStack ? getStack() : '';
printWarning(
'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
);
}
}
}
}
}
checkPropTypes.resetWarningCache = function() {
{
loggedTypeFailures = {};
}
};
checkPropTypes_1 = checkPropTypes;
return checkPropTypes_1;
}
var factoryWithTypeCheckers;
var hasRequiredFactoryWithTypeCheckers;
function requireFactoryWithTypeCheckers () {
if (hasRequiredFactoryWithTypeCheckers) return factoryWithTypeCheckers;
hasRequiredFactoryWithTypeCheckers = 1;
var ReactIs = requireReactIs();
var assign = requireObjectAssign();
var ReactPropTypesSecret = requireReactPropTypesSecret();
var has = requireHas();
var checkPropTypes = requireCheckPropTypes();
var printWarning = function() {};
{
printWarning = function(text) {
var message = 'Warning: ' + text;
if (typeof console !== 'undefined') {
console.error(message);
}
try {
throw new Error(message);
} catch (x) {}
};
}
function emptyFunctionThatReturnsNull() {
return null;
}
factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) {
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator';
function getIteratorFn(maybeIterable) {
var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
if (typeof iteratorFn === 'function') {
return iteratorFn;
}
}
var ANONYMOUS = '<<anonymous>>';
var ReactPropTypes = {
array: createPrimitiveTypeChecker('array'),
bigint: createPrimitiveTypeChecker('bigint'),
bool: createPrimitiveTypeChecker('boolean'),
func: createPrimitiveTypeChecker('function'),
number: createPrimitiveTypeChecker('number'),
object: createPrimitiveTypeChecker('object'),
string: createPrimitiveTypeChecker('string'),
symbol: createPrimitiveTypeChecker('symbol'),
any: createAnyTypeChecker(),
arrayOf: createArrayOfTypeChecker,
element: createElementTypeChecker(),
elementType: createElementTypeTypeChecker(),
instanceOf: createInstanceTypeChecker,
node: createNodeChecker(),
objectOf: createObjectOfTypeChecker,
oneOf: createEnumTypeChecker,
oneOfType: createUnionTypeChecker,
shape: createShapeTypeChecker,
exact: createStrictShapeTypeChecker,
};
function is(x, y) {
if (x === y) {
return x !== 0 || 1 / x === 1 / y;
} else {
return x !== x && y !== y;
}
}
function PropTypeError(message, data) {
this.message = message;
this.data = data && typeof data === 'object' ? data: {};
this.stack = '';
}
PropTypeError.prototype = Error.prototype;
function createChainableTypeChecker(validate) {
{
var manualPropTypeCallCache = {};
var manualPropTypeWarningCount = 0;
}
function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
componentName = componentName || ANONYMOUS;
propFullName = propFullName || propName;
if (secret !== ReactPropTypesSecret) {
if (throwOnDirectAccess) {
var err = 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'
);
err.name = 'Invariant Violation';
throw err;
} else if (typeof console !== 'undefined') {
var cacheKey = componentName + ':' + propName;
if (
!manualPropTypeCallCache[cacheKey] &&
manualPropTypeWarningCount < 3
) {
printWarning(
'You are manually calling a React.PropTypes validation ' +
'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
'and will throw in the standalone `prop-types` package. ' +
'You may be seeing this warning due to a third-party PropTypes ' +
'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
);
manualPropTypeCallCache[cacheKey] = true;
manualPropTypeWarningCount++;
}
}
}
if (props[propName] == null) {
if (isRequired) {
if (props[propName] === null) {
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
}
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
}
return null;
} else {
return validate(props, propName, componentName, location, propFullName);
}
}
var chainedCheckType = checkType.bind(null, false);
chainedCheckType.isRequired = checkType.bind(null, true);
return chainedCheckType;
}
function createPrimitiveTypeChecker(expectedType) {
function validate(props, propName, componentName, location, propFullName, secret) {
var propValue = props[propName];
var propType = getPropType(propValue);
if (propType !== expectedType) {
var preciseType = getPreciseType(propValue);
return new PropTypeError(
'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
{expectedType: expectedType}
);
}
return null;
}
return createChainableTypeChecker(validate);
}
function createAnyTypeChecker() {
return createChainableTypeChecker(emptyFunctionThatReturnsNull);
}
function createArrayOfTypeChecker(typeChecker) {
function validate(props, propName, componentName, location, propFullName) {
if (typeof typeChecker !== 'function') {
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
}
var propValue = props[propName];
if (!Array.isArray(propValue)) {
var propType = getPropType(propValue);
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
}
for (var i = 0; i < propValue.length; i++) {
var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
if (error instanceof Error) {
return error;
}
}
return null;
}
return createChainableTypeChecker(validate);
}
function createElementTypeChecker() {
function validate(props, propName, componentName, location, propFull