easy-email-extensions 3.1.55 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ export declare function ClassName(): JSX.Element;
@@ -0,0 +1,6 @@
1
+ export declare function useFontFamily(): {
2
+ fontList: {
3
+ value: string;
4
+ label: string;
5
+ }[];
6
+ };
package/lib/index2.js CHANGED
@@ -55,12 +55,12 @@ var __async = (__this, __arguments, generator) => {
55
55
  };
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
- 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";
58
+ import { IconFont, useEditorProps, Stack as Stack$6, getBlockNodeByIdx, useBlock, getEditNode, getEditContent, TextStyle, useEditorContext, useFocusIdx, getShadowRoot, FIXED_CONTAINER_ID, useFocusBlockLayout, scrollBlockEleIntoView, useHoverIdx, useDataTransfer, useRefState, getBlockNodeByChildEle, getDirectionPosition, DATA_ATTRIBUTE_DROP_CONTAINER, BlockAvatarWrapper, getEditorRoot, useActiveTab, ActiveTabKeys } from "easy-email-editor";
59
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_15b2l_1";
63
+ const title = "_title_1f523_1";
64
64
  var styles$6 = {
65
65
  title
66
66
  };
@@ -38408,14 +38408,14 @@ function RadioGroup(props) {
38408
38408
  value: item2.value
38409
38409
  }, item2.label))));
38410
38410
  }
38411
- const helperText = "_helperText_fadvl_1";
38412
- const labelHidden = "_label-hidden_fadvl_9";
38413
- const editTab = "_editTab_fadvl_20";
38414
- const inputWithUnit = "_inputWithUnit_fadvl_27";
38415
- const inputWithUnitSelectOption = "_inputWithUnitSelectOption_fadvl_35";
38411
+ const helperText = "_helperText_k05ys_1";
38412
+ const labelHidden = "_label-hidden_k05ys_9";
38413
+ const editTab = "_editTab_k05ys_20";
38414
+ const inputWithUnit = "_inputWithUnit_k05ys_27";
38415
+ const inputWithUnitSelectOption = "_inputWithUnitSelectOption_k05ys_35";
38416
38416
  var styles$3 = {
38417
38417
  helperText,
38418
- "label-hidden": "_label-hidden_fadvl_9",
38418
+ "label-hidden": "_label-hidden_k05ys_9",
38419
38419
  labelHidden,
38420
38420
  editTab,
38421
38421
  inputWithUnit,
@@ -38669,20 +38669,30 @@ function classnames(...rest) {
38669
38669
  const { TabPane } = Tabs$1;
38670
38670
  function EditTab(props) {
38671
38671
  const { value, additionItem } = props;
38672
+ const [activeTab, setActiveTab] = useState("0");
38672
38673
  const onAddTab = () => {
38674
+ setActiveTab(value.length.toString());
38673
38675
  props.onChange([...value, additionItem]);
38674
38676
  };
38675
38677
  const onDeleteTab = (index2) => {
38678
+ if (index2 < activeTab) {
38679
+ setActiveTab((Number(activeTab) - 1).toString());
38680
+ }
38681
+ if (index2 === activeTab) {
38682
+ setActiveTab(Number(index2) > 0 ? `${Number(index2) - 1}` : "0");
38683
+ }
38676
38684
  props.onChange(value.filter((_, vIndex) => Number(index2) !== vIndex));
38677
38685
  };
38678
38686
  return /* @__PURE__ */ React__default.createElement(Tabs$1, {
38679
38687
  className: classnames(styles$3.editTab),
38680
38688
  style: { border: "none" },
38681
38689
  type: "card",
38690
+ activeTab,
38682
38691
  tabPosition: props.tabPosition,
38683
38692
  editable: true,
38684
38693
  onAddTab,
38685
- onDeleteTab
38694
+ onDeleteTab,
38695
+ onChange: setActiveTab
38686
38696
  }, (Array.isArray(value) ? value : []).map((item2, index2) => /* @__PURE__ */ React__default.createElement(TabPane, {
38687
38697
  style: { paddingLeft: 12 },
38688
38698
  title: `${props.label || "Tab"} ${index2 + 1}`,
@@ -38947,8 +38957,27 @@ function FontSizeList(props) {
38947
38957
  key: item2.value
38948
38958
  }, item2.label))));
38949
38959
  }
38960
+ function useFontFamily() {
38961
+ const { fontList: defaultFontList } = useEditorProps();
38962
+ const { pageData: pageData2 } = useEditorContext();
38963
+ const addFonts = pageData2.data.value.fonts;
38964
+ const fontList2 = useMemo(() => {
38965
+ const fonts = [];
38966
+ if (defaultFontList) {
38967
+ fonts.push(...defaultFontList);
38968
+ }
38969
+ if (addFonts) {
38970
+ const options2 = addFonts.map((item2) => ({ value: item2.name, label: item2.name }));
38971
+ fonts.unshift(...options2);
38972
+ }
38973
+ return fonts;
38974
+ }, [addFonts, defaultFontList]);
38975
+ return {
38976
+ fontList: fontList2
38977
+ };
38978
+ }
38950
38979
  function FontFamily$1(props) {
38951
- const { fontList: fontList2 = [] } = useEditorProps();
38980
+ const { fontList: fontList2 } = useFontFamily();
38952
38981
  return /* @__PURE__ */ React__default.createElement("div", {
38953
38982
  style: {
38954
38983
  maxWidth: 150,
@@ -39140,13 +39169,11 @@ function AddFont() {
39140
39169
  }, /* @__PURE__ */ React__default.createElement(Stack$6.Item, {
39141
39170
  fill: true
39142
39171
  }, /* @__PURE__ */ React__default.createElement(TextField, {
39143
- inline: true,
39144
39172
  name: `${focusIdx2}.data.value.fonts.${index2}.name`,
39145
39173
  label: "Name"
39146
39174
  })), /* @__PURE__ */ React__default.createElement(Stack$6.Item, {
39147
39175
  fill: true
39148
39176
  }, /* @__PURE__ */ React__default.createElement(TextField, {
39149
- inline: true,
39150
39177
  name: `${focusIdx2}.data.value.fonts.${index2}.href`,
39151
39178
  label: "Href"
39152
39179
  })), /* @__PURE__ */ React__default.createElement(Button$4, {
@@ -39217,8 +39244,8 @@ function EyeIcon() {
39217
39244
  });
39218
39245
  }
39219
39246
  function FontFamily() {
39220
- const { fontList: fontList2 = [] } = useEditorProps();
39221
39247
  const { focusIdx: focusIdx2 } = useFocusIdx();
39248
+ const { fontList: fontList2 } = useFontFamily();
39222
39249
  return useMemo(() => {
39223
39250
  return /* @__PURE__ */ React__default.createElement(AutoCompleteField, {
39224
39251
  style: { minWidth: 100, flex: 1 },
@@ -39298,7 +39325,10 @@ function Page() {
39298
39325
  }, /* @__PURE__ */ React__default.createElement(ColorPickerField, {
39299
39326
  label: "Content background",
39300
39327
  name: `${focusIdx2}.data.value.content-background-color`
39301
- }))), /* @__PURE__ */ React__default.createElement(AddFont, null))))));
39328
+ }))), /* @__PURE__ */ React__default.createElement(TextAreaField, {
39329
+ label: "Style",
39330
+ name: `${focusIdx2}.data.value.user-style.content`
39331
+ }), /* @__PURE__ */ React__default.createElement(AddFont, null))))));
39302
39332
  }
39303
39333
  function Padding(props = {}) {
39304
39334
  const { title: title2 = "Padding", attributeName = "padding" } = props;
@@ -39449,6 +39479,15 @@ function Border() {
39449
39479
  })));
39450
39480
  }, [focusIdx2]);
39451
39481
  }
39482
+ function ClassName() {
39483
+ const { focusIdx: focusIdx2 } = useFocusIdx();
39484
+ return useMemo(() => {
39485
+ return /* @__PURE__ */ React__default.createElement(TextField, {
39486
+ label: "Class name",
39487
+ name: `${focusIdx2}.attributes.css-class`
39488
+ });
39489
+ }, [focusIdx2]);
39490
+ }
39452
39491
  function Section() {
39453
39492
  const { focusIdx: focusIdx2 } = useFocusIdx();
39454
39493
  const { focusBlock: focusBlock2, setFocusBlock } = useBlock();
@@ -39511,7 +39550,12 @@ function Section() {
39511
39550
  }, /* @__PURE__ */ React__default.createElement(Background, null))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
39512
39551
  name: "2",
39513
39552
  header: "Border"
39514
- }, /* @__PURE__ */ React__default.createElement(Border, null))));
39553
+ }, /* @__PURE__ */ React__default.createElement(Border, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
39554
+ name: "4",
39555
+ header: "Extra"
39556
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
39557
+ span: 24
39558
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
39515
39559
  }
39516
39560
  function Width({
39517
39561
  inline = false,
@@ -39581,7 +39625,12 @@ function Column() {
39581
39625
  }, /* @__PURE__ */ React__default.createElement(Background, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
39582
39626
  name: "2",
39583
39627
  header: "Border"
39584
- }, /* @__PURE__ */ React__default.createElement(Border, null))));
39628
+ }, /* @__PURE__ */ React__default.createElement(Border, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
39629
+ name: "4",
39630
+ header: "Extra"
39631
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
39632
+ span: 24
39633
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
39585
39634
  }
39586
39635
  const options$9 = [
39587
39636
  {
@@ -39926,7 +39975,12 @@ function Text() {
39926
39975
  }), /* @__PURE__ */ React__default.createElement(Grid.Col, {
39927
39976
  offset: 1,
39928
39977
  span: 11
39929
- }))))), /* @__PURE__ */ React__default.createElement(HtmlEditor, {
39978
+ })))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
39979
+ name: "4",
39980
+ header: "Extra"
39981
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
39982
+ span: 24
39983
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))), /* @__PURE__ */ React__default.createElement(HtmlEditor, {
39930
39984
  visible,
39931
39985
  setVisible
39932
39986
  }));
@@ -40018,7 +40072,12 @@ function Image$1() {
40018
40072
  }, /* @__PURE__ */ React__default.createElement(TextField, {
40019
40073
  label: "alt",
40020
40074
  name: `${focusIdx2}.attributes.alt`
40021
- }))))));
40075
+ }))), /* @__PURE__ */ React__default.createElement(Grid.Col, {
40076
+ span: 24
40077
+ }, /* @__PURE__ */ React__default.createElement(TextField, {
40078
+ label: "class name",
40079
+ name: `${focusIdx2}.attributes.css-class`
40080
+ })))));
40022
40081
  }
40023
40082
  function Group() {
40024
40083
  return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, null, /* @__PURE__ */ React__default.createElement(Collapse$1, {
@@ -40039,7 +40098,12 @@ function Group() {
40039
40098
  }, /* @__PURE__ */ React__default.createElement(BackgroundColor, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
40040
40099
  offset: 1,
40041
40100
  span: 11
40042
- })))));
40101
+ }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
40102
+ name: "4",
40103
+ header: "Extra"
40104
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
40105
+ span: 24
40106
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
40043
40107
  }
40044
40108
  const options$5 = [
40045
40109
  {
@@ -40512,7 +40576,12 @@ function Button() {
40512
40576
  }, /* @__PURE__ */ React__default.createElement(LetterSpacing, null))), /* @__PURE__ */ React__default.createElement(Align, null), /* @__PURE__ */ React__default.createElement(FontStyle, null))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
40513
40577
  name: "3",
40514
40578
  header: "Border"
40515
- }, /* @__PURE__ */ React__default.createElement(Border, null))));
40579
+ }, /* @__PURE__ */ React__default.createElement(Border, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
40580
+ name: "4",
40581
+ header: "Extra"
40582
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
40583
+ span: 24
40584
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
40516
40585
  }
40517
40586
  function Divider() {
40518
40587
  return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, null, /* @__PURE__ */ React__default.createElement(Collapse$1, {
@@ -40551,7 +40620,12 @@ function Divider() {
40551
40620
  })), /* @__PURE__ */ React__default.createElement(Grid.Col, {
40552
40621
  offset: 1,
40553
40622
  span: 11
40554
- })))));
40623
+ }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
40624
+ name: "4",
40625
+ header: "Extra"
40626
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
40627
+ span: 24
40628
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
40555
40629
  }
40556
40630
  function Wrapper() {
40557
40631
  const { focusIdx: focusIdx2 } = useFocusIdx();
@@ -40585,7 +40659,12 @@ function Wrapper() {
40585
40659
  label: "Background border radius",
40586
40660
  name: `${focusIdx2}.attributes.border-radius`,
40587
40661
  inline: true
40588
- })))));
40662
+ }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
40663
+ name: "4",
40664
+ header: "Extra"
40665
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
40666
+ span: 24
40667
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
40589
40668
  }
40590
40669
  function Spacer() {
40591
40670
  return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, null, /* @__PURE__ */ React__default.createElement(Collapse$1, {
@@ -40600,7 +40679,12 @@ function Spacer() {
40600
40679
  header: "Background"
40601
40680
  }, /* @__PURE__ */ React__default.createElement(ContainerBackgroundColor, {
40602
40681
  title: "Background color"
40603
- }))));
40682
+ })), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
40683
+ name: "4",
40684
+ header: "Extra"
40685
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
40686
+ span: 24
40687
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
40604
40688
  }
40605
40689
  function Raw() {
40606
40690
  const { focusIdx: focusIdx2 } = useFocusIdx();
@@ -40690,7 +40774,12 @@ function Accordion() {
40690
40774
  }))), /* @__PURE__ */ React__default.createElement(TextField, {
40691
40775
  label: "border",
40692
40776
  name: `${focusIdx2}.attributes.border`
40693
- })))));
40777
+ }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
40778
+ name: "4",
40779
+ header: "Extra"
40780
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
40781
+ span: 24
40782
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
40694
40783
  }
40695
40784
  function AccordionElement() {
40696
40785
  const { focusIdx: focusIdx2 } = useFocusIdx();
@@ -40913,7 +41002,12 @@ function Carousel() {
40913
41002
  }, /* @__PURE__ */ React__default.createElement(TextField, {
40914
41003
  label: "Border radius of the thumbnails",
40915
41004
  name: `${focusIdx2}.attributes.tb-border-radius`
40916
- }))))));
41005
+ })))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
41006
+ name: "4",
41007
+ header: "Extra"
41008
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
41009
+ span: 24
41010
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
40917
41011
  }
40918
41012
  function CarouselImage({
40919
41013
  item: item2,
@@ -41020,7 +41114,12 @@ function Hero() {
41020
41114
  unitOptions: "percent"
41021
41115
  })), /* @__PURE__ */ React__default.createElement(Grid.Col, {
41022
41116
  span: 11
41023
- }, /* @__PURE__ */ React__default.createElement(BackgroundColor, null)))))));
41117
+ }, /* @__PURE__ */ React__default.createElement(BackgroundColor, null))))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
41118
+ name: "4",
41119
+ header: "Extra"
41120
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
41121
+ span: 24
41122
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
41024
41123
  }
41025
41124
  function Navbar() {
41026
41125
  const { focusIdx: focusIdx2 } = useFocusIdx();
@@ -41054,7 +41153,12 @@ function Navbar() {
41054
41153
  color: "#1890ff",
41055
41154
  "font-size": "13px"
41056
41155
  }
41057
- }))));
41156
+ })), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
41157
+ name: "4",
41158
+ header: "Extra"
41159
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
41160
+ span: 24
41161
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
41058
41162
  }
41059
41163
  function NavbarLink({
41060
41164
  item: item2,
@@ -41196,7 +41300,12 @@ function Social() {
41196
41300
  }), /* @__PURE__ */ React__default.createElement(Padding, {
41197
41301
  attributeName: "text-padding",
41198
41302
  title: "Text padding"
41199
- })))));
41303
+ }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
41304
+ name: "4",
41305
+ header: "Extra"
41306
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
41307
+ span: 24
41308
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
41200
41309
  }
41201
41310
  function SocialElement({
41202
41311
  index: index2
@@ -42062,7 +42171,12 @@ function BlockLayer(props) {
42062
42171
  style: { fontSize: 12, color: "#999" }
42063
42172
  }), /* @__PURE__ */ React__default.createElement("div", {
42064
42173
  title: lodash.exports.isString(title2) ? title2 : "",
42065
- style: { overflow: "hidden", whiteSpace: "nowrap", width: "5em" }
42174
+ style: {
42175
+ overflow: "hidden",
42176
+ whiteSpace: "nowrap",
42177
+ width: "5em",
42178
+ textOverflow: "ellipsis"
42179
+ }
42066
42180
  }, /* @__PURE__ */ React__default.createElement(TextStyle, {
42067
42181
  size: "smallest"
42068
42182
  }, title2))), /* @__PURE__ */ React__default.createElement("div", {
@@ -44899,7 +45013,6 @@ function TipNode(props) {
44899
45013
  }
44900
45014
  }, type === "hover" && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("div", {
44901
45015
  style: {
44902
- position: "fixed",
44903
45016
  backgroundColor: color,
44904
45017
  color: "#ffffff",
44905
45018
  height: "22px",
@@ -44908,7 +45021,8 @@ function TipNode(props) {
44908
45021
  padding: "1px 5px",
44909
45022
  boxSizing: "border-box",
44910
45023
  whiteSpace: "nowrap",
44911
- transform: "translateX(-100%)"
45024
+ transform: "translateX(-100%)",
45025
+ fontFamily: "sans-serif"
44912
45026
  }
44913
45027
  }, title2))), props.isDragging && /* @__PURE__ */ React__default.createElement("div", {
44914
45028
  style: __spreadValues({