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.
Files changed (147) hide show
  1. package/License +22 -0
  2. package/lib/AttributePanel/AttributePanel.d.ts +3 -3
  3. package/lib/AttributePanel/components/UI/Help/index.d.ts +7 -7
  4. package/lib/AttributePanel/components/UI/HtmlEditor.d.ts +5 -5
  5. package/lib/AttributePanel/components/attributes/Align.d.ts +3 -3
  6. package/lib/AttributePanel/components/attributes/AttributesPanelWrapper/index.d.ts +6 -6
  7. package/lib/AttributePanel/components/attributes/Background.d.ts +1 -1
  8. package/lib/AttributePanel/components/attributes/BackgroundColor.d.ts +3 -3
  9. package/lib/AttributePanel/components/attributes/Border.d.ts +1 -1
  10. package/lib/AttributePanel/components/attributes/BorderColor.d.ts +1 -1
  11. package/lib/AttributePanel/components/attributes/BorderStyle.d.ts +5 -5
  12. package/lib/AttributePanel/components/attributes/BorderWidth.d.ts +1 -1
  13. package/lib/AttributePanel/components/attributes/Color.d.ts +4 -4
  14. package/lib/AttributePanel/components/attributes/ContainerBackgroundColor.d.ts +3 -3
  15. package/lib/AttributePanel/components/attributes/Decoration.d.ts +1 -1
  16. package/lib/AttributePanel/components/attributes/Direction.d.ts +1 -1
  17. package/lib/AttributePanel/components/attributes/FontFamily.d.ts +1 -1
  18. package/lib/AttributePanel/components/attributes/FontSize.d.ts +1 -1
  19. package/lib/AttributePanel/components/attributes/FontStyle.d.ts +1 -1
  20. package/lib/AttributePanel/components/attributes/FontWeight.d.ts +1 -1
  21. package/lib/AttributePanel/components/attributes/Height.d.ts +3 -3
  22. package/lib/AttributePanel/components/attributes/LetterSpacing.d.ts +1 -1
  23. package/lib/AttributePanel/components/attributes/LineHeight.d.ts +1 -1
  24. package/lib/AttributePanel/components/attributes/Link.d.ts +1 -1
  25. package/lib/AttributePanel/components/attributes/Margin.d.ts +1 -1
  26. package/lib/AttributePanel/components/attributes/MergeTags.d.ts +6 -6
  27. package/lib/AttributePanel/components/attributes/NavbarLinkPadding.d.ts +3 -3
  28. package/lib/AttributePanel/components/attributes/Padding.d.ts +5 -5
  29. package/lib/AttributePanel/components/attributes/TextAlign.d.ts +1 -1
  30. package/lib/AttributePanel/components/attributes/TextDecoration.d.ts +1 -1
  31. package/lib/AttributePanel/components/attributes/TextTransform.d.ts +1 -1
  32. package/lib/AttributePanel/components/attributes/VerticalAlign.d.ts +3 -3
  33. package/lib/AttributePanel/components/attributes/Width.d.ts +5 -5
  34. package/lib/AttributePanel/components/attributes/index.d.ts +29 -29
  35. package/lib/AttributePanel/components/blocks/Accordion/index.d.ts +1 -1
  36. package/lib/AttributePanel/components/blocks/AccordionElement/index.d.ts +1 -1
  37. package/lib/AttributePanel/components/blocks/AccordionText/index.d.ts +1 -1
  38. package/lib/AttributePanel/components/blocks/AccordionTitle/index.d.ts +1 -1
  39. package/lib/AttributePanel/components/blocks/Button/index.d.ts +1 -1
  40. package/lib/AttributePanel/components/blocks/Carousel/index.d.ts +1 -1
  41. package/lib/AttributePanel/components/blocks/Column/index.d.ts +1 -1
  42. package/lib/AttributePanel/components/blocks/Divider/index.d.ts +1 -1
  43. package/lib/AttributePanel/components/blocks/Group/index.d.ts +1 -1
  44. package/lib/AttributePanel/components/blocks/Hero/index.d.ts +1 -1
  45. package/lib/AttributePanel/components/blocks/Image/index.d.ts +1 -1
  46. package/lib/AttributePanel/components/blocks/Navbar/index.d.ts +1 -1
  47. package/lib/AttributePanel/components/blocks/Page/index.d.ts +1 -1
  48. package/lib/AttributePanel/components/blocks/Raw/index.d.ts +1 -1
  49. package/lib/AttributePanel/components/blocks/Section/index.d.ts +1 -1
  50. package/lib/AttributePanel/components/blocks/Social/index.d.ts +1 -1
  51. package/lib/AttributePanel/components/blocks/Spacer/index.d.ts +1 -1
  52. package/lib/AttributePanel/components/blocks/Table/index.d.ts +1 -1
  53. package/lib/AttributePanel/components/blocks/Text/index.d.ts +1 -1
  54. package/lib/AttributePanel/components/blocks/Wrapper/index.d.ts +1 -1
  55. package/lib/AttributePanel/components/blocks/index.d.ts +42 -42
  56. package/lib/AttributePanel/components/provider/PresetColorsProvider/index.d.ts +6 -6
  57. package/lib/AttributePanel/components/provider/SelectionRangeProvider/index.d.ts +6 -6
  58. package/lib/AttributePanel/hooks/useSelectionRange.d.ts +6 -6
  59. package/lib/AttributePanel/index.d.ts +3 -3
  60. package/lib/AttributePanel/utils/BlockAttributeConfigurationManager.d.ts +10 -10
  61. package/lib/AttributePanel/utils/InputNumberAdapter.d.ts +2 -2
  62. package/lib/AttributePanel/utils/PromiseEach.d.ts +1 -1
  63. package/lib/AttributePanel/utils/Uploader.d.ts +35 -35
  64. package/lib/AttributePanel/utils/awaitForElement.d.ts +4 -4
  65. package/lib/AttributePanel/utils/classnames.d.ts +1 -1
  66. package/lib/AttributePanel/utils/getImg.d.ts +8 -8
  67. package/lib/AttributePanel/utils/onDrag.d.ts +10 -10
  68. package/lib/AttributePanel/utils/previewLoadImage.d.ts +1 -1
  69. package/lib/BlockLayer/components/BlockTree/index.d.ts +51 -51
  70. package/lib/BlockLayer/components/BlockTree/transparentImage.d.ts +1 -1
  71. package/lib/BlockLayer/components/ContextMenu/index.d.ts +14 -14
  72. package/lib/BlockLayer/components/EyeIcon/index.d.ts +7 -7
  73. package/lib/BlockLayer/hooks/useAvatarWrapperDrop.d.ts +24 -24
  74. package/lib/BlockLayer/index.d.ts +10 -10
  75. package/lib/InteractivePrompt/components/FocusTooltip.d.ts +1 -1
  76. package/lib/InteractivePrompt/components/HoverTooltip.d.ts +1 -1
  77. package/lib/InteractivePrompt/components/Toolbar.d.ts +1 -1
  78. package/lib/InteractivePrompt/index.d.ts +1 -1
  79. package/lib/InteractivePrompt/utils/awaitForElement.d.ts +4 -4
  80. package/lib/ShortcutToolbar/ShortcutToolbar.d.ts +1 -1
  81. package/lib/ShortcutToolbar/components/BlockMaskWrapper/index.d.ts +6 -6
  82. package/lib/ShortcutToolbar/components/BlocksPanel/index.d.ts +2 -2
  83. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/AccordionBlockItem/index.d.ts +1 -1
  84. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/ButtonBlockItem/index.d.ts +1 -1
  85. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/CarouselBlockItem/index.d.ts +1 -1
  86. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/ColumnBlockItem/index.d.ts +1 -1
  87. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/DividerBlockItem/index.d.ts +1 -1
  88. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/GroupBlockItem/index.d.ts +1 -1
  89. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/HeroBlockItem/index.d.ts +1 -1
  90. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/ImageBlockItem/index.d.ts +1 -1
  91. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/NavbarBlockItem/index.d.ts +1 -1
  92. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/RawBlockItem/index.d.ts +1 -1
  93. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/SectionBlockItem/index.d.ts +1 -1
  94. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/SocialBlockItem/index.d.ts +1 -1
  95. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/SpacerBlockItem/index.d.ts +1 -1
  96. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/TextBlockItem/index.d.ts +1 -1
  97. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/WrapperBlockItem/index.d.ts +1 -1
  98. package/lib/ShortcutToolbar/components/BlocksPanel/presetTemplate/index.d.ts +18 -18
  99. package/lib/ShortcutToolbar/components/Picture/index.d.ts +7 -7
  100. package/lib/ShortcutToolbar/index.d.ts +4 -4
  101. package/lib/ShortcutToolbar/utils/BlockMarketManager.d.ts +32 -32
  102. package/lib/ShortcutToolbar/utils/getImg.d.ts +68 -68
  103. package/lib/SimpleLayout/SimpleLayout.d.ts +4 -4
  104. package/lib/SimpleLayout/index.d.ts +1 -1
  105. package/lib/SourceCodePanel/index.d.ts +1 -1
  106. package/lib/components/AddToCollection/index.d.ts +5 -5
  107. package/lib/components/Form/AddFont.d.ts +1 -1
  108. package/lib/components/Form/AutoComplete.d.ts +11 -11
  109. package/lib/components/Form/CheckBoxGroup.d.ts +14 -14
  110. package/lib/components/Form/CodemirrorEditor/index.d.ts +8 -8
  111. package/lib/components/Form/ColorPicker.d.ts +10 -10
  112. package/lib/components/Form/EditTab.d.ts +10 -10
  113. package/lib/components/Form/ImageUploader/index.d.ts +8 -8
  114. package/lib/components/Form/InlineTextField/index.d.ts +7 -7
  115. package/lib/components/Form/Input.d.ts +7 -7
  116. package/lib/components/Form/InputWithUnit.d.ts +10 -10
  117. package/lib/components/Form/RadioGroup.d.ts +13 -13
  118. package/lib/components/Form/RichTextField/index.d.ts +2 -2
  119. package/lib/components/Form/RichTextToolBar/RichTextToolBar.d.ts +3 -3
  120. package/lib/components/Form/RichTextToolBar/components/FontFamily/index.d.ts +3 -3
  121. package/lib/components/Form/RichTextToolBar/components/FontSizeList/index.d.ts +3 -3
  122. package/lib/components/Form/RichTextToolBar/components/Heading/index.d.ts +3 -3
  123. package/lib/components/Form/RichTextToolBar/components/Link/index.d.ts +12 -12
  124. package/lib/components/Form/RichTextToolBar/components/ToolItem/index.d.ts +7 -7
  125. package/lib/components/Form/RichTextToolBar/components/Tools/Tools.d.ts +5 -5
  126. package/lib/components/Form/RichTextToolBar/components/Tools/index.d.ts +1 -1
  127. package/lib/components/Form/RichTextToolBar/index.d.ts +1 -1
  128. package/lib/components/Form/Select.d.ts +11 -11
  129. package/lib/components/Form/UploadField.d.ts +8 -8
  130. package/lib/components/Form/enhancer.d.ts +20 -20
  131. package/lib/components/Form/index.d.ts +32 -32
  132. package/lib/components/RenderCount/index.d.ts +1 -1
  133. package/lib/components/ShadowDom/index.d.ts +2 -2
  134. package/lib/hooks/useAddToCollection.d.ts +6 -6
  135. package/lib/index.d.ts +10 -10
  136. package/lib/index2.js +263 -220
  137. package/lib/index2.js.map +1 -1
  138. package/lib/index3.js.map +1 -1
  139. package/lib/style.css +1 -1
  140. package/lib/utils/awaitForElement.d.ts +4 -4
  141. package/lib/utils/classnames.d.ts +1 -1
  142. package/lib/utils/getBlockTitle.d.ts +2 -2
  143. package/lib/utils/getContextMergeTags.d.ts +7 -7
  144. package/lib/utils/getIconNameByBlockType.d.ts +1 -1
  145. package/lib/utils/getPreviewClassName.d.ts +1 -1
  146. package/package.json +2 -2
  147. 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, getParentIdx, createBlockDataByType, getParentByIdx, getValueByIdx, getIndexByIdx, getSiblingIdx, getNodeIdxFromClassName, getNodeIdxClassName, getPageIdx, getChildIdx, MjmlToJson, JsonToMjml, getNodeTypeFromClassName } from "easy-email-core";
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 = "_title_15yi1_1";
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://assets.maocanhua.cn/06ca521d-9728-4de6-a709-1b75a828bfc3-2a9b1224-3d71-43b8-b52f-e7cdcdc9107b.png",
31281
- AttributePanel_01: "https://assets.maocanhua.cn/e22f78f2-aa76-408d-ba94-c95c7abe1908-image.png",
31282
- AttributePanel_02: "https://assets.maocanhua.cn/3e952a6e-2506-470e-b395-3e0d995157c5.png",
31283
- AttributePanel_03: "https://assets.maocanhua.cn/Fi_vI4vyLhTM-Tp6ivq4dR_ieGHk"
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
- return /* @__PURE__ */ React__default.createElement(PresetColorsContext.Provider, {
38309
- value: {
38308
+ const value = useMemo(() => {
38309
+ return {
38310
38310
  colors: currentColors,
38311
38311
  addCurrentColor
38312
- }
38313
- }, props.children);
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
- }, 100, {
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
- const onChangeHidden = useCallback((val) => {
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))), Boolean(focusBlock2.data.hidden) && mergeTags2 && /* @__PURE__ */ React__default.createElement(Stack$6, {
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(PresetColorsProvider, null, Com ? /* @__PURE__ */ React__default.createElement(Com, null) : /* @__PURE__ */ React__default.createElement("div", {
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 Tools(props) {
41342
- const { container: container2 } = props;
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((data) => {
42093
- var _a, _b;
42094
- const dropResult = allowDrop(data);
42095
- if (dropResult) {
42096
- const node = (_b = (_a = document.querySelector(`[data-tree-idx="${dropResult.key}"]`)) == null ? void 0 : _a.parentNode) == null ? void 0 : _b.parentNode;
42097
- if (node instanceof HTMLElement) {
42098
- removeHightLightClassName();
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
- setDirection(getDirectionFormDropPosition(dropResult.position));
42102
- setHoverIdx(dropResult.key);
42103
- }
42104
- return dropResult;
42105
- }, [allowDrop, removeHightLightClassName, setDirection, setHoverIdx]);
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://assets.maocanhua.cn/0046b247-3647-491f-afe1-cb0dd2a3c21c-ef84b752-f827-4546-89bf-6b63dfb67a4d.png",
42305
- IMAGE_09: "https://assets.maocanhua.cn/be34fb18-32ad-441c-84d8-3c0e9ba9f742-ad2ea5ff-5d0b-446b-bd7d-8e2ab5afdd16.png",
42306
- IMAGE_10: "https://assets.maocanhua.cn/6a1e6292-469e-452a-bbae-44e4b5ff7463-05e543b6-c951-44ce-ae27-ca1282c77f52.png",
42307
- IMAGE_11: "https://assets.maocanhua.cn/39b25f35-7ca9-4264-8502-41f430f89cf5-bcdc91c2-da3c-4fef-99c0-62b77c5a0f1f.png",
42308
- IMAGE_12: "https://assets.maocanhua.cn/eaa83007-f6f5-47d9-acbe-bb98065eaf20-b7c46090-73bd-4d4b-bd31-2368f7b4064f.png",
42309
- IMAGE_13: "https://assets.maocanhua.cn/9dec87bb-0a6d-429f-ac23-0ee636e6428d-219dee7e-85bb-4fba-9bf3-e98762e80409.png",
42310
- IMAGE_14: "https://assets.maocanhua.cn/d285da5e-b0c0-4895-84ac-42f83b4d603b-64042d20-be6a-45de-819c-8312f778a38d.png",
42311
- IMAGE_15: "https://assets.maocanhua.cn/f69f48af-5b15-40aa-91c4-81d601d1357b-083dc99d-02a6-40d9-ae28-0662bd078b5d.png",
42312
- IMAGE_16: "https://assets.maocanhua.cn/9cce6b16-5a98-4ddb-b1a1-6cec2cf56891-c3acb856-8ab8-4cfb-93f9-2a0747678b8b.png",
42313
- IMAGE_17: "https://assets.maocanhua.cn/d9795c1d-fa32-4adb-ab25-30b7cfe87936-df21314f-6f05-4550-80b3-9ab1107e8fbe.png",
42314
- IMAGE_18: "https://assets.maocanhua.cn/82f6f893-43ed-4f3d-9a17-4740bda844de-3318b36c-199d-46fe-96b8-38d1f17ef0c1.png",
42315
- IMAGE_19: "https://assets.maocanhua.cn/f1ece227-e050-4751-b064-aaeeabd5bfde-d459e9a2-b192-417b-8a77-2297b29e814e.png",
42316
- IMAGE_20: "https://assets.maocanhua.cn/585b48f6-ee7c-4d1a-8619-4d2edea09be6-07113335-5d19-464a-adef-2be50682ce72.png",
42317
- IMAGE_21: "https://assets.maocanhua.cn/9755d667-289e-405c-b84a-adf5db91ea4d-c03c409b-dd9b-40e9-840a-6a64e1df594e.png",
42318
- IMAGE_22: "https://assets.maocanhua.cn/7487ce49-cd69-4651-8da3-807c54357258-defaaf0a-1756-4b83-9a94-51dcdbfeb84f.png",
42319
- IMAGE_23: "https://assets.maocanhua.cn/c3463b9e-baff-41c8-95ee-01c5a79259bd-8062ab05-baa5-45d2-9959-4935d4ff2005.png",
42320
- IMAGE_24: "https://assets.maocanhua.cn/1f45e84a-5c84-45ce-9d27-df6ffb55bcdd-cbf126f4-b372-4ea9-a354-0dc27be4ce2f.png",
42321
- IMAGE_25: "https://assets.maocanhua.cn/6b8b234e-2306-48f9-90ed-056c13201a83-492073c3-258f-4f1b-91fa-4a8ae723aa2c.png",
42322
- IMAGE_26: "https://assets.maocanhua.cn/aa50c2c9-8e3b-4af2-b029-337ec549ec10-baacd015-2e3f-4326-b3ab-bde84a7c456b.png",
42323
- IMAGE_27: "https://assets.maocanhua.cn/9e935e54-a97e-4fbb-a2fb-73e351a35eed-479ef4d1-9460-48b2-934d-84d77044b98d.png",
42324
- IMAGE_28: "https://assets.maocanhua.cn/799564d8-3082-4fdc-86ed-8c4b3510934f-3f8ccbaa-7b6b-49b7-a836-21fa88f996fc.png",
42325
- IMAGE_29: "https://assets.maocanhua.cn/af34a548-c339-4a9e-85fe-11bf90c083eb-46fef91d-7307-4e91-aae0-460da1c48629.png",
42326
- IMAGE_30: "https://assets.maocanhua.cn/84014a93-429c-479c-b9ed-0c568f58a288-ca76cdf2-92d3-4552-bc95-3a8dd4c9cd0b.png",
42327
- IMAGE_31: "https://assets.maocanhua.cn/dd1584fb-cb60-42c9-80c7-5545e16130ca-226ba72b-ce9e-4948-ad0d-347381fb96c5.png",
42328
- IMAGE_32: "https://assets.maocanhua.cn/76e3d8e2-697d-484c-a989-715bd234b575-37bde239-2e2d-450a-8e93-d62c39cb94a3.png",
42329
- IMAGE_33: "https://assets.maocanhua.cn/898b791e-c8fc-4bc5-bf1e-47a0351284ce-fdee9617-9848-49e7-82b6-36095f417a3e.png",
42330
- IMAGE_34: "https://assets.maocanhua.cn/49662d27-6e14-4e75-a942-946f0af25a51-e9aa2ead-98e4-4f70-8073-7b5aaafaa367.png",
42331
- IMAGE_35: "https://assets.maocanhua.cn/d2905fb1-9fc1-49c0-90b0-806877c38cd2-f2e05655-4e6c-41b0-a028-990448a716dc.png",
42332
- IMAGE_36: "https://assets.maocanhua.cn/9c3e9949-1be7-42b5-ad48-44f0e1c89c2e-2ee3cbac-e45e-414d-96ad-9dae3621cf14.png",
42333
- IMAGE_37: "https://assets.maocanhua.cn/1865e3a6-a762-4bd9-9644-96ae6b27a83a-176a20c7-5768-400c-b2eb-701500cee17c.png",
42334
- IMAGE_38: "https://assets.maocanhua.cn/2a6d82e2-d1f6-4e30-ae05-1afe3cd03e70-22d186b0-c2f1-4aee-b33b-869cae26412e.png",
42335
- IMAGE_39: "https://assets.maocanhua.cn/9f97bda2-82d6-47e7-80c1-40be94d5491f-88233d55-8715-43cd-9232-246440e33cd6.png",
42336
- IMAGE_40: "https://assets.maocanhua.cn/b8f00c77-12b0-4e61-a85e-96918c0035dc-b8344b64-8e79-424d-a974-8e13e6b1e7f8.png",
42337
- IMAGE_41: "https://assets.maocanhua.cn/5fc6be85-0205-4ca9-bb9a-eb9335f94af2-2d41c4bb-2c00-4fe7-8b32-067e92df3ab3.png",
42338
- IMAGE_42: "https://assets.maocanhua.cn/f6c9c054-f35a-4af7-957f-c7a6209972eb-7e3b42bf-8d97-466d-8662-8d3b1786e8b8.png",
42339
- IMAGE_43: "https://assets.maocanhua.cn/80e108b0-3d70-442a-93c1-3fcc091253c6-3dc61b44-6072-413a-ae28-a551577b7677.png",
42340
- IMAGE_44: "https://assets.maocanhua.cn/14b9e878-7208-48f4-94d0-51161b79010a-fb55ae68-a7ce-4bae-830d-331d368f0f32.png",
42341
- IMAGE_45: "https://assets.maocanhua.cn/b42f3cd8-01fc-4650-a32d-b584b05e78c3-5e408f98-e9e6-43de-97af-91b2732760df.png",
42342
- IMAGE_46: "https://assets.maocanhua.cn/e737972a-d884-440b-96d3-66f703dd110b-9f1d0d18-fb45-4a54-a2d0-65bc5b168f8a.png",
42343
- IMAGE_47: "https://assets.maocanhua.cn/0e3ae071-247a-4e69-8b60-8009477180b9-197205c2-2ae7-420f-94aa-78440226beaa.png",
42344
- IMAGE_48: "https://assets.maocanhua.cn/0ec46619-4dd0-4293-88fb-14656ac7d33c-0936deed-a88c-4e3d-90bf-4fe67b295659",
42345
- IMAGE_49: "https://assets.maocanhua.cn/01830aec-d044-4d2a-9519-aac2901f4760-776602f7-021b-4142-a2d0-446aca5e0418",
42346
- IMAGE_50: "https://assets.maocanhua.cn/9f1cee25-f9b4-4539-b4ea-3109584c0a54-0692c4fb-46ce-452c-8573-fcce74852cba",
42347
- IMAGE_51: "https://assets.maocanhua.cn/e138143f-7071-44bc-8470-7d56850e527c-f515254e-67b8-4b68-b86f-7993e960d893",
42348
- IMAGE_52: "https://assets.maocanhua.cn/ac75b655-b57d-40b9-a201-8163eeb6a579-1f894e6f-18ac-42c4-9227-7488433586bc.png",
42349
- IMAGE_53: "https://assets.maocanhua.cn/3c505a1b-575a-40fb-83c1-6c4a11a6d478-9e466e35-af9e-406a-b4cc-b86f9d0b0419.png",
42350
- IMAGE_54: "https://assets.maocanhua.cn/7f98eeec-9422-48b5-9b57-939a24418b92-a6346a63-b393-49c2-9911-ee1a9a1ffd02.png",
42351
- IMAGE_55: "https://assets.maocanhua.cn/a7f5ae44-418b-40e1-b8a5-8162cf8bbd87-156cc8dd-3a19-4638-8c26-e28783e50952.png",
42352
- IMAGE_56: "https://assets.maocanhua.cn/efdeeced-1eb7-465f-8370-a3b000634ba2-0a4d1794-6ca7-44fa-a1c6-04e3bde8eb56.png",
42353
- IMAGE_57: "https://assets.maocanhua.cn/425c6017-2c30-41d7-8930-08300492c6d4-a0859ca3-5213-484c-9170-2d51329407cc.png",
42354
- IMAGE_58: "https://assets.maocanhua.cn/858ea699-cf65-469d-bd9e-70adea729bb4-c4e7a711-27b6-4865-9b32-516c41cebddf.png",
42355
- IMAGE_59: "https://assets.maocanhua.cn/06ca521d-9728-4de6-a709-1b75a828bfc3-2a9b1224-3d71-43b8-b52f-e7cdcdc9107b.png",
42356
- IMAGE_60: "https://assets.maocanhua.cn/199eacfa-daf8-4dd1-a356-225a265a88a4-e8432435-a2bb-4ec2-a3e9-ee1757d8b44b",
42357
- IMAGE_61: "https://assets.maocanhua.cn/f43b67dc-cc30-4533-b2ca-4689292aab4d-40bc844d-5362-451f-a839-69e86f7a3113",
42358
- IMAGE_62: "https://assets.maocanhua.cn/318e911c-a57b-4768-9c79-0e49c2953e7a-dbe0eb3c-0b4b-495a-a469-a15b46c5a0cc",
42359
- IMAGE_63: "https://assets.maocanhua.cn/ed70ddb1-1344-4245-ab1e-beae36ed44b4-21a80cb3-a928-4857-973b-98992fdec74f",
42360
- IMAGE_64: "https://assets.maocanhua.cn/fb7dd6fa-12c1-41e1-8744-91d0f861ec57-0fee9bda-2381-4c54-a24d-bd644384b9aa",
42361
- IMAGE_65: "https://assets.maocanhua.cn/7bf8c363-17bd-472d-8cca-96f5d4b64292-9ab34957-15d3-4068-8e83-cc283d8e400d",
42362
- IMAGE_66: "https://assets.maocanhua.cn/0330a1e9-e814-4be8-83f0-ee1dbabf44a0-6e35a585-92ec-4570-875b-866b59927583",
42363
- IMAGE_67: "https://assets.maocanhua.cn/a7deb6bc-db2b-4273-bf25-002bb148bf5a-ed5e9b17-15a9-4e0f-9874-c3219d48b2b4",
42364
- IMAGE_68: "https://assets.maocanhua.cn/52c50319-e3a9-401b-9057-bd6531870f10-aa79ec5d-76d2-4d48-a99e-2ccd9d9c285b",
42365
- IMAGE_69: "https://assets.maocanhua.cn/9994cef3-6205-4013-8993-b037d067df64-f5d03db4-6bb4-4af4-b35a-0b6d512eaff4",
42366
- IMAGE_70: "https://assets.maocanhua.cn/e5dd7a7e-70d7-483f-80cc-0c5b41107101-75dcedc7-4a34-4d03-97ee-bf32163afa0a",
42367
- IMAGE_71: "https://assets.maocanhua.cn/53277265-8e54-43d0-b9d0-d34cd1639861-adb7a48a-8382-43a1-ad59-7c84764a3b21.png"
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) {