easy-email-extensions 3.1.36 → 3.1.41
Sign up to get free protection for your applications and to get access to all the features.
- package/License +22 -0
- package/lib/AttributePanel/AttributePanel.d.ts +3 -3
- package/lib/AttributePanel/components/UI/Help/index.d.ts +7 -7
- package/lib/AttributePanel/components/UI/HtmlEditor.d.ts +5 -5
- package/lib/AttributePanel/components/attributes/Align.d.ts +3 -3
- package/lib/AttributePanel/components/attributes/AttributesPanelWrapper/index.d.ts +6 -6
- package/lib/AttributePanel/components/attributes/Background.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/BackgroundColor.d.ts +3 -3
- package/lib/AttributePanel/components/attributes/Border.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/BorderColor.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/BorderStyle.d.ts +5 -5
- package/lib/AttributePanel/components/attributes/BorderWidth.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/Color.d.ts +4 -4
- package/lib/AttributePanel/components/attributes/ContainerBackgroundColor.d.ts +3 -3
- package/lib/AttributePanel/components/attributes/Decoration.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/Direction.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/FontFamily.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/FontSize.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/FontStyle.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/FontWeight.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/Height.d.ts +3 -3
- package/lib/AttributePanel/components/attributes/LetterSpacing.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/LineHeight.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/Link.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/Margin.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/MergeTags.d.ts +6 -6
- package/lib/AttributePanel/components/attributes/NavbarLinkPadding.d.ts +3 -3
- package/lib/AttributePanel/components/attributes/Padding.d.ts +5 -5
- package/lib/AttributePanel/components/attributes/TextAlign.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/TextDecoration.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/TextTransform.d.ts +1 -1
- package/lib/AttributePanel/components/attributes/VerticalAlign.d.ts +3 -3
- package/lib/AttributePanel/components/attributes/Width.d.ts +5 -5
- package/lib/AttributePanel/components/attributes/index.d.ts +29 -29
- package/lib/AttributePanel/components/blocks/Accordion/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/AccordionElement/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/AccordionText/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/AccordionTitle/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Button/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Carousel/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Column/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Divider/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Group/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Hero/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Image/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Navbar/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Page/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Raw/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Section/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Social/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Spacer/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Table/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Text/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/Wrapper/index.d.ts +1 -1
- package/lib/AttributePanel/components/blocks/index.d.ts +42 -42
- package/lib/AttributePanel/components/provider/PresetColorsProvider/index.d.ts +6 -6
- package/lib/AttributePanel/components/provider/SelectionRangeProvider/index.d.ts +6 -6
- package/lib/AttributePanel/hooks/useSelectionRange.d.ts +6 -6
- package/lib/AttributePanel/index.d.ts +3 -3
- package/lib/AttributePanel/utils/BlockAttributeConfigurationManager.d.ts +10 -10
- package/lib/AttributePanel/utils/InputNumberAdapter.d.ts +2 -2
- package/lib/AttributePanel/utils/PromiseEach.d.ts +1 -1
- package/lib/AttributePanel/utils/Uploader.d.ts +35 -35
- package/lib/AttributePanel/utils/awaitForElement.d.ts +4 -4
- package/lib/AttributePanel/utils/classnames.d.ts +1 -1
- package/lib/AttributePanel/utils/getImg.d.ts +8 -8
- package/lib/AttributePanel/utils/onDrag.d.ts +10 -10
- package/lib/AttributePanel/utils/previewLoadImage.d.ts +1 -1
- package/lib/BlockLayer/components/BlockTree/index.d.ts +51 -51
- package/lib/BlockLayer/components/BlockTree/transparentImage.d.ts +1 -1
- package/lib/BlockLayer/components/ContextMenu/index.d.ts +14 -14
- package/lib/BlockLayer/components/EyeIcon/index.d.ts +7 -7
- package/lib/BlockLayer/hooks/useAvatarWrapperDrop.d.ts +24 -24
- package/lib/BlockLayer/index.d.ts +10 -10
- package/lib/InteractivePrompt/components/FocusTooltip.d.ts +1 -1
- package/lib/InteractivePrompt/components/HoverTooltip.d.ts +1 -1
- package/lib/InteractivePrompt/components/Toolbar.d.ts +1 -1
- package/lib/InteractivePrompt/index.d.ts +1 -1
- package/lib/InteractivePrompt/utils/awaitForElement.d.ts +4 -4
- package/lib/ShortcutToolbar/ShortcutToolbar.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlockMaskWrapper/index.d.ts +6 -6
- package/lib/ShortcutToolbar/components/BlocksPanel/index.d.ts +2 -2
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/AccordionBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/ButtonBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/CarouselBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/ColumnBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/DividerBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/GroupBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/HeroBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/ImageBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/NavbarBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/RawBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/SectionBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/SocialBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/SpacerBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/TextBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/WrapperBlockItem/index.d.ts +1 -1
- package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/index.d.ts +18 -18
- package/lib/ShortcutToolbar/components/Picture/index.d.ts +7 -7
- package/lib/ShortcutToolbar/index.d.ts +4 -4
- package/lib/ShortcutToolbar/utils/BlockMarketManager.d.ts +32 -32
- package/lib/ShortcutToolbar/utils/getImg.d.ts +68 -68
- package/lib/SimpleLayout/SimpleLayout.d.ts +4 -4
- package/lib/SimpleLayout/index.d.ts +1 -1
- package/lib/SourceCodePanel/index.d.ts +1 -1
- package/lib/components/AddToCollection/index.d.ts +5 -5
- package/lib/components/Form/AddFont.d.ts +1 -1
- package/lib/components/Form/AutoComplete.d.ts +11 -11
- package/lib/components/Form/CheckBoxGroup.d.ts +14 -14
- package/lib/components/Form/CodemirrorEditor/index.d.ts +8 -8
- package/lib/components/Form/ColorPicker.d.ts +10 -10
- package/lib/components/Form/EditTab.d.ts +10 -10
- package/lib/components/Form/ImageUploader/index.d.ts +8 -8
- package/lib/components/Form/InlineTextField/index.d.ts +7 -7
- package/lib/components/Form/Input.d.ts +7 -7
- package/lib/components/Form/InputWithUnit.d.ts +10 -10
- package/lib/components/Form/RadioGroup.d.ts +13 -13
- package/lib/components/Form/RichTextField/index.d.ts +2 -2
- package/lib/components/Form/RichTextToolBar/RichTextToolBar.d.ts +3 -3
- package/lib/components/Form/RichTextToolBar/components/FontFamily/index.d.ts +3 -3
- package/lib/components/Form/RichTextToolBar/components/FontSizeList/index.d.ts +3 -3
- package/lib/components/Form/RichTextToolBar/components/Heading/index.d.ts +3 -3
- package/lib/components/Form/RichTextToolBar/components/Link/index.d.ts +12 -12
- package/lib/components/Form/RichTextToolBar/components/ToolItem/index.d.ts +7 -7
- package/lib/components/Form/RichTextToolBar/components/Tools/Tools.d.ts +5 -5
- package/lib/components/Form/RichTextToolBar/components/Tools/index.d.ts +1 -1
- package/lib/components/Form/RichTextToolBar/index.d.ts +1 -1
- package/lib/components/Form/Select.d.ts +11 -11
- package/lib/components/Form/UploadField.d.ts +8 -8
- package/lib/components/Form/enhancer.d.ts +20 -20
- package/lib/components/Form/index.d.ts +32 -32
- package/lib/components/RenderCount/index.d.ts +1 -1
- package/lib/components/ShadowDom/index.d.ts +2 -2
- package/lib/hooks/useAddToCollection.d.ts +6 -6
- package/lib/index.d.ts +10 -10
- package/lib/index2.js +263 -220
- package/lib/index2.js.map +1 -1
- package/lib/index3.js.map +1 -1
- package/lib/style.css +1 -1
- package/lib/utils/awaitForElement.d.ts +4 -4
- package/lib/utils/classnames.d.ts +1 -1
- package/lib/utils/getBlockTitle.d.ts +2 -2
- package/lib/utils/getContextMergeTags.d.ts +7 -7
- package/lib/utils/getIconNameByBlockType.d.ts +1 -1
- package/lib/utils/getPreviewClassName.d.ts +1 -1
- package/package.json +2 -2
- package/readme.md +138 -138
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) {
|
@@ -38305,12 +38305,17 @@ const PresetColorsProvider = (props) => {
|
|
38305
38305
|
setCurrentColors(newColors);
|
38306
38306
|
}
|
38307
38307
|
}, [currentColors, setCurrentColors]);
|
38308
|
-
|
38309
|
-
|
38308
|
+
const value = useMemo(() => {
|
38309
|
+
return {
|
38310
38310
|
colors: currentColors,
|
38311
38311
|
addCurrentColor
|
38312
|
-
}
|
38313
|
-
},
|
38312
|
+
};
|
38313
|
+
}, [addCurrentColor, currentColors]);
|
38314
|
+
return useMemo(() => {
|
38315
|
+
return /* @__PURE__ */ React__default.createElement(PresetColorsContext.Provider, {
|
38316
|
+
value
|
38317
|
+
}, props.children);
|
38318
|
+
}, [props.children, value]);
|
38314
38319
|
};
|
38315
38320
|
function ColorPicker(props) {
|
38316
38321
|
const { colors: presetColors, addCurrentColor } = useContext(PresetColorsContext);
|
@@ -38463,9 +38468,7 @@ function enhancer(Component2, changeAdapter) {
|
|
38463
38468
|
const [currentValue, setCurrentValue] = useState(value);
|
38464
38469
|
const debounceCallbackChange = useCallback(lodash.exports.debounce((val) => {
|
38465
38470
|
onChange(val);
|
38466
|
-
},
|
38467
|
-
maxWait: 500
|
38468
|
-
}), [onChange]);
|
38471
|
+
}, 500, {}), [onChange]);
|
38469
38472
|
useEffect(() => {
|
38470
38473
|
setCurrentValue(value);
|
38471
38474
|
}, [value]);
|
@@ -39157,105 +39160,10 @@ function AddFont() {
|
|
39157
39160
|
}
|
39158
39161
|
});
|
39159
39162
|
}
|
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
39163
|
const AttributesPanelWrapper = (props) => {
|
39255
39164
|
const { focusBlock: focusBlock2, setFocusBlock } = useBlock();
|
39256
|
-
const { mergeTags: mergeTags2 } = useEditorProps();
|
39257
39165
|
const block2 = focusBlock2 && BlockManager.getBlockByType(focusBlock2.type);
|
39258
|
-
|
39166
|
+
useCallback((val) => {
|
39259
39167
|
if (!focusBlock2)
|
39260
39168
|
return;
|
39261
39169
|
focusBlock2.data.hidden = val;
|
@@ -39283,13 +39191,7 @@ const AttributesPanelWrapper = (props) => {
|
|
39283
39191
|
}, /* @__PURE__ */ React__default.createElement(EyeIcon, null), /* @__PURE__ */ React__default.createElement(TextStyle, {
|
39284
39192
|
variation: "strong",
|
39285
39193
|
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", {
|
39194
|
+
}, `${block2.name} attributes`)), /* @__PURE__ */ React__default.createElement(Stack$6.Item, null, props.extra))))), /* @__PURE__ */ React__default.createElement("div", {
|
39293
39195
|
style: __spreadValues({ padding: "0px" }, props.style)
|
39294
39196
|
}, props.children));
|
39295
39197
|
};
|
@@ -39362,12 +39264,6 @@ function Page() {
|
|
39362
39264
|
helpText: "Allows you to control on which breakpoint the layout should go desktop/mobile.",
|
39363
39265
|
name: `${focusIdx2}.data.value.breakpoint`,
|
39364
39266
|
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
39267
|
}))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
|
39372
39268
|
name: "1",
|
39373
39269
|
header: "Theme Setting"
|
@@ -40303,6 +40199,116 @@ function BorderColor() {
|
|
40303
40199
|
});
|
40304
40200
|
}, [focusIdx2]);
|
40305
40201
|
}
|
40202
|
+
function getContextMergeTags(mergeTags2, context, idx) {
|
40203
|
+
const loop2 = (currentIdx, combineMergeTags) => {
|
40204
|
+
var _a, _b;
|
40205
|
+
const parentBlockData = lodash.exports.get(context, currentIdx);
|
40206
|
+
if (!parentBlockData)
|
40207
|
+
return combineMergeTags;
|
40208
|
+
const parentBlock = BlockManager.getBlockByType(parentBlockData.type);
|
40209
|
+
if (parentBlock && parentBlock.render) {
|
40210
|
+
const dataSource = (_b = (_a = parentBlockData.data) == null ? void 0 : _a.value) == null ? void 0 : _b.dataSource;
|
40211
|
+
if (!dataSource)
|
40212
|
+
return combineMergeTags;
|
40213
|
+
Object.keys(dataSource).forEach((key) => {
|
40214
|
+
let formatKey = dataSource[key];
|
40215
|
+
const loopFormatKey = (currentLoopKeyIdx) => {
|
40216
|
+
const currentParentIdx = getParentIdx(currentLoopKeyIdx);
|
40217
|
+
if (currentParentIdx) {
|
40218
|
+
const currentBlockData = lodash.exports.get(context, currentParentIdx);
|
40219
|
+
if (!currentBlockData)
|
40220
|
+
return formatKey;
|
40221
|
+
currentBlockData.data.value.dataSource && Object.keys(currentBlockData.data.value.dataSource).forEach((item2) => {
|
40222
|
+
formatKey = formatKey.replace(item2, currentBlockData.data.value.dataSource[item2].replace(/{{([^}}]+)}}/g, "$1"));
|
40223
|
+
});
|
40224
|
+
loopFormatKey(currentParentIdx);
|
40225
|
+
}
|
40226
|
+
};
|
40227
|
+
loopFormatKey(currentIdx);
|
40228
|
+
const dataSourcePath = formatKey.replace(/{{([^}}]+)}}/g, "$1");
|
40229
|
+
combineMergeTags = __spreadValues({
|
40230
|
+
[key]: lodash.exports.get(combineMergeTags, dataSourcePath)
|
40231
|
+
}, combineMergeTags);
|
40232
|
+
});
|
40233
|
+
}
|
40234
|
+
const parentIdx = getParentIdx(currentIdx);
|
40235
|
+
if (!parentIdx)
|
40236
|
+
return combineMergeTags;
|
40237
|
+
return loop2(parentIdx, combineMergeTags);
|
40238
|
+
};
|
40239
|
+
return loop2(idx, lodash.exports.cloneDeep(mergeTags2));
|
40240
|
+
}
|
40241
|
+
const MergeTags = React__default.memo((props) => {
|
40242
|
+
const [expandedKeys, setExpandedKeys] = useState([]);
|
40243
|
+
const { focusIdx: focusIdx2 } = useFocusIdx();
|
40244
|
+
const {
|
40245
|
+
mergeTags: mergeTags2 = {},
|
40246
|
+
mergeTagGenerate = (m) => `{{${m}}}`,
|
40247
|
+
renderMergeTagContent
|
40248
|
+
} = useEditorProps();
|
40249
|
+
const { values: values2 } = useBlock();
|
40250
|
+
const contextMergeTags = useMemo(() => getContextMergeTags(mergeTags2, values2, focusIdx2), [mergeTags2, values2, focusIdx2]);
|
40251
|
+
const treeOptions = useMemo(() => {
|
40252
|
+
const treeData = [];
|
40253
|
+
const deep = (key, title2, parent2, mapData = []) => {
|
40254
|
+
const currentMapData = {
|
40255
|
+
key,
|
40256
|
+
value: key,
|
40257
|
+
title: title2,
|
40258
|
+
children: []
|
40259
|
+
};
|
40260
|
+
mapData.push(currentMapData);
|
40261
|
+
const current = parent2[title2];
|
40262
|
+
if (current && typeof current === "object") {
|
40263
|
+
Object.keys(current).map((childKey) => deep(key + "." + childKey, childKey, current, currentMapData.children));
|
40264
|
+
}
|
40265
|
+
};
|
40266
|
+
Object.keys(contextMergeTags).map((key) => deep(key, key, contextMergeTags, treeData));
|
40267
|
+
return treeData;
|
40268
|
+
}, [contextMergeTags]);
|
40269
|
+
const onSelect = useCallback((key) => {
|
40270
|
+
const value = lodash.exports.get(contextMergeTags, key);
|
40271
|
+
if (lodash.exports.isObject(value)) {
|
40272
|
+
setExpandedKeys((keys2) => {
|
40273
|
+
if (keys2.includes(key)) {
|
40274
|
+
return keys2.filter((k) => k !== key);
|
40275
|
+
} else {
|
40276
|
+
return [...keys2, key];
|
40277
|
+
}
|
40278
|
+
});
|
40279
|
+
return;
|
40280
|
+
}
|
40281
|
+
return props.onChange(mergeTagGenerate(key));
|
40282
|
+
}, [contextMergeTags, props, mergeTagGenerate]);
|
40283
|
+
const mergeTagContent = useMemo(() => renderMergeTagContent ? renderMergeTagContent({
|
40284
|
+
onChange: props.onChange,
|
40285
|
+
isSelect: Boolean(props.isSelect),
|
40286
|
+
value: props.value
|
40287
|
+
}) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null), [renderMergeTagContent, props.onChange, props.isSelect, props.value]);
|
40288
|
+
if (renderMergeTagContent) {
|
40289
|
+
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, mergeTagContent);
|
40290
|
+
}
|
40291
|
+
return /* @__PURE__ */ React__default.createElement("div", {
|
40292
|
+
style: { color: "#333" }
|
40293
|
+
}, props.isSelect ? /* @__PURE__ */ React__default.createElement(TreeSelect$1, {
|
40294
|
+
value: props.value,
|
40295
|
+
size: "small",
|
40296
|
+
dropdownMenuStyle: { maxHeight: 400, overflow: "auto" },
|
40297
|
+
placeholder: "Please select",
|
40298
|
+
treeData: treeOptions,
|
40299
|
+
onChange: (val) => onSelect(val)
|
40300
|
+
}) : /* @__PURE__ */ React__default.createElement(Tree$1, {
|
40301
|
+
expandedKeys,
|
40302
|
+
onExpand: setExpandedKeys,
|
40303
|
+
selectedKeys: [],
|
40304
|
+
treeData: treeOptions,
|
40305
|
+
onSelect: (vals) => onSelect(vals[0]),
|
40306
|
+
style: {
|
40307
|
+
maxHeight: 400,
|
40308
|
+
overflow: "auto"
|
40309
|
+
}
|
40310
|
+
}));
|
40311
|
+
});
|
40306
40312
|
const borderStyleOptions = [
|
40307
40313
|
{
|
40308
40314
|
value: "dashed",
|
@@ -41313,6 +41319,40 @@ class BlockAttributeConfigurationManager {
|
|
41313
41319
|
}
|
41314
41320
|
}
|
41315
41321
|
__publicField(BlockAttributeConfigurationManager, "map", __spreadValues({}, blocks));
|
41322
|
+
const SelectionRangeContext = React__default.createContext({
|
41323
|
+
selectionRange: null,
|
41324
|
+
setSelectionRange: () => {
|
41325
|
+
}
|
41326
|
+
});
|
41327
|
+
const SelectionRangeProvider = (props) => {
|
41328
|
+
const [selectionRange, setSelectionRange] = useState(null);
|
41329
|
+
useEffect(() => {
|
41330
|
+
const onSelectionChange = () => {
|
41331
|
+
try {
|
41332
|
+
const range2 = getShadowRoot().getSelection().getRangeAt(0);
|
41333
|
+
if (range2) {
|
41334
|
+
setSelectionRange(range2);
|
41335
|
+
}
|
41336
|
+
} catch (error2) {
|
41337
|
+
}
|
41338
|
+
};
|
41339
|
+
document.addEventListener("selectionchange", onSelectionChange);
|
41340
|
+
return () => {
|
41341
|
+
document.removeEventListener("selectionchange", onSelectionChange);
|
41342
|
+
};
|
41343
|
+
}, []);
|
41344
|
+
const value = useMemo(() => {
|
41345
|
+
return {
|
41346
|
+
selectionRange,
|
41347
|
+
setSelectionRange
|
41348
|
+
};
|
41349
|
+
}, [selectionRange]);
|
41350
|
+
return useMemo(() => {
|
41351
|
+
return /* @__PURE__ */ React__default.createElement(SelectionRangeContext.Provider, {
|
41352
|
+
value
|
41353
|
+
}, props.children);
|
41354
|
+
}, [props.children, value]);
|
41355
|
+
};
|
41316
41356
|
function AttributePanel() {
|
41317
41357
|
const { values: values2, focusBlock: focusBlock2 } = useBlock();
|
41318
41358
|
const { initialized } = useEditorContext();
|
@@ -41322,7 +41362,9 @@ function AttributePanel() {
|
|
41322
41362
|
const shadowRoot = getShadowRoot();
|
41323
41363
|
if (!value || !initialized)
|
41324
41364
|
return null;
|
41325
|
-
return /* @__PURE__ */ React__default.createElement(
|
41365
|
+
return /* @__PURE__ */ React__default.createElement(SelectionRangeProvider, null, /* @__PURE__ */ React__default.createElement(PresetColorsProvider, null, Com ? /* @__PURE__ */ React__default.createElement(Com, {
|
41366
|
+
key: focusIdx2
|
41367
|
+
}) : /* @__PURE__ */ React__default.createElement("div", {
|
41326
41368
|
style: { marginTop: 200, padding: "0 50px" }
|
41327
41369
|
}, /* @__PURE__ */ React__default.createElement(TextStyle, {
|
41328
41370
|
size: "extraLarge"
|
@@ -41336,27 +41378,10 @@ function AttributePanel() {
|
|
41336
41378
|
outline: none;
|
41337
41379
|
cursor: text;
|
41338
41380
|
}
|
41339
|
-
`), shadowRoot));
|
41381
|
+
`), shadowRoot)));
|
41340
41382
|
}
|
41341
|
-
function
|
41342
|
-
const {
|
41343
|
-
const { mergeTags: mergeTags2 } = useEditorProps();
|
41344
|
-
const [selectionRange, setSelectionRange] = useState(null);
|
41345
|
-
useEffect(() => {
|
41346
|
-
const onSelectionChange = () => {
|
41347
|
-
try {
|
41348
|
-
const range2 = getShadowRoot().getSelection().getRangeAt(0);
|
41349
|
-
if (range2) {
|
41350
|
-
setSelectionRange(range2);
|
41351
|
-
}
|
41352
|
-
} catch (error2) {
|
41353
|
-
}
|
41354
|
-
};
|
41355
|
-
document.addEventListener("selectionchange", onSelectionChange);
|
41356
|
-
return () => {
|
41357
|
-
document.removeEventListener("selectionchange", onSelectionChange);
|
41358
|
-
};
|
41359
|
-
}, []);
|
41383
|
+
function useSelectionRange() {
|
41384
|
+
const { selectionRange, setSelectionRange } = useContext(SelectionRangeContext);
|
41360
41385
|
const restoreRange = useCallback((range2) => {
|
41361
41386
|
const selection = getShadowRoot().getSelection();
|
41362
41387
|
selection.removeAllRanges();
|
@@ -41365,6 +41390,16 @@ function Tools(props) {
|
|
41365
41390
|
newRange.setEnd(range2.endContainer, range2.endOffset);
|
41366
41391
|
selection.addRange(newRange);
|
41367
41392
|
}, []);
|
41393
|
+
return {
|
41394
|
+
selectionRange,
|
41395
|
+
setSelectionRange,
|
41396
|
+
restoreRange
|
41397
|
+
};
|
41398
|
+
}
|
41399
|
+
function Tools(props) {
|
41400
|
+
const { container: container2 } = props;
|
41401
|
+
const { mergeTags: mergeTags2 } = useEditorProps();
|
41402
|
+
const { selectionRange, restoreRange } = useSelectionRange();
|
41368
41403
|
const execCommand = (cmd, val) => {
|
41369
41404
|
if (!container2) {
|
41370
41405
|
console.error("No container");
|
@@ -41619,6 +41654,7 @@ function FieldWrapper(props) {
|
|
41619
41654
|
const _a = props, { input } = _a, rest = __objRest(_a, ["input"]);
|
41620
41655
|
const debounceCallbackChange = useCallback(lodash.exports.debounce((val) => {
|
41621
41656
|
input.onChange(val);
|
41657
|
+
input.onBlur();
|
41622
41658
|
}, 100), [input]);
|
41623
41659
|
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(RichTextToolBar, {
|
41624
41660
|
onChange: debounceCallbackChange
|
@@ -42089,20 +42125,27 @@ function BlockLayer() {
|
|
42089
42125
|
moveBlock(dragNode.key, getChildIdx(dropNode.parentKey, dropPosition > 0 ? dropIndex + 1 : dropIndex));
|
42090
42126
|
}
|
42091
42127
|
}, [moveBlock]);
|
42092
|
-
const blockTreeAllowDrop = useCallback((
|
42093
|
-
|
42094
|
-
|
42095
|
-
|
42096
|
-
const
|
42097
|
-
if (
|
42098
|
-
|
42099
|
-
node.classList.add("arco-tree-node-title-gap-bottom");
|
42128
|
+
const blockTreeAllowDrop = useCallback((() => {
|
42129
|
+
let lastDropResult = false;
|
42130
|
+
return (data) => {
|
42131
|
+
var _a, _b;
|
42132
|
+
const dropResult = allowDrop(data);
|
42133
|
+
if (lodash.exports.isEqual(lastDropResult, dropResult)) {
|
42134
|
+
return dropResult;
|
42100
42135
|
}
|
42101
|
-
|
42102
|
-
|
42103
|
-
|
42104
|
-
|
42105
|
-
|
42136
|
+
lastDropResult = dropResult;
|
42137
|
+
if (dropResult) {
|
42138
|
+
const node = (_b = (_a = document.querySelector(`[data-tree-idx="${dropResult.key}"]`)) == null ? void 0 : _a.parentNode) == null ? void 0 : _b.parentNode;
|
42139
|
+
if (node instanceof HTMLElement) {
|
42140
|
+
removeHightLightClassName();
|
42141
|
+
node.classList.add("arco-tree-node-title-gap-bottom");
|
42142
|
+
}
|
42143
|
+
setDirection(getDirectionFormDropPosition(dropResult.position));
|
42144
|
+
setHoverIdx(dropResult.key);
|
42145
|
+
}
|
42146
|
+
return dropResult;
|
42147
|
+
};
|
42148
|
+
})(), [allowDrop, removeHightLightClassName, setDirection, setHoverIdx]);
|
42106
42149
|
const selectedKeys = useMemo(() => {
|
42107
42150
|
if (!focusIdx2)
|
42108
42151
|
return [];
|
@@ -42301,70 +42344,70 @@ function TextBlockItem() {
|
|
42301
42344
|
})));
|
42302
42345
|
}
|
42303
42346
|
const defaultImagesMap = {
|
42304
|
-
IMAGE_08: "https://
|
42305
|
-
IMAGE_09: "https://
|
42306
|
-
IMAGE_10: "https://
|
42307
|
-
IMAGE_11: "https://
|
42308
|
-
IMAGE_12: "https://
|
42309
|
-
IMAGE_13: "https://
|
42310
|
-
IMAGE_14: "https://
|
42311
|
-
IMAGE_15: "https://
|
42312
|
-
IMAGE_16: "https://
|
42313
|
-
IMAGE_17: "https://
|
42314
|
-
IMAGE_18: "https://
|
42315
|
-
IMAGE_19: "https://
|
42316
|
-
IMAGE_20: "https://
|
42317
|
-
IMAGE_21: "https://
|
42318
|
-
IMAGE_22: "https://
|
42319
|
-
IMAGE_23: "https://
|
42320
|
-
IMAGE_24: "https://
|
42321
|
-
IMAGE_25: "https://
|
42322
|
-
IMAGE_26: "https://
|
42323
|
-
IMAGE_27: "https://
|
42324
|
-
IMAGE_28: "https://
|
42325
|
-
IMAGE_29: "https://
|
42326
|
-
IMAGE_30: "https://
|
42327
|
-
IMAGE_31: "https://
|
42328
|
-
IMAGE_32: "https://
|
42329
|
-
IMAGE_33: "https://
|
42330
|
-
IMAGE_34: "https://
|
42331
|
-
IMAGE_35: "https://
|
42332
|
-
IMAGE_36: "https://
|
42333
|
-
IMAGE_37: "https://
|
42334
|
-
IMAGE_38: "https://
|
42335
|
-
IMAGE_39: "https://
|
42336
|
-
IMAGE_40: "https://
|
42337
|
-
IMAGE_41: "https://
|
42338
|
-
IMAGE_42: "https://
|
42339
|
-
IMAGE_43: "https://
|
42340
|
-
IMAGE_44: "https://
|
42341
|
-
IMAGE_45: "https://
|
42342
|
-
IMAGE_46: "https://
|
42343
|
-
IMAGE_47: "https://
|
42344
|
-
IMAGE_48: "https://
|
42345
|
-
IMAGE_49: "https://
|
42346
|
-
IMAGE_50: "https://
|
42347
|
-
IMAGE_51: "https://
|
42348
|
-
IMAGE_52: "https://
|
42349
|
-
IMAGE_53: "https://
|
42350
|
-
IMAGE_54: "https://
|
42351
|
-
IMAGE_55: "https://
|
42352
|
-
IMAGE_56: "https://
|
42353
|
-
IMAGE_57: "https://
|
42354
|
-
IMAGE_58: "https://
|
42355
|
-
IMAGE_59: "https://
|
42356
|
-
IMAGE_60: "https://
|
42357
|
-
IMAGE_61: "https://
|
42358
|
-
IMAGE_62: "https://
|
42359
|
-
IMAGE_63: "https://
|
42360
|
-
IMAGE_64: "https://
|
42361
|
-
IMAGE_65: "https://
|
42362
|
-
IMAGE_66: "https://
|
42363
|
-
IMAGE_67: "https://
|
42364
|
-
IMAGE_68: "https://
|
42365
|
-
IMAGE_69: "https://
|
42366
|
-
IMAGE_70: "https://
|
42367
|
-
IMAGE_71: "https://
|
42347
|
+
IMAGE_08: "https://easy-email-m-ryan.vercel.app/images/0046b247-3647-491f-afe1-cb0dd2a3c21c-ef84b752-f827-4546-89bf-6b63dfb67a4d.png",
|
42348
|
+
IMAGE_09: "https://easy-email-m-ryan.vercel.app/images/be34fb18-32ad-441c-84d8-3c0e9ba9f742-ad2ea5ff-5d0b-446b-bd7d-8e2ab5afdd16.png",
|
42349
|
+
IMAGE_10: "https://easy-email-m-ryan.vercel.app/images/6a1e6292-469e-452a-bbae-44e4b5ff7463-05e543b6-c951-44ce-ae27-ca1282c77f52.png",
|
42350
|
+
IMAGE_11: "https://easy-email-m-ryan.vercel.app/images/39b25f35-7ca9-4264-8502-41f430f89cf5-bcdc91c2-da3c-4fef-99c0-62b77c5a0f1f.png",
|
42351
|
+
IMAGE_12: "https://easy-email-m-ryan.vercel.app/images/eaa83007-f6f5-47d9-acbe-bb98065eaf20-b7c46090-73bd-4d4b-bd31-2368f7b4064f.png",
|
42352
|
+
IMAGE_13: "https://easy-email-m-ryan.vercel.app/images/9dec87bb-0a6d-429f-ac23-0ee636e6428d-219dee7e-85bb-4fba-9bf3-e98762e80409.png",
|
42353
|
+
IMAGE_14: "https://easy-email-m-ryan.vercel.app/images/d285da5e-b0c0-4895-84ac-42f83b4d603b-64042d20-be6a-45de-819c-8312f778a38d.png",
|
42354
|
+
IMAGE_15: "https://easy-email-m-ryan.vercel.app/images/f69f48af-5b15-40aa-91c4-81d601d1357b-083dc99d-02a6-40d9-ae28-0662bd078b5d.png",
|
42355
|
+
IMAGE_16: "https://easy-email-m-ryan.vercel.app/images/9cce6b16-5a98-4ddb-b1a1-6cec2cf56891-c3acb856-8ab8-4cfb-93f9-2a0747678b8b.png",
|
42356
|
+
IMAGE_17: "https://easy-email-m-ryan.vercel.app/images/d9795c1d-fa32-4adb-ab25-30b7cfe87936-df21314f-6f05-4550-80b3-9ab1107e8fbe.png",
|
42357
|
+
IMAGE_18: "https://easy-email-m-ryan.vercel.app/images/82f6f893-43ed-4f3d-9a17-4740bda844de-3318b36c-199d-46fe-96b8-38d1f17ef0c1.png",
|
42358
|
+
IMAGE_19: "https://easy-email-m-ryan.vercel.app/images/f1ece227-e050-4751-b064-aaeeabd5bfde-d459e9a2-b192-417b-8a77-2297b29e814e.png",
|
42359
|
+
IMAGE_20: "https://easy-email-m-ryan.vercel.app/images/585b48f6-ee7c-4d1a-8619-4d2edea09be6-07113335-5d19-464a-adef-2be50682ce72.png",
|
42360
|
+
IMAGE_21: "https://easy-email-m-ryan.vercel.app/images/9755d667-289e-405c-b84a-adf5db91ea4d-c03c409b-dd9b-40e9-840a-6a64e1df594e.png",
|
42361
|
+
IMAGE_22: "https://easy-email-m-ryan.vercel.app/images/7487ce49-cd69-4651-8da3-807c54357258-defaaf0a-1756-4b83-9a94-51dcdbfeb84f.png",
|
42362
|
+
IMAGE_23: "https://easy-email-m-ryan.vercel.app/images/c3463b9e-baff-41c8-95ee-01c5a79259bd-8062ab05-baa5-45d2-9959-4935d4ff2005.png",
|
42363
|
+
IMAGE_24: "https://easy-email-m-ryan.vercel.app/images/1f45e84a-5c84-45ce-9d27-df6ffb55bcdd-cbf126f4-b372-4ea9-a354-0dc27be4ce2f.png",
|
42364
|
+
IMAGE_25: "https://easy-email-m-ryan.vercel.app/images/6b8b234e-2306-48f9-90ed-056c13201a83-492073c3-258f-4f1b-91fa-4a8ae723aa2c.png",
|
42365
|
+
IMAGE_26: "https://easy-email-m-ryan.vercel.app/images/aa50c2c9-8e3b-4af2-b029-337ec549ec10-baacd015-2e3f-4326-b3ab-bde84a7c456b.png",
|
42366
|
+
IMAGE_27: "https://easy-email-m-ryan.vercel.app/images/9e935e54-a97e-4fbb-a2fb-73e351a35eed-479ef4d1-9460-48b2-934d-84d77044b98d.png",
|
42367
|
+
IMAGE_28: "https://easy-email-m-ryan.vercel.app/images/799564d8-3082-4fdc-86ed-8c4b3510934f-3f8ccbaa-7b6b-49b7-a836-21fa88f996fc.png",
|
42368
|
+
IMAGE_29: "https://easy-email-m-ryan.vercel.app/images/af34a548-c339-4a9e-85fe-11bf90c083eb-46fef91d-7307-4e91-aae0-460da1c48629.png",
|
42369
|
+
IMAGE_30: "https://easy-email-m-ryan.vercel.app/images/84014a93-429c-479c-b9ed-0c568f58a288-ca76cdf2-92d3-4552-bc95-3a8dd4c9cd0b.png",
|
42370
|
+
IMAGE_31: "https://easy-email-m-ryan.vercel.app/images/dd1584fb-cb60-42c9-80c7-5545e16130ca-226ba72b-ce9e-4948-ad0d-347381fb96c5.png",
|
42371
|
+
IMAGE_32: "https://easy-email-m-ryan.vercel.app/images/76e3d8e2-697d-484c-a989-715bd234b575-37bde239-2e2d-450a-8e93-d62c39cb94a3.png",
|
42372
|
+
IMAGE_33: "https://easy-email-m-ryan.vercel.app/images/898b791e-c8fc-4bc5-bf1e-47a0351284ce-fdee9617-9848-49e7-82b6-36095f417a3e.png",
|
42373
|
+
IMAGE_34: "https://easy-email-m-ryan.vercel.app/images/49662d27-6e14-4e75-a942-946f0af25a51-e9aa2ead-98e4-4f70-8073-7b5aaafaa367.png",
|
42374
|
+
IMAGE_35: "https://easy-email-m-ryan.vercel.app/images/d2905fb1-9fc1-49c0-90b0-806877c38cd2-f2e05655-4e6c-41b0-a028-990448a716dc.png",
|
42375
|
+
IMAGE_36: "https://easy-email-m-ryan.vercel.app/images/9c3e9949-1be7-42b5-ad48-44f0e1c89c2e-2ee3cbac-e45e-414d-96ad-9dae3621cf14.png",
|
42376
|
+
IMAGE_37: "https://easy-email-m-ryan.vercel.app/images/1865e3a6-a762-4bd9-9644-96ae6b27a83a-176a20c7-5768-400c-b2eb-701500cee17c.png",
|
42377
|
+
IMAGE_38: "https://easy-email-m-ryan.vercel.app/images/2a6d82e2-d1f6-4e30-ae05-1afe3cd03e70-22d186b0-c2f1-4aee-b33b-869cae26412e.png",
|
42378
|
+
IMAGE_39: "https://easy-email-m-ryan.vercel.app/images/9f97bda2-82d6-47e7-80c1-40be94d5491f-88233d55-8715-43cd-9232-246440e33cd6.png",
|
42379
|
+
IMAGE_40: "https://easy-email-m-ryan.vercel.app/images/b8f00c77-12b0-4e61-a85e-96918c0035dc-b8344b64-8e79-424d-a974-8e13e6b1e7f8.png",
|
42380
|
+
IMAGE_41: "https://easy-email-m-ryan.vercel.app/images/5fc6be85-0205-4ca9-bb9a-eb9335f94af2-2d41c4bb-2c00-4fe7-8b32-067e92df3ab3.png",
|
42381
|
+
IMAGE_42: "https://easy-email-m-ryan.vercel.app/images/f6c9c054-f35a-4af7-957f-c7a6209972eb-7e3b42bf-8d97-466d-8662-8d3b1786e8b8.png",
|
42382
|
+
IMAGE_43: "https://easy-email-m-ryan.vercel.app/images/80e108b0-3d70-442a-93c1-3fcc091253c6-3dc61b44-6072-413a-ae28-a551577b7677.png",
|
42383
|
+
IMAGE_44: "https://easy-email-m-ryan.vercel.app/images/14b9e878-7208-48f4-94d0-51161b79010a-fb55ae68-a7ce-4bae-830d-331d368f0f32.png",
|
42384
|
+
IMAGE_45: "https://easy-email-m-ryan.vercel.app/images/b42f3cd8-01fc-4650-a32d-b584b05e78c3-5e408f98-e9e6-43de-97af-91b2732760df.png",
|
42385
|
+
IMAGE_46: "https://easy-email-m-ryan.vercel.app/images/e737972a-d884-440b-96d3-66f703dd110b-9f1d0d18-fb45-4a54-a2d0-65bc5b168f8a.png",
|
42386
|
+
IMAGE_47: "https://easy-email-m-ryan.vercel.app/images/0e3ae071-247a-4e69-8b60-8009477180b9-197205c2-2ae7-420f-94aa-78440226beaa.png",
|
42387
|
+
IMAGE_48: "https://easy-email-m-ryan.vercel.app/images/0ec46619-4dd0-4293-88fb-14656ac7d33c-0936deed-a88c-4e3d-90bf-4fe67b295659",
|
42388
|
+
IMAGE_49: "https://easy-email-m-ryan.vercel.app/images/01830aec-d044-4d2a-9519-aac2901f4760-776602f7-021b-4142-a2d0-446aca5e0418",
|
42389
|
+
IMAGE_50: "https://easy-email-m-ryan.vercel.app/images/9f1cee25-f9b4-4539-b4ea-3109584c0a54-0692c4fb-46ce-452c-8573-fcce74852cba",
|
42390
|
+
IMAGE_51: "https://easy-email-m-ryan.vercel.app/images/e138143f-7071-44bc-8470-7d56850e527c-f515254e-67b8-4b68-b86f-7993e960d893",
|
42391
|
+
IMAGE_52: "https://easy-email-m-ryan.vercel.app/images/ac75b655-b57d-40b9-a201-8163eeb6a579-1f894e6f-18ac-42c4-9227-7488433586bc.png",
|
42392
|
+
IMAGE_53: "https://easy-email-m-ryan.vercel.app/images/3c505a1b-575a-40fb-83c1-6c4a11a6d478-9e466e35-af9e-406a-b4cc-b86f9d0b0419.png",
|
42393
|
+
IMAGE_54: "https://easy-email-m-ryan.vercel.app/images/7f98eeec-9422-48b5-9b57-939a24418b92-a6346a63-b393-49c2-9911-ee1a9a1ffd02.png",
|
42394
|
+
IMAGE_55: "https://easy-email-m-ryan.vercel.app/images/a7f5ae44-418b-40e1-b8a5-8162cf8bbd87-156cc8dd-3a19-4638-8c26-e28783e50952.png",
|
42395
|
+
IMAGE_56: "https://easy-email-m-ryan.vercel.app/images/efdeeced-1eb7-465f-8370-a3b000634ba2-0a4d1794-6ca7-44fa-a1c6-04e3bde8eb56.png",
|
42396
|
+
IMAGE_57: "https://easy-email-m-ryan.vercel.app/images/425c6017-2c30-41d7-8930-08300492c6d4-a0859ca3-5213-484c-9170-2d51329407cc.png",
|
42397
|
+
IMAGE_58: "https://easy-email-m-ryan.vercel.app/images/858ea699-cf65-469d-bd9e-70adea729bb4-c4e7a711-27b6-4865-9b32-516c41cebddf.png",
|
42398
|
+
IMAGE_59: "https://easy-email-m-ryan.vercel.app/images/06ca521d-9728-4de6-a709-1b75a828bfc3-2a9b1224-3d71-43b8-b52f-e7cdcdc9107b.png",
|
42399
|
+
IMAGE_60: "https://easy-email-m-ryan.vercel.app/images/199eacfa-daf8-4dd1-a356-225a265a88a4-e8432435-a2bb-4ec2-a3e9-ee1757d8b44b",
|
42400
|
+
IMAGE_61: "https://easy-email-m-ryan.vercel.app/images/f43b67dc-cc30-4533-b2ca-4689292aab4d-40bc844d-5362-451f-a839-69e86f7a3113",
|
42401
|
+
IMAGE_62: "https://easy-email-m-ryan.vercel.app/images/318e911c-a57b-4768-9c79-0e49c2953e7a-dbe0eb3c-0b4b-495a-a469-a15b46c5a0cc",
|
42402
|
+
IMAGE_63: "https://easy-email-m-ryan.vercel.app/images/ed70ddb1-1344-4245-ab1e-beae36ed44b4-21a80cb3-a928-4857-973b-98992fdec74f",
|
42403
|
+
IMAGE_64: "https://easy-email-m-ryan.vercel.app/images/fb7dd6fa-12c1-41e1-8744-91d0f861ec57-0fee9bda-2381-4c54-a24d-bd644384b9aa",
|
42404
|
+
IMAGE_65: "https://easy-email-m-ryan.vercel.app/images/7bf8c363-17bd-472d-8cca-96f5d4b64292-9ab34957-15d3-4068-8e83-cc283d8e400d",
|
42405
|
+
IMAGE_66: "https://easy-email-m-ryan.vercel.app/images/0330a1e9-e814-4be8-83f0-ee1dbabf44a0-6e35a585-92ec-4570-875b-866b59927583",
|
42406
|
+
IMAGE_67: "https://easy-email-m-ryan.vercel.app/images/a7deb6bc-db2b-4273-bf25-002bb148bf5a-ed5e9b17-15a9-4e0f-9874-c3219d48b2b4",
|
42407
|
+
IMAGE_68: "https://easy-email-m-ryan.vercel.app/images/52c50319-e3a9-401b-9057-bd6531870f10-aa79ec5d-76d2-4d48-a99e-2ccd9d9c285b",
|
42408
|
+
IMAGE_69: "https://easy-email-m-ryan.vercel.app/images/9994cef3-6205-4013-8993-b037d067df64-f5d03db4-6bb4-4af4-b35a-0b6d512eaff4",
|
42409
|
+
IMAGE_70: "https://easy-email-m-ryan.vercel.app/images/e5dd7a7e-70d7-483f-80cc-0c5b41107101-75dcedc7-4a34-4d03-97ee-bf32163afa0a",
|
42410
|
+
IMAGE_71: "https://easy-email-m-ryan.vercel.app/images/53277265-8e54-43d0-b9d0-d34cd1639861-adb7a48a-8382-43a1-ad59-7c84764a3b21.png"
|
42368
42411
|
};
|
42369
42412
|
ImageManager.add(defaultImagesMap);
|
42370
42413
|
function getImg(name) {
|