easy-email-extensions 3.1.34 → 3.1.39
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 +212 -198
- package/lib/index2.js.map +1 -1
- package/lib/style.css +1 -1
- package/package.json +2 -2
package/lib/index2.js
CHANGED
|
@@ -56,11 +56,11 @@ var __async = (__this, __arguments, generator) => {
|
|
|
56
56
|
import * as React from "react";
|
|
57
57
|
import React__default, { Children, isValidElement, cloneElement, createContext, useContext, Component, useMemo, memo, forwardRef, useEffect, useRef, useLayoutEffect, useState, createRef, useImperativeHandle, PureComponent, useCallback, useReducer, Fragment, createElement, Suspense } from "react";
|
|
58
58
|
import { IconFont, useEditorProps, Stack as Stack$6, getBlockNodeByIdx, useBlock, getEditNode, getEditContent, TextStyle, useFocusIdx, useEditorContext, getShadowRoot, FIXED_CONTAINER_ID, useFocusBlockLayout, scrollBlockEleIntoView, useHoverIdx, useDataTransfer, useRefState, getBlockNodeByChildEle, getDirectionPosition, DATA_ATTRIBUTE_DROP_CONTAINER, BlockAvatarWrapper, getEditorRoot, useActiveTab, ActiveTabKeys } from "easy-email-editor";
|
|
59
|
-
import { BasicType, ImageManager, BlockManager,
|
|
59
|
+
import { BasicType, ImageManager, BlockManager, createBlockDataByType, getParentByIdx, getParentIdx, getValueByIdx, getIndexByIdx, getSiblingIdx, getNodeIdxFromClassName, getNodeIdxClassName, getPageIdx, getChildIdx, MjmlToJson, JsonToMjml, getNodeTypeFromClassName } from "easy-email-core";
|
|
60
60
|
import ReactDOM, { findDOMNode, createPortal } from "react-dom";
|
|
61
61
|
import { useField, Field, useForm as useForm$1, Form as Form$3, version as version$2, useFormState } from "react-final-form";
|
|
62
62
|
var index$2 = "";
|
|
63
|
-
const title = "
|
|
63
|
+
const title = "_title_15b2l_1";
|
|
64
64
|
var styles$6 = {
|
|
65
65
|
title
|
|
66
66
|
};
|
|
@@ -31277,10 +31277,10 @@ function previewLoadImage(url) {
|
|
|
31277
31277
|
});
|
|
31278
31278
|
}
|
|
31279
31279
|
const defaultImagesMap$1 = {
|
|
31280
|
-
IMAGE_59: "https://
|
|
31281
|
-
AttributePanel_01: "https://
|
|
31282
|
-
AttributePanel_02: "https://
|
|
31283
|
-
AttributePanel_03: "https://
|
|
31280
|
+
IMAGE_59: "https://easy-email-m-ryan.vercel.app/images/06ca521d-9728-4de6-a709-1b75a828bfc3-2a9b1224-3d71-43b8-b52f-e7cdcdc9107b.png",
|
|
31281
|
+
AttributePanel_01: "https://easy-email-m-ryan.vercel.app/images/e22f78f2-aa76-408d-ba94-c95c7abe1908-image.png",
|
|
31282
|
+
AttributePanel_02: "https://easy-email-m-ryan.vercel.app/images/3e952a6e-2506-470e-b395-3e0d995157c5.png",
|
|
31283
|
+
AttributePanel_03: "https://easy-email-m-ryan.vercel.app/images/Fi_vI4vyLhTM-Tp6ivq4dR_ieGHk"
|
|
31284
31284
|
};
|
|
31285
31285
|
ImageManager.add(defaultImagesMap$1);
|
|
31286
31286
|
function getImg$1(name) {
|
|
@@ -38463,9 +38463,7 @@ function enhancer(Component2, changeAdapter) {
|
|
|
38463
38463
|
const [currentValue, setCurrentValue] = useState(value);
|
|
38464
38464
|
const debounceCallbackChange = useCallback(lodash.exports.debounce((val) => {
|
|
38465
38465
|
onChange(val);
|
|
38466
|
-
},
|
|
38467
|
-
maxWait: 500
|
|
38468
|
-
}), [onChange]);
|
|
38466
|
+
}, 500, {}), [onChange]);
|
|
38469
38467
|
useEffect(() => {
|
|
38470
38468
|
setCurrentValue(value);
|
|
38471
38469
|
}, [value]);
|
|
@@ -39157,105 +39155,10 @@ function AddFont() {
|
|
|
39157
39155
|
}
|
|
39158
39156
|
});
|
|
39159
39157
|
}
|
|
39160
|
-
function getContextMergeTags(mergeTags2, context, idx) {
|
|
39161
|
-
const loop2 = (currentIdx, combineMergeTags) => {
|
|
39162
|
-
var _a, _b;
|
|
39163
|
-
const parentBlockData = lodash.exports.get(context, currentIdx);
|
|
39164
|
-
if (!parentBlockData)
|
|
39165
|
-
return combineMergeTags;
|
|
39166
|
-
const parentBlock = BlockManager.getBlockByType(parentBlockData.type);
|
|
39167
|
-
if (parentBlock && parentBlock.render) {
|
|
39168
|
-
const dataSource = (_b = (_a = parentBlockData.data) == null ? void 0 : _a.value) == null ? void 0 : _b.dataSource;
|
|
39169
|
-
if (!dataSource)
|
|
39170
|
-
return combineMergeTags;
|
|
39171
|
-
Object.keys(dataSource).forEach((key) => {
|
|
39172
|
-
let formatKey = dataSource[key];
|
|
39173
|
-
const loopFormatKey = (currentLoopKeyIdx) => {
|
|
39174
|
-
const currentParentIdx = getParentIdx(currentLoopKeyIdx);
|
|
39175
|
-
if (currentParentIdx) {
|
|
39176
|
-
const currentBlockData = lodash.exports.get(context, currentParentIdx);
|
|
39177
|
-
if (!currentBlockData)
|
|
39178
|
-
return formatKey;
|
|
39179
|
-
currentBlockData.data.value.dataSource && Object.keys(currentBlockData.data.value.dataSource).forEach((item2) => {
|
|
39180
|
-
formatKey = formatKey.replace(item2, currentBlockData.data.value.dataSource[item2].replace(/{{([^}}]+)}}/g, "$1"));
|
|
39181
|
-
});
|
|
39182
|
-
loopFormatKey(currentParentIdx);
|
|
39183
|
-
}
|
|
39184
|
-
};
|
|
39185
|
-
loopFormatKey(currentIdx);
|
|
39186
|
-
const dataSourcePath = formatKey.replace(/{{([^}}]+)}}/g, "$1");
|
|
39187
|
-
combineMergeTags = __spreadValues({
|
|
39188
|
-
[key]: lodash.exports.get(combineMergeTags, dataSourcePath)
|
|
39189
|
-
}, combineMergeTags);
|
|
39190
|
-
});
|
|
39191
|
-
}
|
|
39192
|
-
const parentIdx = getParentIdx(currentIdx);
|
|
39193
|
-
if (!parentIdx)
|
|
39194
|
-
return combineMergeTags;
|
|
39195
|
-
return loop2(parentIdx, combineMergeTags);
|
|
39196
|
-
};
|
|
39197
|
-
return loop2(idx, lodash.exports.cloneDeep(mergeTags2));
|
|
39198
|
-
}
|
|
39199
|
-
const MergeTags = React__default.memo((props) => {
|
|
39200
|
-
const { focusIdx: focusIdx2 } = useFocusIdx();
|
|
39201
|
-
const {
|
|
39202
|
-
mergeTags: mergeTags2 = {},
|
|
39203
|
-
mergeTagGenerate = (m) => `{{${m}}}`,
|
|
39204
|
-
renderMergeTagContent
|
|
39205
|
-
} = useEditorProps();
|
|
39206
|
-
const { values: values2 } = useBlock();
|
|
39207
|
-
const contextMergeTags = useMemo(() => getContextMergeTags(mergeTags2, values2, focusIdx2), [mergeTags2, values2, focusIdx2]);
|
|
39208
|
-
const treeOptions = useMemo(() => {
|
|
39209
|
-
const treeData = [];
|
|
39210
|
-
const deep = (key, title2, parent2, mapData = []) => {
|
|
39211
|
-
const currentMapData = {
|
|
39212
|
-
key: mergeTagGenerate(key),
|
|
39213
|
-
value: mergeTagGenerate(key),
|
|
39214
|
-
title: title2,
|
|
39215
|
-
disabled: lodash.exports.isObject(parent2[key]) || !parent2[title2],
|
|
39216
|
-
children: []
|
|
39217
|
-
};
|
|
39218
|
-
mapData.push(currentMapData);
|
|
39219
|
-
const current = parent2[title2];
|
|
39220
|
-
if (current && typeof current === "object") {
|
|
39221
|
-
Object.keys(current).map((childKey) => deep(key + "." + childKey, childKey, current, currentMapData.children));
|
|
39222
|
-
}
|
|
39223
|
-
};
|
|
39224
|
-
Object.keys(contextMergeTags).map((key) => deep(key, key, contextMergeTags, treeData));
|
|
39225
|
-
return treeData;
|
|
39226
|
-
}, [contextMergeTags, mergeTagGenerate]);
|
|
39227
|
-
const onSelect = useCallback((value) => {
|
|
39228
|
-
return props.onChange(value);
|
|
39229
|
-
}, [props]);
|
|
39230
|
-
const mergeTagContent = useMemo(() => renderMergeTagContent ? renderMergeTagContent({
|
|
39231
|
-
onChange: props.onChange,
|
|
39232
|
-
isSelect: Boolean(props.isSelect),
|
|
39233
|
-
value: props.value
|
|
39234
|
-
}) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null), [renderMergeTagContent, props.onChange, props.isSelect, props.value]);
|
|
39235
|
-
if (renderMergeTagContent) {
|
|
39236
|
-
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, mergeTagContent);
|
|
39237
|
-
}
|
|
39238
|
-
return /* @__PURE__ */ React__default.createElement("div", {
|
|
39239
|
-
style: { color: "#333" }
|
|
39240
|
-
}, props.isSelect ? /* @__PURE__ */ React__default.createElement(TreeSelect$1, {
|
|
39241
|
-
value: props.value,
|
|
39242
|
-
size: "small",
|
|
39243
|
-
dropdownMenuStyle: { maxHeight: 400, overflow: "auto" },
|
|
39244
|
-
placeholder: "Please select",
|
|
39245
|
-
treeData: treeOptions,
|
|
39246
|
-
onChange: (val) => onSelect(val)
|
|
39247
|
-
}) : /* @__PURE__ */ React__default.createElement(Tree$1, {
|
|
39248
|
-
defaultExpandedKeys: [],
|
|
39249
|
-
selectedKeys: [],
|
|
39250
|
-
treeData: treeOptions,
|
|
39251
|
-
onSelect: (vals) => onSelect(vals[0])
|
|
39252
|
-
}));
|
|
39253
|
-
});
|
|
39254
39158
|
const AttributesPanelWrapper = (props) => {
|
|
39255
39159
|
const { focusBlock: focusBlock2, setFocusBlock } = useBlock();
|
|
39256
|
-
const { mergeTags: mergeTags2 } = useEditorProps();
|
|
39257
39160
|
const block2 = focusBlock2 && BlockManager.getBlockByType(focusBlock2.type);
|
|
39258
|
-
|
|
39161
|
+
useCallback((val) => {
|
|
39259
39162
|
if (!focusBlock2)
|
|
39260
39163
|
return;
|
|
39261
39164
|
focusBlock2.data.hidden = val;
|
|
@@ -39283,13 +39186,7 @@ const AttributesPanelWrapper = (props) => {
|
|
|
39283
39186
|
}, /* @__PURE__ */ React__default.createElement(EyeIcon, null), /* @__PURE__ */ React__default.createElement(TextStyle, {
|
|
39284
39187
|
variation: "strong",
|
|
39285
39188
|
size: "large"
|
|
39286
|
-
}, `${block2.name} attributes`)), /* @__PURE__ */ React__default.createElement(Stack$6.Item, null, props.extra))),
|
|
39287
|
-
spacing: "extraTight"
|
|
39288
|
-
}, /* @__PURE__ */ React__default.createElement(TextStyle, null, "Hide if"), /* @__PURE__ */ React__default.createElement(MergeTags, {
|
|
39289
|
-
isSelect: true,
|
|
39290
|
-
onChange: onChangeHidden,
|
|
39291
|
-
value: String(focusBlock2.data.hidden)
|
|
39292
|
-
})))), /* @__PURE__ */ React__default.createElement("div", {
|
|
39189
|
+
}, `${block2.name} attributes`)), /* @__PURE__ */ React__default.createElement(Stack$6.Item, null, props.extra))))), /* @__PURE__ */ React__default.createElement("div", {
|
|
39293
39190
|
style: __spreadValues({ padding: "0px" }, props.style)
|
|
39294
39191
|
}, props.children));
|
|
39295
39192
|
};
|
|
@@ -39362,12 +39259,6 @@ function Page() {
|
|
|
39362
39259
|
helpText: "Allows you to control on which breakpoint the layout should go desktop/mobile.",
|
|
39363
39260
|
name: `${focusIdx2}.data.value.breakpoint`,
|
|
39364
39261
|
inline: true
|
|
39365
|
-
}), /* @__PURE__ */ React__default.createElement(SwitchField, {
|
|
39366
|
-
inline: true,
|
|
39367
|
-
label: "Responsive",
|
|
39368
|
-
name: `${focusIdx2}.data.value.responsive`,
|
|
39369
|
-
checkedText: "True",
|
|
39370
|
-
uncheckedText: "False"
|
|
39371
39262
|
}))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
|
|
39372
39263
|
name: "1",
|
|
39373
39264
|
header: "Theme Setting"
|
|
@@ -40303,6 +40194,117 @@ function BorderColor() {
|
|
|
40303
40194
|
});
|
|
40304
40195
|
}, [focusIdx2]);
|
|
40305
40196
|
}
|
|
40197
|
+
function getContextMergeTags(mergeTags2, context, idx) {
|
|
40198
|
+
const loop2 = (currentIdx, combineMergeTags) => {
|
|
40199
|
+
var _a, _b;
|
|
40200
|
+
const parentBlockData = lodash.exports.get(context, currentIdx);
|
|
40201
|
+
if (!parentBlockData)
|
|
40202
|
+
return combineMergeTags;
|
|
40203
|
+
const parentBlock = BlockManager.getBlockByType(parentBlockData.type);
|
|
40204
|
+
if (parentBlock && parentBlock.render) {
|
|
40205
|
+
const dataSource = (_b = (_a = parentBlockData.data) == null ? void 0 : _a.value) == null ? void 0 : _b.dataSource;
|
|
40206
|
+
if (!dataSource)
|
|
40207
|
+
return combineMergeTags;
|
|
40208
|
+
Object.keys(dataSource).forEach((key) => {
|
|
40209
|
+
let formatKey = dataSource[key];
|
|
40210
|
+
const loopFormatKey = (currentLoopKeyIdx) => {
|
|
40211
|
+
const currentParentIdx = getParentIdx(currentLoopKeyIdx);
|
|
40212
|
+
if (currentParentIdx) {
|
|
40213
|
+
const currentBlockData = lodash.exports.get(context, currentParentIdx);
|
|
40214
|
+
if (!currentBlockData)
|
|
40215
|
+
return formatKey;
|
|
40216
|
+
currentBlockData.data.value.dataSource && Object.keys(currentBlockData.data.value.dataSource).forEach((item2) => {
|
|
40217
|
+
formatKey = formatKey.replace(item2, currentBlockData.data.value.dataSource[item2].replace(/{{([^}}]+)}}/g, "$1"));
|
|
40218
|
+
});
|
|
40219
|
+
loopFormatKey(currentParentIdx);
|
|
40220
|
+
}
|
|
40221
|
+
};
|
|
40222
|
+
loopFormatKey(currentIdx);
|
|
40223
|
+
const dataSourcePath = formatKey.replace(/{{([^}}]+)}}/g, "$1");
|
|
40224
|
+
combineMergeTags = __spreadValues({
|
|
40225
|
+
[key]: lodash.exports.get(combineMergeTags, dataSourcePath)
|
|
40226
|
+
}, combineMergeTags);
|
|
40227
|
+
});
|
|
40228
|
+
}
|
|
40229
|
+
const parentIdx = getParentIdx(currentIdx);
|
|
40230
|
+
if (!parentIdx)
|
|
40231
|
+
return combineMergeTags;
|
|
40232
|
+
return loop2(parentIdx, combineMergeTags);
|
|
40233
|
+
};
|
|
40234
|
+
return loop2(idx, lodash.exports.cloneDeep(mergeTags2));
|
|
40235
|
+
}
|
|
40236
|
+
const MergeTags = React__default.memo((props) => {
|
|
40237
|
+
const [expandedKeys, setExpandedKeys] = useState([]);
|
|
40238
|
+
const { focusIdx: focusIdx2 } = useFocusIdx();
|
|
40239
|
+
const {
|
|
40240
|
+
mergeTags: mergeTags2 = {},
|
|
40241
|
+
mergeTagGenerate = (m) => `{{${m}}}`,
|
|
40242
|
+
renderMergeTagContent
|
|
40243
|
+
} = useEditorProps();
|
|
40244
|
+
const { values: values2 } = useBlock();
|
|
40245
|
+
const contextMergeTags = useMemo(() => getContextMergeTags(mergeTags2, values2, focusIdx2), [mergeTags2, values2, focusIdx2]);
|
|
40246
|
+
const treeOptions = useMemo(() => {
|
|
40247
|
+
const treeData = [];
|
|
40248
|
+
const deep = (key, title2, parent2, mapData = []) => {
|
|
40249
|
+
const currentMapData = {
|
|
40250
|
+
key,
|
|
40251
|
+
value: key,
|
|
40252
|
+
title: title2,
|
|
40253
|
+
children: []
|
|
40254
|
+
};
|
|
40255
|
+
mapData.push(currentMapData);
|
|
40256
|
+
const current = parent2[title2];
|
|
40257
|
+
if (current && typeof current === "object") {
|
|
40258
|
+
Object.keys(current).map((childKey) => deep(key + "." + childKey, childKey, current, currentMapData.children));
|
|
40259
|
+
}
|
|
40260
|
+
};
|
|
40261
|
+
Object.keys(contextMergeTags).map((key) => deep(key, key, contextMergeTags, treeData));
|
|
40262
|
+
return treeData;
|
|
40263
|
+
}, [contextMergeTags]);
|
|
40264
|
+
const onSelect = useCallback((key) => {
|
|
40265
|
+
const value = lodash.exports.get(contextMergeTags, key);
|
|
40266
|
+
if (lodash.exports.isObject(value)) {
|
|
40267
|
+
setExpandedKeys((keys2) => {
|
|
40268
|
+
console.log("keys", keys2, key);
|
|
40269
|
+
if (keys2.includes(key)) {
|
|
40270
|
+
return keys2.filter((k) => k !== key);
|
|
40271
|
+
} else {
|
|
40272
|
+
return [...keys2, key];
|
|
40273
|
+
}
|
|
40274
|
+
});
|
|
40275
|
+
return;
|
|
40276
|
+
}
|
|
40277
|
+
return props.onChange(mergeTagGenerate(value));
|
|
40278
|
+
}, [contextMergeTags, props, mergeTagGenerate]);
|
|
40279
|
+
const mergeTagContent = useMemo(() => renderMergeTagContent ? renderMergeTagContent({
|
|
40280
|
+
onChange: props.onChange,
|
|
40281
|
+
isSelect: Boolean(props.isSelect),
|
|
40282
|
+
value: props.value
|
|
40283
|
+
}) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null), [renderMergeTagContent, props.onChange, props.isSelect, props.value]);
|
|
40284
|
+
if (renderMergeTagContent) {
|
|
40285
|
+
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, mergeTagContent);
|
|
40286
|
+
}
|
|
40287
|
+
return /* @__PURE__ */ React__default.createElement("div", {
|
|
40288
|
+
style: { color: "#333" }
|
|
40289
|
+
}, props.isSelect ? /* @__PURE__ */ React__default.createElement(TreeSelect$1, {
|
|
40290
|
+
value: props.value,
|
|
40291
|
+
size: "small",
|
|
40292
|
+
dropdownMenuStyle: { maxHeight: 400, overflow: "auto" },
|
|
40293
|
+
placeholder: "Please select",
|
|
40294
|
+
treeData: treeOptions,
|
|
40295
|
+
onChange: (val) => onSelect(val)
|
|
40296
|
+
}) : /* @__PURE__ */ React__default.createElement(Tree$1, {
|
|
40297
|
+
expandedKeys,
|
|
40298
|
+
onExpand: setExpandedKeys,
|
|
40299
|
+
selectedKeys: [],
|
|
40300
|
+
treeData: treeOptions,
|
|
40301
|
+
onSelect: (vals) => onSelect(vals[0]),
|
|
40302
|
+
style: {
|
|
40303
|
+
maxHeight: 400,
|
|
40304
|
+
overflow: "auto"
|
|
40305
|
+
}
|
|
40306
|
+
}));
|
|
40307
|
+
});
|
|
40306
40308
|
const borderStyleOptions = [
|
|
40307
40309
|
{
|
|
40308
40310
|
value: "dashed",
|
|
@@ -41322,7 +41324,9 @@ function AttributePanel() {
|
|
|
41322
41324
|
const shadowRoot = getShadowRoot();
|
|
41323
41325
|
if (!value || !initialized)
|
|
41324
41326
|
return null;
|
|
41325
|
-
return /* @__PURE__ */ React__default.createElement(PresetColorsProvider, null, Com ? /* @__PURE__ */ React__default.createElement(Com,
|
|
41327
|
+
return /* @__PURE__ */ React__default.createElement(PresetColorsProvider, null, Com ? /* @__PURE__ */ React__default.createElement(Com, {
|
|
41328
|
+
key: focusIdx2
|
|
41329
|
+
}) : /* @__PURE__ */ React__default.createElement("div", {
|
|
41326
41330
|
style: { marginTop: 200, padding: "0 50px" }
|
|
41327
41331
|
}, /* @__PURE__ */ React__default.createElement(TextStyle, {
|
|
41328
41332
|
size: "extraLarge"
|
|
@@ -41619,6 +41623,7 @@ function FieldWrapper(props) {
|
|
|
41619
41623
|
const _a = props, { input } = _a, rest = __objRest(_a, ["input"]);
|
|
41620
41624
|
const debounceCallbackChange = useCallback(lodash.exports.debounce((val) => {
|
|
41621
41625
|
input.onChange(val);
|
|
41626
|
+
input.onBlur();
|
|
41622
41627
|
}, 100), [input]);
|
|
41623
41628
|
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(RichTextToolBar, {
|
|
41624
41629
|
onChange: debounceCallbackChange
|
|
@@ -41716,6 +41721,7 @@ function ContextMenu({
|
|
|
41716
41721
|
const { blockData, left, top } = contextMenuData;
|
|
41717
41722
|
const idx = blockData.id;
|
|
41718
41723
|
const { modal, modalVisible, setModalVisible } = useAddToCollection();
|
|
41724
|
+
const props = useEditorProps();
|
|
41719
41725
|
const ref = useRef(null);
|
|
41720
41726
|
const handleMoveUp = () => {
|
|
41721
41727
|
moveBlock(idx, getSiblingIdx(idx, -1));
|
|
@@ -41774,7 +41780,7 @@ function ContextMenu({
|
|
|
41774
41780
|
}, /* @__PURE__ */ React__default.createElement(IconFont, {
|
|
41775
41781
|
iconName: "icon-copy",
|
|
41776
41782
|
style: { marginRight: 10 }
|
|
41777
|
-
}), " ", /* @__PURE__ */ React__default.createElement(TextStyle, null, "Copy")), /* @__PURE__ */ React__default.createElement("div", {
|
|
41783
|
+
}), " ", /* @__PURE__ */ React__default.createElement(TextStyle, null, "Copy")), props.onAddCollection && /* @__PURE__ */ React__default.createElement("div", {
|
|
41778
41784
|
className: styles$5.listItem,
|
|
41779
41785
|
onClick: handleAddToCollection
|
|
41780
41786
|
}, /* @__PURE__ */ React__default.createElement(IconFont, {
|
|
@@ -42088,20 +42094,27 @@ function BlockLayer() {
|
|
|
42088
42094
|
moveBlock(dragNode.key, getChildIdx(dropNode.parentKey, dropPosition > 0 ? dropIndex + 1 : dropIndex));
|
|
42089
42095
|
}
|
|
42090
42096
|
}, [moveBlock]);
|
|
42091
|
-
const blockTreeAllowDrop = useCallback((
|
|
42092
|
-
|
|
42093
|
-
|
|
42094
|
-
|
|
42095
|
-
const
|
|
42096
|
-
if (
|
|
42097
|
-
|
|
42098
|
-
node.classList.add("arco-tree-node-title-gap-bottom");
|
|
42097
|
+
const blockTreeAllowDrop = useCallback((() => {
|
|
42098
|
+
let lastDropResult = false;
|
|
42099
|
+
return (data) => {
|
|
42100
|
+
var _a, _b;
|
|
42101
|
+
const dropResult = allowDrop(data);
|
|
42102
|
+
if (lodash.exports.isEqual(lastDropResult, dropResult)) {
|
|
42103
|
+
return dropResult;
|
|
42099
42104
|
}
|
|
42100
|
-
|
|
42101
|
-
|
|
42102
|
-
|
|
42103
|
-
|
|
42104
|
-
|
|
42105
|
+
lastDropResult = dropResult;
|
|
42106
|
+
if (dropResult) {
|
|
42107
|
+
const node = (_b = (_a = document.querySelector(`[data-tree-idx="${dropResult.key}"]`)) == null ? void 0 : _a.parentNode) == null ? void 0 : _b.parentNode;
|
|
42108
|
+
if (node instanceof HTMLElement) {
|
|
42109
|
+
removeHightLightClassName();
|
|
42110
|
+
node.classList.add("arco-tree-node-title-gap-bottom");
|
|
42111
|
+
}
|
|
42112
|
+
setDirection(getDirectionFormDropPosition(dropResult.position));
|
|
42113
|
+
setHoverIdx(dropResult.key);
|
|
42114
|
+
}
|
|
42115
|
+
return dropResult;
|
|
42116
|
+
};
|
|
42117
|
+
})(), [allowDrop, removeHightLightClassName, setDirection, setHoverIdx]);
|
|
42105
42118
|
const selectedKeys = useMemo(() => {
|
|
42106
42119
|
if (!focusIdx2)
|
|
42107
42120
|
return [];
|
|
@@ -42300,70 +42313,70 @@ function TextBlockItem() {
|
|
|
42300
42313
|
})));
|
|
42301
42314
|
}
|
|
42302
42315
|
const defaultImagesMap = {
|
|
42303
|
-
IMAGE_08: "https://
|
|
42304
|
-
IMAGE_09: "https://
|
|
42305
|
-
IMAGE_10: "https://
|
|
42306
|
-
IMAGE_11: "https://
|
|
42307
|
-
IMAGE_12: "https://
|
|
42308
|
-
IMAGE_13: "https://
|
|
42309
|
-
IMAGE_14: "https://
|
|
42310
|
-
IMAGE_15: "https://
|
|
42311
|
-
IMAGE_16: "https://
|
|
42312
|
-
IMAGE_17: "https://
|
|
42313
|
-
IMAGE_18: "https://
|
|
42314
|
-
IMAGE_19: "https://
|
|
42315
|
-
IMAGE_20: "https://
|
|
42316
|
-
IMAGE_21: "https://
|
|
42317
|
-
IMAGE_22: "https://
|
|
42318
|
-
IMAGE_23: "https://
|
|
42319
|
-
IMAGE_24: "https://
|
|
42320
|
-
IMAGE_25: "https://
|
|
42321
|
-
IMAGE_26: "https://
|
|
42322
|
-
IMAGE_27: "https://
|
|
42323
|
-
IMAGE_28: "https://
|
|
42324
|
-
IMAGE_29: "https://
|
|
42325
|
-
IMAGE_30: "https://
|
|
42326
|
-
IMAGE_31: "https://
|
|
42327
|
-
IMAGE_32: "https://
|
|
42328
|
-
IMAGE_33: "https://
|
|
42329
|
-
IMAGE_34: "https://
|
|
42330
|
-
IMAGE_35: "https://
|
|
42331
|
-
IMAGE_36: "https://
|
|
42332
|
-
IMAGE_37: "https://
|
|
42333
|
-
IMAGE_38: "https://
|
|
42334
|
-
IMAGE_39: "https://
|
|
42335
|
-
IMAGE_40: "https://
|
|
42336
|
-
IMAGE_41: "https://
|
|
42337
|
-
IMAGE_42: "https://
|
|
42338
|
-
IMAGE_43: "https://
|
|
42339
|
-
IMAGE_44: "https://
|
|
42340
|
-
IMAGE_45: "https://
|
|
42341
|
-
IMAGE_46: "https://
|
|
42342
|
-
IMAGE_47: "https://
|
|
42343
|
-
IMAGE_48: "https://
|
|
42344
|
-
IMAGE_49: "https://
|
|
42345
|
-
IMAGE_50: "https://
|
|
42346
|
-
IMAGE_51: "https://
|
|
42347
|
-
IMAGE_52: "https://
|
|
42348
|
-
IMAGE_53: "https://
|
|
42349
|
-
IMAGE_54: "https://
|
|
42350
|
-
IMAGE_55: "https://
|
|
42351
|
-
IMAGE_56: "https://
|
|
42352
|
-
IMAGE_57: "https://
|
|
42353
|
-
IMAGE_58: "https://
|
|
42354
|
-
IMAGE_59: "https://
|
|
42355
|
-
IMAGE_60: "https://
|
|
42356
|
-
IMAGE_61: "https://
|
|
42357
|
-
IMAGE_62: "https://
|
|
42358
|
-
IMAGE_63: "https://
|
|
42359
|
-
IMAGE_64: "https://
|
|
42360
|
-
IMAGE_65: "https://
|
|
42361
|
-
IMAGE_66: "https://
|
|
42362
|
-
IMAGE_67: "https://
|
|
42363
|
-
IMAGE_68: "https://
|
|
42364
|
-
IMAGE_69: "https://
|
|
42365
|
-
IMAGE_70: "https://
|
|
42366
|
-
IMAGE_71: "https://
|
|
42316
|
+
IMAGE_08: "https://easy-email-m-ryan.vercel.app/images/0046b247-3647-491f-afe1-cb0dd2a3c21c-ef84b752-f827-4546-89bf-6b63dfb67a4d.png",
|
|
42317
|
+
IMAGE_09: "https://easy-email-m-ryan.vercel.app/images/be34fb18-32ad-441c-84d8-3c0e9ba9f742-ad2ea5ff-5d0b-446b-bd7d-8e2ab5afdd16.png",
|
|
42318
|
+
IMAGE_10: "https://easy-email-m-ryan.vercel.app/images/6a1e6292-469e-452a-bbae-44e4b5ff7463-05e543b6-c951-44ce-ae27-ca1282c77f52.png",
|
|
42319
|
+
IMAGE_11: "https://easy-email-m-ryan.vercel.app/images/39b25f35-7ca9-4264-8502-41f430f89cf5-bcdc91c2-da3c-4fef-99c0-62b77c5a0f1f.png",
|
|
42320
|
+
IMAGE_12: "https://easy-email-m-ryan.vercel.app/images/eaa83007-f6f5-47d9-acbe-bb98065eaf20-b7c46090-73bd-4d4b-bd31-2368f7b4064f.png",
|
|
42321
|
+
IMAGE_13: "https://easy-email-m-ryan.vercel.app/images/9dec87bb-0a6d-429f-ac23-0ee636e6428d-219dee7e-85bb-4fba-9bf3-e98762e80409.png",
|
|
42322
|
+
IMAGE_14: "https://easy-email-m-ryan.vercel.app/images/d285da5e-b0c0-4895-84ac-42f83b4d603b-64042d20-be6a-45de-819c-8312f778a38d.png",
|
|
42323
|
+
IMAGE_15: "https://easy-email-m-ryan.vercel.app/images/f69f48af-5b15-40aa-91c4-81d601d1357b-083dc99d-02a6-40d9-ae28-0662bd078b5d.png",
|
|
42324
|
+
IMAGE_16: "https://easy-email-m-ryan.vercel.app/images/9cce6b16-5a98-4ddb-b1a1-6cec2cf56891-c3acb856-8ab8-4cfb-93f9-2a0747678b8b.png",
|
|
42325
|
+
IMAGE_17: "https://easy-email-m-ryan.vercel.app/images/d9795c1d-fa32-4adb-ab25-30b7cfe87936-df21314f-6f05-4550-80b3-9ab1107e8fbe.png",
|
|
42326
|
+
IMAGE_18: "https://easy-email-m-ryan.vercel.app/images/82f6f893-43ed-4f3d-9a17-4740bda844de-3318b36c-199d-46fe-96b8-38d1f17ef0c1.png",
|
|
42327
|
+
IMAGE_19: "https://easy-email-m-ryan.vercel.app/images/f1ece227-e050-4751-b064-aaeeabd5bfde-d459e9a2-b192-417b-8a77-2297b29e814e.png",
|
|
42328
|
+
IMAGE_20: "https://easy-email-m-ryan.vercel.app/images/585b48f6-ee7c-4d1a-8619-4d2edea09be6-07113335-5d19-464a-adef-2be50682ce72.png",
|
|
42329
|
+
IMAGE_21: "https://easy-email-m-ryan.vercel.app/images/9755d667-289e-405c-b84a-adf5db91ea4d-c03c409b-dd9b-40e9-840a-6a64e1df594e.png",
|
|
42330
|
+
IMAGE_22: "https://easy-email-m-ryan.vercel.app/images/7487ce49-cd69-4651-8da3-807c54357258-defaaf0a-1756-4b83-9a94-51dcdbfeb84f.png",
|
|
42331
|
+
IMAGE_23: "https://easy-email-m-ryan.vercel.app/images/c3463b9e-baff-41c8-95ee-01c5a79259bd-8062ab05-baa5-45d2-9959-4935d4ff2005.png",
|
|
42332
|
+
IMAGE_24: "https://easy-email-m-ryan.vercel.app/images/1f45e84a-5c84-45ce-9d27-df6ffb55bcdd-cbf126f4-b372-4ea9-a354-0dc27be4ce2f.png",
|
|
42333
|
+
IMAGE_25: "https://easy-email-m-ryan.vercel.app/images/6b8b234e-2306-48f9-90ed-056c13201a83-492073c3-258f-4f1b-91fa-4a8ae723aa2c.png",
|
|
42334
|
+
IMAGE_26: "https://easy-email-m-ryan.vercel.app/images/aa50c2c9-8e3b-4af2-b029-337ec549ec10-baacd015-2e3f-4326-b3ab-bde84a7c456b.png",
|
|
42335
|
+
IMAGE_27: "https://easy-email-m-ryan.vercel.app/images/9e935e54-a97e-4fbb-a2fb-73e351a35eed-479ef4d1-9460-48b2-934d-84d77044b98d.png",
|
|
42336
|
+
IMAGE_28: "https://easy-email-m-ryan.vercel.app/images/799564d8-3082-4fdc-86ed-8c4b3510934f-3f8ccbaa-7b6b-49b7-a836-21fa88f996fc.png",
|
|
42337
|
+
IMAGE_29: "https://easy-email-m-ryan.vercel.app/images/af34a548-c339-4a9e-85fe-11bf90c083eb-46fef91d-7307-4e91-aae0-460da1c48629.png",
|
|
42338
|
+
IMAGE_30: "https://easy-email-m-ryan.vercel.app/images/84014a93-429c-479c-b9ed-0c568f58a288-ca76cdf2-92d3-4552-bc95-3a8dd4c9cd0b.png",
|
|
42339
|
+
IMAGE_31: "https://easy-email-m-ryan.vercel.app/images/dd1584fb-cb60-42c9-80c7-5545e16130ca-226ba72b-ce9e-4948-ad0d-347381fb96c5.png",
|
|
42340
|
+
IMAGE_32: "https://easy-email-m-ryan.vercel.app/images/76e3d8e2-697d-484c-a989-715bd234b575-37bde239-2e2d-450a-8e93-d62c39cb94a3.png",
|
|
42341
|
+
IMAGE_33: "https://easy-email-m-ryan.vercel.app/images/898b791e-c8fc-4bc5-bf1e-47a0351284ce-fdee9617-9848-49e7-82b6-36095f417a3e.png",
|
|
42342
|
+
IMAGE_34: "https://easy-email-m-ryan.vercel.app/images/49662d27-6e14-4e75-a942-946f0af25a51-e9aa2ead-98e4-4f70-8073-7b5aaafaa367.png",
|
|
42343
|
+
IMAGE_35: "https://easy-email-m-ryan.vercel.app/images/d2905fb1-9fc1-49c0-90b0-806877c38cd2-f2e05655-4e6c-41b0-a028-990448a716dc.png",
|
|
42344
|
+
IMAGE_36: "https://easy-email-m-ryan.vercel.app/images/9c3e9949-1be7-42b5-ad48-44f0e1c89c2e-2ee3cbac-e45e-414d-96ad-9dae3621cf14.png",
|
|
42345
|
+
IMAGE_37: "https://easy-email-m-ryan.vercel.app/images/1865e3a6-a762-4bd9-9644-96ae6b27a83a-176a20c7-5768-400c-b2eb-701500cee17c.png",
|
|
42346
|
+
IMAGE_38: "https://easy-email-m-ryan.vercel.app/images/2a6d82e2-d1f6-4e30-ae05-1afe3cd03e70-22d186b0-c2f1-4aee-b33b-869cae26412e.png",
|
|
42347
|
+
IMAGE_39: "https://easy-email-m-ryan.vercel.app/images/9f97bda2-82d6-47e7-80c1-40be94d5491f-88233d55-8715-43cd-9232-246440e33cd6.png",
|
|
42348
|
+
IMAGE_40: "https://easy-email-m-ryan.vercel.app/images/b8f00c77-12b0-4e61-a85e-96918c0035dc-b8344b64-8e79-424d-a974-8e13e6b1e7f8.png",
|
|
42349
|
+
IMAGE_41: "https://easy-email-m-ryan.vercel.app/images/5fc6be85-0205-4ca9-bb9a-eb9335f94af2-2d41c4bb-2c00-4fe7-8b32-067e92df3ab3.png",
|
|
42350
|
+
IMAGE_42: "https://easy-email-m-ryan.vercel.app/images/f6c9c054-f35a-4af7-957f-c7a6209972eb-7e3b42bf-8d97-466d-8662-8d3b1786e8b8.png",
|
|
42351
|
+
IMAGE_43: "https://easy-email-m-ryan.vercel.app/images/80e108b0-3d70-442a-93c1-3fcc091253c6-3dc61b44-6072-413a-ae28-a551577b7677.png",
|
|
42352
|
+
IMAGE_44: "https://easy-email-m-ryan.vercel.app/images/14b9e878-7208-48f4-94d0-51161b79010a-fb55ae68-a7ce-4bae-830d-331d368f0f32.png",
|
|
42353
|
+
IMAGE_45: "https://easy-email-m-ryan.vercel.app/images/b42f3cd8-01fc-4650-a32d-b584b05e78c3-5e408f98-e9e6-43de-97af-91b2732760df.png",
|
|
42354
|
+
IMAGE_46: "https://easy-email-m-ryan.vercel.app/images/e737972a-d884-440b-96d3-66f703dd110b-9f1d0d18-fb45-4a54-a2d0-65bc5b168f8a.png",
|
|
42355
|
+
IMAGE_47: "https://easy-email-m-ryan.vercel.app/images/0e3ae071-247a-4e69-8b60-8009477180b9-197205c2-2ae7-420f-94aa-78440226beaa.png",
|
|
42356
|
+
IMAGE_48: "https://easy-email-m-ryan.vercel.app/images/0ec46619-4dd0-4293-88fb-14656ac7d33c-0936deed-a88c-4e3d-90bf-4fe67b295659",
|
|
42357
|
+
IMAGE_49: "https://easy-email-m-ryan.vercel.app/images/01830aec-d044-4d2a-9519-aac2901f4760-776602f7-021b-4142-a2d0-446aca5e0418",
|
|
42358
|
+
IMAGE_50: "https://easy-email-m-ryan.vercel.app/images/9f1cee25-f9b4-4539-b4ea-3109584c0a54-0692c4fb-46ce-452c-8573-fcce74852cba",
|
|
42359
|
+
IMAGE_51: "https://easy-email-m-ryan.vercel.app/images/e138143f-7071-44bc-8470-7d56850e527c-f515254e-67b8-4b68-b86f-7993e960d893",
|
|
42360
|
+
IMAGE_52: "https://easy-email-m-ryan.vercel.app/images/ac75b655-b57d-40b9-a201-8163eeb6a579-1f894e6f-18ac-42c4-9227-7488433586bc.png",
|
|
42361
|
+
IMAGE_53: "https://easy-email-m-ryan.vercel.app/images/3c505a1b-575a-40fb-83c1-6c4a11a6d478-9e466e35-af9e-406a-b4cc-b86f9d0b0419.png",
|
|
42362
|
+
IMAGE_54: "https://easy-email-m-ryan.vercel.app/images/7f98eeec-9422-48b5-9b57-939a24418b92-a6346a63-b393-49c2-9911-ee1a9a1ffd02.png",
|
|
42363
|
+
IMAGE_55: "https://easy-email-m-ryan.vercel.app/images/a7f5ae44-418b-40e1-b8a5-8162cf8bbd87-156cc8dd-3a19-4638-8c26-e28783e50952.png",
|
|
42364
|
+
IMAGE_56: "https://easy-email-m-ryan.vercel.app/images/efdeeced-1eb7-465f-8370-a3b000634ba2-0a4d1794-6ca7-44fa-a1c6-04e3bde8eb56.png",
|
|
42365
|
+
IMAGE_57: "https://easy-email-m-ryan.vercel.app/images/425c6017-2c30-41d7-8930-08300492c6d4-a0859ca3-5213-484c-9170-2d51329407cc.png",
|
|
42366
|
+
IMAGE_58: "https://easy-email-m-ryan.vercel.app/images/858ea699-cf65-469d-bd9e-70adea729bb4-c4e7a711-27b6-4865-9b32-516c41cebddf.png",
|
|
42367
|
+
IMAGE_59: "https://easy-email-m-ryan.vercel.app/images/06ca521d-9728-4de6-a709-1b75a828bfc3-2a9b1224-3d71-43b8-b52f-e7cdcdc9107b.png",
|
|
42368
|
+
IMAGE_60: "https://easy-email-m-ryan.vercel.app/images/199eacfa-daf8-4dd1-a356-225a265a88a4-e8432435-a2bb-4ec2-a3e9-ee1757d8b44b",
|
|
42369
|
+
IMAGE_61: "https://easy-email-m-ryan.vercel.app/images/f43b67dc-cc30-4533-b2ca-4689292aab4d-40bc844d-5362-451f-a839-69e86f7a3113",
|
|
42370
|
+
IMAGE_62: "https://easy-email-m-ryan.vercel.app/images/318e911c-a57b-4768-9c79-0e49c2953e7a-dbe0eb3c-0b4b-495a-a469-a15b46c5a0cc",
|
|
42371
|
+
IMAGE_63: "https://easy-email-m-ryan.vercel.app/images/ed70ddb1-1344-4245-ab1e-beae36ed44b4-21a80cb3-a928-4857-973b-98992fdec74f",
|
|
42372
|
+
IMAGE_64: "https://easy-email-m-ryan.vercel.app/images/fb7dd6fa-12c1-41e1-8744-91d0f861ec57-0fee9bda-2381-4c54-a24d-bd644384b9aa",
|
|
42373
|
+
IMAGE_65: "https://easy-email-m-ryan.vercel.app/images/7bf8c363-17bd-472d-8cca-96f5d4b64292-9ab34957-15d3-4068-8e83-cc283d8e400d",
|
|
42374
|
+
IMAGE_66: "https://easy-email-m-ryan.vercel.app/images/0330a1e9-e814-4be8-83f0-ee1dbabf44a0-6e35a585-92ec-4570-875b-866b59927583",
|
|
42375
|
+
IMAGE_67: "https://easy-email-m-ryan.vercel.app/images/a7deb6bc-db2b-4273-bf25-002bb148bf5a-ed5e9b17-15a9-4e0f-9874-c3219d48b2b4",
|
|
42376
|
+
IMAGE_68: "https://easy-email-m-ryan.vercel.app/images/52c50319-e3a9-401b-9057-bd6531870f10-aa79ec5d-76d2-4d48-a99e-2ccd9d9c285b",
|
|
42377
|
+
IMAGE_69: "https://easy-email-m-ryan.vercel.app/images/9994cef3-6205-4013-8993-b037d067df64-f5d03db4-6bb4-4af4-b35a-0b6d512eaff4",
|
|
42378
|
+
IMAGE_70: "https://easy-email-m-ryan.vercel.app/images/e5dd7a7e-70d7-483f-80cc-0c5b41107101-75dcedc7-4a34-4d03-97ee-bf32163afa0a",
|
|
42379
|
+
IMAGE_71: "https://easy-email-m-ryan.vercel.app/images/53277265-8e54-43d0-b9d0-d34cd1639861-adb7a48a-8382-43a1-ad59-7c84764a3b21.png"
|
|
42367
42380
|
};
|
|
42368
42381
|
ImageManager.add(defaultImagesMap);
|
|
42369
42382
|
function getImg(name) {
|
|
@@ -44553,6 +44566,7 @@ function Toolbar() {
|
|
|
44553
44566
|
const { focusIdx: focusIdx2, setFocusIdx } = useFocusIdx();
|
|
44554
44567
|
const { focusBlockRect } = useFocusBlockLayout();
|
|
44555
44568
|
const { modal, setModalVisible } = useAddToCollection();
|
|
44569
|
+
const props = useEditorProps();
|
|
44556
44570
|
const isPage = (focusBlock2 == null ? void 0 : focusBlock2.type) === BasicType.PAGE;
|
|
44557
44571
|
const handleAddToCollection = () => {
|
|
44558
44572
|
if (document.activeElement instanceof HTMLElement) {
|
|
@@ -44630,7 +44644,7 @@ function Toolbar() {
|
|
|
44630
44644
|
}), /* @__PURE__ */ React__default.createElement(ToolItem, {
|
|
44631
44645
|
iconName: "icon-copy",
|
|
44632
44646
|
onClick: handleCopy
|
|
44633
|
-
}), /* @__PURE__ */ React__default.createElement(ToolItem, {
|
|
44647
|
+
}), props.onAddCollection && /* @__PURE__ */ React__default.createElement(ToolItem, {
|
|
44634
44648
|
iconName: "icon-collection",
|
|
44635
44649
|
onClick: handleAddToCollection
|
|
44636
44650
|
}), /* @__PURE__ */ React__default.createElement(ToolItem, {
|