@ivanholiak/easy-email-extensions 4.16.30 → 4.16.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index2.js +1 -60
- package/lib/index2.js.map +1 -1
- package/package.json +2 -2
package/lib/index2.js
CHANGED
|
@@ -52,7 +52,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
52
52
|
};
|
|
53
53
|
import * as React$1 from "react";
|
|
54
54
|
import React__default, { createContext, useContext, isValidElement, Children, cloneElement, Component, useRef, useMemo, memo, forwardRef, createRef, useState, useImperativeHandle, useEffect, useLayoutEffect, useCallback, PureComponent, useReducer, Fragment, Suspense } from "react";
|
|
55
|
-
import { IconFont, useEditorProps, Stack as Stack$4, useRefState, getShadowRoot, DATA_CONTENT_EDITABLE_TYPE, ContentEditableType,
|
|
55
|
+
import { IconFont, useEditorProps, Stack as Stack$4, useRefState, getShadowRoot, DATA_CONTENT_EDITABLE_TYPE, ContentEditableType, TextStyle, useEditorContext, useBlock, useFocusIdx, DATA_CONTENT_EDITABLE_IDX, useFocusBlockLayout, MergeTagBadge, AvailableTools, FIXED_CONTAINER_ID, getPluginElement, RICH_TEXT_BAR_ID, CONTENT_EDITABLE_CLASS_NAME, getEditorRoot, scrollBlockEleIntoView, useHoverIdx, useDataTransfer, getBlockNodeByChildEle, getDirectionPosition, DATA_ATTRIBUTE_DROP_CONTAINER, BlockAvatarWrapper, isTextBlock, getBlockNodeByIdx, useLazyState, useActiveTab, ActiveTabKeys } from "@ivanholiak/easy-email-editor";
|
|
56
56
|
import { BasicType, ImageManager, EMAIL_BLOCK_CLASS_NAME, BlockManager, createBlockDataByType, AdvancedType, Operator, OperatorSymbol, isAdvancedBlock, getParentByIdx, getParentIdx, getIndexByIdx, getSiblingIdx, getNodeIdxFromClassName, getNodeIdxClassName, getPageIdx, getChildIdx, JsonToMjml, getNodeTypeFromClassName } from "@ivanholiak/easy-email-core";
|
|
57
57
|
import ReactDOM$1, { createPortal } from "react-dom";
|
|
58
58
|
import { Field, useForm as useForm$1, useField, Form as Form$3, version as version$2, useFormState as useFormState$2 } from "react-final-form";
|
|
@@ -36009,70 +36009,11 @@ function InlineText({ idx, onChange, children }) {
|
|
|
36009
36009
|
}
|
|
36010
36010
|
}
|
|
36011
36011
|
};
|
|
36012
|
-
const findEditableEl = (el) => {
|
|
36013
|
-
var _a2;
|
|
36014
|
-
if (!el)
|
|
36015
|
-
return null;
|
|
36016
|
-
if (el.isContentEditable)
|
|
36017
|
-
return el;
|
|
36018
|
-
return (_a2 = el.closest) == null ? void 0 : _a2.call(el, "[contenteditable]");
|
|
36019
|
-
};
|
|
36020
|
-
const onDrop = (e2) => {
|
|
36021
|
-
var _a2, _b2, _c, _d, _e, _f;
|
|
36022
|
-
const target2 = e2.target;
|
|
36023
|
-
const editableEl = findEditableEl(target2);
|
|
36024
|
-
if (!editableEl)
|
|
36025
|
-
return;
|
|
36026
|
-
const mergeTagText = ((_a2 = e2.dataTransfer) == null ? void 0 : _a2.getData("text/merge-tag")) || ((_b2 = e2.dataTransfer) == null ? void 0 : _b2.getData("text/plain"));
|
|
36027
|
-
if (mergeTagText && mergeTagText.includes("{{")) {
|
|
36028
|
-
e2.preventDefault();
|
|
36029
|
-
e2.stopPropagation();
|
|
36030
|
-
const range = (_c = document.caretRangeFromPoint) == null ? void 0 : _c.call(document, e2.clientX, e2.clientY);
|
|
36031
|
-
if (range) {
|
|
36032
|
-
const sel = (_e = (_d = shadowRoot.getSelection) == null ? void 0 : _d.call(shadowRoot)) != null ? _e : window.getSelection();
|
|
36033
|
-
if (sel) {
|
|
36034
|
-
sel.removeAllRanges();
|
|
36035
|
-
sel.addRange(range);
|
|
36036
|
-
}
|
|
36037
|
-
}
|
|
36038
|
-
const contentEditableType = editableEl.getAttribute(DATA_CONTENT_EDITABLE_TYPE);
|
|
36039
|
-
let insertText = mergeTagText;
|
|
36040
|
-
if (enabledMergeTagsBadge && mergeTagGenerate) {
|
|
36041
|
-
const match = mergeTagText.match(/\{\{([^}]+)\}\}/);
|
|
36042
|
-
if (match && match[1]) {
|
|
36043
|
-
const mergeTagKey = match[1].trim();
|
|
36044
|
-
const generatedTag = mergeTagGenerate(mergeTagKey);
|
|
36045
|
-
insertText = MergeTagBadge.transform(generatedTag);
|
|
36046
|
-
} else {
|
|
36047
|
-
insertText = MergeTagBadge.transform(mergeTagText);
|
|
36048
|
-
}
|
|
36049
|
-
}
|
|
36050
|
-
document.execCommand("insertHTML", false, insertText);
|
|
36051
|
-
if (contentEditableType === ContentEditableType.RichText) {
|
|
36052
|
-
onChange(editableEl.innerHTML || "");
|
|
36053
|
-
} else if (contentEditableType === ContentEditableType.Text) {
|
|
36054
|
-
onChange(((_f = editableEl.textContent) == null ? void 0 : _f.trim()) || "");
|
|
36055
|
-
}
|
|
36056
|
-
}
|
|
36057
|
-
};
|
|
36058
|
-
const onDragOver = (e2) => {
|
|
36059
|
-
var _a2;
|
|
36060
|
-
const target2 = e2.target;
|
|
36061
|
-
const editableEl = findEditableEl(target2);
|
|
36062
|
-
if (editableEl && ((_a2 = e2.dataTransfer) == null ? void 0 : _a2.types.includes("text/merge-tag"))) {
|
|
36063
|
-
e2.preventDefault();
|
|
36064
|
-
e2.dataTransfer.dropEffect = "copy";
|
|
36065
|
-
}
|
|
36066
|
-
};
|
|
36067
36012
|
shadowRoot.addEventListener("paste", onPaste, true);
|
|
36068
36013
|
shadowRoot.addEventListener("input", onInput);
|
|
36069
|
-
shadowRoot.addEventListener("drop", onDrop, true);
|
|
36070
|
-
shadowRoot.addEventListener("dragover", onDragOver, true);
|
|
36071
36014
|
return () => {
|
|
36072
36015
|
shadowRoot.removeEventListener("paste", onPaste, true);
|
|
36073
36016
|
shadowRoot.removeEventListener("input", onInput);
|
|
36074
|
-
shadowRoot.removeEventListener("drop", onDrop, true);
|
|
36075
|
-
shadowRoot.removeEventListener("dragover", onDragOver, true);
|
|
36076
36017
|
};
|
|
36077
36018
|
}, [onChange, setFieldTouched, enabledMergeTagsBadge, mergeTagGenerate]);
|
|
36078
36019
|
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children);
|