easy-email-extensions 4.7.0 → 4.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index2.js CHANGED
@@ -34364,33 +34364,109 @@ function VerticalAlign({
34364
34364
  }));
34365
34365
  }, [attributeName, focusIdx2]);
34366
34366
  }
34367
- function Column() {
34368
- return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, null, /* @__PURE__ */ React__default.createElement(CollapseWrapper, {
34369
- defaultActiveKey: ["0", "1", "2"]
34370
- }, /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34371
- name: "0",
34372
- header: t("Dimension")
34373
- }, /* @__PURE__ */ React__default.createElement(Space$1, {
34374
- direction: "vertical"
34375
- }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34376
- span: 11
34377
- }, /* @__PURE__ */ React__default.createElement(Width, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34378
- offset: 1,
34379
- span: 11
34380
- }, /* @__PURE__ */ React__default.createElement(VerticalAlign, null))), /* @__PURE__ */ React__default.createElement(Padding, null))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34381
- name: "1",
34382
- header: t("Background")
34383
- }, /* @__PURE__ */ React__default.createElement(Background, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34384
- name: "2",
34385
- header: t("Border")
34386
- }, /* @__PURE__ */ React__default.createElement(Border, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34387
- name: "4",
34388
- header: t("Extra")
34389
- }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34390
- span: 24
34391
- }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
34392
- }
34393
34367
  const options$9 = [
34368
+ {
34369
+ value: "left",
34370
+ get label() {
34371
+ return t("left");
34372
+ }
34373
+ },
34374
+ {
34375
+ value: "center",
34376
+ get label() {
34377
+ return t("center");
34378
+ }
34379
+ },
34380
+ {
34381
+ value: "right",
34382
+ get label() {
34383
+ return t("right");
34384
+ }
34385
+ }
34386
+ ];
34387
+ function Align({ inline }) {
34388
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34389
+ return /* @__PURE__ */ React__default.createElement(RadioGroupField, {
34390
+ label: t("Align"),
34391
+ name: `${focusIdx2}.attributes.align`,
34392
+ options: options$9
34393
+ });
34394
+ }
34395
+ function Color({ title: title2 = t("Color") }) {
34396
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34397
+ return /* @__PURE__ */ React__default.createElement(ColorPickerField, {
34398
+ label: title2,
34399
+ name: `${focusIdx2}.attributes.color`
34400
+ });
34401
+ }
34402
+ function Height({
34403
+ inline,
34404
+ config: config2
34405
+ }) {
34406
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34407
+ return useMemo(() => {
34408
+ return /* @__PURE__ */ React__default.createElement(Stack$4, {
34409
+ wrap: false
34410
+ }, /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
34411
+ fill: true
34412
+ }, /* @__PURE__ */ React__default.createElement(TextField, {
34413
+ label: t("Height"),
34414
+ name: `${focusIdx2}.attributes.height`,
34415
+ quickchange: true,
34416
+ inline,
34417
+ config: config2
34418
+ })));
34419
+ }, [focusIdx2, inline]);
34420
+ }
34421
+ const options$8 = [
34422
+ {
34423
+ value: "left",
34424
+ get label() {
34425
+ return t("Left");
34426
+ }
34427
+ },
34428
+ {
34429
+ value: "center",
34430
+ get label() {
34431
+ return t("Center");
34432
+ }
34433
+ },
34434
+ {
34435
+ value: "right",
34436
+ get label() {
34437
+ return t("Right");
34438
+ }
34439
+ }
34440
+ ];
34441
+ function TextAlign({ name: name2 }) {
34442
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34443
+ return useMemo(() => {
34444
+ return /* @__PURE__ */ React__default.createElement(Stack$4, null, /* @__PURE__ */ React__default.createElement(RadioGroupField, {
34445
+ label: t("Text align"),
34446
+ name: name2 || `${focusIdx2}.attributes.text-align`,
34447
+ options: options$8
34448
+ }));
34449
+ }, [focusIdx2, name2]);
34450
+ }
34451
+ function ContainerBackgroundColor({
34452
+ title: title2 = t("Container background color")
34453
+ }) {
34454
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34455
+ return useMemo(() => {
34456
+ return /* @__PURE__ */ React__default.createElement(ColorPickerField, {
34457
+ label: title2,
34458
+ name: `${focusIdx2}.attributes.container-background-color`
34459
+ });
34460
+ }, [focusIdx2, title2]);
34461
+ }
34462
+ function LetterSpacing({ name: name2 }) {
34463
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34464
+ return /* @__PURE__ */ React__default.createElement(InputWithUnitField, {
34465
+ label: t("Letter spacing"),
34466
+ name: name2 || `${focusIdx2}.attributes.letter-spacing`
34467
+ });
34468
+ }
34469
+ const options$7 = [
34394
34470
  {
34395
34471
  value: "",
34396
34472
  get label() {
@@ -34434,121 +34510,186 @@ function TextDecoration({ name: name2 }) {
34434
34510
  return /* @__PURE__ */ React__default.createElement(SelectField, {
34435
34511
  label: t("Text decoration"),
34436
34512
  name: name2 || `${focusIdx2}.attributes.text-decoration`,
34437
- options: options$9
34513
+ options: options$7
34438
34514
  });
34439
34515
  }, [focusIdx2, name2]);
34440
34516
  }
34441
- const options$8 = [
34517
+ function Decoration() {
34518
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34519
+ return useMemo(() => {
34520
+ return /* @__PURE__ */ React__default.createElement(Stack$4, {
34521
+ key: focusIdx2,
34522
+ vertical: true,
34523
+ spacing: "extraTight"
34524
+ }, /* @__PURE__ */ React__default.createElement(TextStyle, {
34525
+ variation: "strong",
34526
+ size: "large"
34527
+ }, "Decoration"), /* @__PURE__ */ React__default.createElement(TextField, {
34528
+ label: t("Border radius"),
34529
+ name: `${focusIdx2}.attributes.borderRadius`,
34530
+ inline: true
34531
+ }), /* @__PURE__ */ React__default.createElement(TextField, {
34532
+ label: t("Border"),
34533
+ name: `${focusIdx2}.attributes.border`,
34534
+ inline: true
34535
+ }), /* @__PURE__ */ React__default.createElement(NumberField, {
34536
+ label: t("Opacity"),
34537
+ max: 1,
34538
+ min: 0,
34539
+ step: 0.1,
34540
+ name: `${focusIdx2}.attributes.opacity`,
34541
+ inline: true
34542
+ }));
34543
+ }, [focusIdx2]);
34544
+ }
34545
+ function LineHeight({ name: name2 }) {
34546
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34547
+ return /* @__PURE__ */ React__default.createElement(InputWithUnitField, {
34548
+ label: t("Line height"),
34549
+ unitOptions: "percent",
34550
+ name: name2 || `${focusIdx2}.attributes.line-height`
34551
+ });
34552
+ }
34553
+ const options$6 = [
34442
34554
  {
34443
- value: "normal",
34555
+ value: "initial",
34444
34556
  get label() {
34445
- return t("Normal");
34557
+ return t("None");
34446
34558
  }
34447
34559
  },
34448
34560
  {
34449
- value: "bold",
34561
+ value: "uppercase",
34450
34562
  get label() {
34451
- return t("Bold");
34563
+ return t("uppercase");
34452
34564
  }
34453
34565
  },
34454
34566
  {
34455
- value: "100",
34456
- label: "100"
34457
- },
34458
- {
34459
- value: "200",
34460
- label: "200"
34461
- },
34462
- {
34463
- value: "300",
34464
- label: "300"
34465
- },
34466
- {
34467
- value: "400",
34468
- label: "400"
34469
- },
34470
- {
34471
- value: "500",
34472
- label: "500"
34473
- },
34474
- {
34475
- value: "600",
34476
- label: "600"
34477
- },
34478
- {
34479
- value: "700",
34480
- label: "700"
34481
- },
34482
- {
34483
- value: "800",
34484
- label: "800"
34567
+ value: "lowercase",
34568
+ get label() {
34569
+ return t("lowercase");
34570
+ }
34485
34571
  },
34486
34572
  {
34487
- value: "900",
34488
- label: "900"
34573
+ value: "capitalize",
34574
+ get label() {
34575
+ return t("capitalize");
34576
+ }
34489
34577
  }
34490
34578
  ];
34491
- function FontWeight({ name: name2 }) {
34579
+ function TextTransform({ name: name2 }) {
34492
34580
  const { focusIdx: focusIdx2 } = useFocusIdx();
34493
34581
  return useMemo(() => {
34494
34582
  return /* @__PURE__ */ React__default.createElement(SelectField, {
34495
- label: t("Font weight"),
34496
- name: name2 || `${focusIdx2}.attributes.font-weight`,
34497
- options: options$8
34583
+ label: t("Text transform"),
34584
+ name: name2 || `${focusIdx2}.attributes.text-transform`,
34585
+ options: options$6
34498
34586
  });
34499
34587
  }, [focusIdx2, name2]);
34500
34588
  }
34501
- const options$7 = [
34589
+ const options$5 = [
34502
34590
  {
34503
- value: "normal",
34591
+ value: "ltr",
34504
34592
  get label() {
34505
- return t("Normal");
34593
+ return t("ltr");
34506
34594
  }
34507
34595
  },
34508
34596
  {
34509
- value: "italic",
34597
+ value: "rtl",
34510
34598
  get label() {
34511
- return t("Italic");
34599
+ return t("rtl");
34512
34600
  }
34513
34601
  }
34514
34602
  ];
34515
- function FontStyle({ name: name2 }) {
34603
+ function Direction() {
34516
34604
  const { focusIdx: focusIdx2 } = useFocusIdx();
34517
- return /* @__PURE__ */ React__default.createElement(RadioGroupField, {
34518
- label: t("Font style"),
34519
- name: name2 || `${focusIdx2}.attributes.font-style`,
34520
- options: options$7
34521
- });
34605
+ return useMemo(() => {
34606
+ return /* @__PURE__ */ React__default.createElement(Stack$4, null, /* @__PURE__ */ React__default.createElement(RadioGroupField, {
34607
+ label: t("Direction"),
34608
+ name: `${focusIdx2}.attributes.direction`,
34609
+ options: options$5,
34610
+ inline: true
34611
+ }));
34612
+ }, [focusIdx2]);
34522
34613
  }
34523
- function Height({
34524
- inline,
34525
- config: config2
34526
- }) {
34614
+ function Link() {
34527
34615
  const { focusIdx: focusIdx2 } = useFocusIdx();
34528
34616
  return useMemo(() => {
34529
- return /* @__PURE__ */ React__default.createElement(Stack$4, {
34530
- wrap: false
34531
- }, /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
34532
- fill: true
34617
+ return /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34618
+ span: 11
34533
34619
  }, /* @__PURE__ */ React__default.createElement(TextField, {
34534
- label: t("Height"),
34535
- name: `${focusIdx2}.attributes.height`,
34536
- quickchange: true,
34537
- inline,
34538
- config: config2
34620
+ prefix: /* @__PURE__ */ React__default.createElement(IconLink$1, null),
34621
+ label: /* @__PURE__ */ React__default.createElement("span", null, t("Href"), "\xA0\xA0\xA0"),
34622
+ name: `${focusIdx2}.attributes.href`
34623
+ })), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34624
+ offset: 1,
34625
+ span: 11
34626
+ }, /* @__PURE__ */ React__default.createElement(SelectField, {
34627
+ label: t("Target"),
34628
+ name: `${focusIdx2}.attributes.target`,
34629
+ options: [
34630
+ {
34631
+ value: "",
34632
+ label: t("_self")
34633
+ },
34634
+ {
34635
+ value: "_blank",
34636
+ label: t("_blank")
34637
+ }
34638
+ ]
34539
34639
  })));
34540
- }, [focusIdx2, inline]);
34640
+ }, [focusIdx2]);
34541
34641
  }
34542
- function ContainerBackgroundColor({
34543
- title: title2 = t("Container background color")
34544
- }) {
34642
+ function Margin() {
34643
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34644
+ return useMemo(() => {
34645
+ return /* @__PURE__ */ React__default.createElement(Stack$4, {
34646
+ vertical: true,
34647
+ spacing: "extraTight"
34648
+ }, /* @__PURE__ */ React__default.createElement(TextStyle, {
34649
+ size: "large"
34650
+ }, t("Margin")), /* @__PURE__ */ React__default.createElement(Stack$4, {
34651
+ wrap: false
34652
+ }, /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
34653
+ fill: true
34654
+ }, /* @__PURE__ */ React__default.createElement(TextField, {
34655
+ label: t("Top"),
34656
+ quickchange: true,
34657
+ name: `${focusIdx2}.attributes.marginTop`,
34658
+ inline: true
34659
+ })), /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
34660
+ fill: true
34661
+ }, /* @__PURE__ */ React__default.createElement(TextField, {
34662
+ label: t("Bottom"),
34663
+ quickchange: true,
34664
+ name: `${focusIdx2}.attributes.marginBottom`,
34665
+ inline: true
34666
+ }))), /* @__PURE__ */ React__default.createElement(Stack$4, {
34667
+ wrap: false
34668
+ }, /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
34669
+ fill: true
34670
+ }, /* @__PURE__ */ React__default.createElement(TextField, {
34671
+ label: t("Left"),
34672
+ quickchange: true,
34673
+ name: `${focusIdx2}.attributes.marginLeft`,
34674
+ inline: true
34675
+ })), /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
34676
+ fill: true
34677
+ }, /* @__PURE__ */ React__default.createElement(TextField, {
34678
+ label: t("Right"),
34679
+ quickchange: true,
34680
+ name: `${focusIdx2}.attributes.marginRight`,
34681
+ inline: true
34682
+ }))));
34683
+ }, [focusIdx2]);
34684
+ }
34685
+ function BorderColor() {
34545
34686
  const { focusIdx: focusIdx2 } = useFocusIdx();
34546
34687
  return useMemo(() => {
34547
34688
  return /* @__PURE__ */ React__default.createElement(ColorPickerField, {
34548
- label: title2,
34549
- name: `${focusIdx2}.attributes.container-background-color`
34689
+ label: t("Color"),
34690
+ name: `${focusIdx2}.attributes.border-color`
34550
34691
  });
34551
- }, [focusIdx2, title2]);
34692
+ }, [focusIdx2]);
34552
34693
  }
34553
34694
  function FontSize$1() {
34554
34695
  const { focusIdx: focusIdx2 } = useFocusIdx();
@@ -34559,56 +34700,304 @@ function FontSize$1() {
34559
34700
  autoComplete: "off"
34560
34701
  });
34561
34702
  }
34562
- function Color({ title: title2 = t("Color") }) {
34563
- const { focusIdx: focusIdx2 } = useFocusIdx();
34564
- return /* @__PURE__ */ React__default.createElement(ColorPickerField, {
34565
- label: title2,
34566
- name: `${focusIdx2}.attributes.color`
34567
- });
34703
+ function getContextMergeTags(mergeTags2, context, idx) {
34704
+ const loop = (currentIdx, combineMergeTags) => {
34705
+ var _a, _b;
34706
+ const parentBlockData = lodash.exports.get(context, currentIdx);
34707
+ if (!parentBlockData)
34708
+ return combineMergeTags;
34709
+ const parentBlock = BlockManager.getBlockByType(parentBlockData.type);
34710
+ if (parentBlock && parentBlock.render) {
34711
+ const dataSource = (_b = (_a = parentBlockData.data) == null ? void 0 : _a.value) == null ? void 0 : _b.dataSource;
34712
+ if (!dataSource)
34713
+ return combineMergeTags;
34714
+ Object.keys(dataSource).forEach((key) => {
34715
+ let formatKey = dataSource[key];
34716
+ const loopFormatKey = (currentLoopKeyIdx) => {
34717
+ const currentParentIdx = getParentIdx(currentLoopKeyIdx);
34718
+ if (currentParentIdx) {
34719
+ const currentBlockData = lodash.exports.get(context, currentParentIdx);
34720
+ if (!currentBlockData)
34721
+ return formatKey;
34722
+ currentBlockData.data.value.dataSource && Object.keys(currentBlockData.data.value.dataSource).forEach((item2) => {
34723
+ formatKey = formatKey.replace(item2, currentBlockData.data.value.dataSource[item2].replace(/{{([^}}]+)}}/g, "$1"));
34724
+ });
34725
+ loopFormatKey(currentParentIdx);
34726
+ }
34727
+ };
34728
+ loopFormatKey(currentIdx);
34729
+ const dataSourcePath = formatKey.replace(/{{([^}}]+)}}/g, "$1");
34730
+ combineMergeTags = __spreadValues({
34731
+ [key]: lodash.exports.get(combineMergeTags, dataSourcePath)
34732
+ }, combineMergeTags);
34733
+ });
34734
+ }
34735
+ const parentIdx = getParentIdx(currentIdx);
34736
+ if (!parentIdx)
34737
+ return combineMergeTags;
34738
+ return loop(parentIdx, combineMergeTags);
34739
+ };
34740
+ return loop(idx, lodash.exports.cloneDeep(mergeTags2));
34568
34741
  }
34569
- const options$6 = [
34742
+ const MergeTags$1 = React__default.memo((props) => {
34743
+ const [expandedKeys, setExpandedKeys] = useState([]);
34744
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34745
+ const {
34746
+ mergeTags: mergeTags2 = {},
34747
+ mergeTagGenerate,
34748
+ renderMergeTagContent
34749
+ } = useEditorProps();
34750
+ const { values: values2 } = useBlock();
34751
+ const contextMergeTags = useMemo(() => getContextMergeTags(mergeTags2, values2, focusIdx2), [mergeTags2, values2, focusIdx2]);
34752
+ const treeOptions = useMemo(() => {
34753
+ const treeData = [];
34754
+ const deep = (key, title2, parent2, mapData = []) => {
34755
+ const currentMapData = {
34756
+ key,
34757
+ value: key,
34758
+ title: title2,
34759
+ children: []
34760
+ };
34761
+ mapData.push(currentMapData);
34762
+ const current = parent2[title2];
34763
+ if (current && typeof current === "object") {
34764
+ Object.keys(current).map((childKey) => deep(key + "." + childKey, childKey, current, currentMapData.children));
34765
+ }
34766
+ };
34767
+ Object.keys(contextMergeTags).map((key) => deep(key, key, contextMergeTags, treeData));
34768
+ return treeData;
34769
+ }, [contextMergeTags]);
34770
+ const onSelect = useCallback((key) => {
34771
+ const value = lodash.exports.get(contextMergeTags, key);
34772
+ if (lodash.exports.isObject(value)) {
34773
+ setExpandedKeys((keys2) => {
34774
+ if (keys2.includes(key)) {
34775
+ return keys2.filter((k) => k !== key);
34776
+ } else {
34777
+ return [...keys2, key];
34778
+ }
34779
+ });
34780
+ return;
34781
+ }
34782
+ return props.onChange(mergeTagGenerate(key));
34783
+ }, [contextMergeTags, props, mergeTagGenerate]);
34784
+ const mergeTagContent = useMemo(() => renderMergeTagContent ? renderMergeTagContent({
34785
+ onChange: props.onChange,
34786
+ isSelect: Boolean(props.isSelect),
34787
+ value: props.value
34788
+ }) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null), [renderMergeTagContent, props.onChange, props.isSelect, props.value]);
34789
+ if (renderMergeTagContent) {
34790
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, mergeTagContent);
34791
+ }
34792
+ return /* @__PURE__ */ React__default.createElement("div", {
34793
+ style: { color: "#333" }
34794
+ }, props.isSelect ? /* @__PURE__ */ React__default.createElement(TreeSelect$1, {
34795
+ value: props.value,
34796
+ size: "small",
34797
+ dropdownMenuStyle: { maxHeight: 400, overflow: "auto" },
34798
+ placeholder: t("Please select"),
34799
+ treeData: treeOptions,
34800
+ onChange: (val) => onSelect(val)
34801
+ }) : /* @__PURE__ */ React__default.createElement(Tree$1, {
34802
+ expandedKeys,
34803
+ onExpand: setExpandedKeys,
34804
+ selectedKeys: [],
34805
+ treeData: treeOptions,
34806
+ onSelect: (vals) => onSelect(vals[0]),
34807
+ style: {
34808
+ maxHeight: 400,
34809
+ overflow: "auto"
34810
+ }
34811
+ }));
34812
+ });
34813
+ const borderStyleOptions = [
34570
34814
  {
34571
- value: "left",
34815
+ value: "dashed",
34572
34816
  get label() {
34573
- return t("left");
34817
+ return t("Dashed");
34574
34818
  }
34575
34819
  },
34576
34820
  {
34577
- value: "center",
34821
+ value: "dotted",
34578
34822
  get label() {
34579
- return t("center");
34823
+ return t("Dotted");
34580
34824
  }
34581
34825
  },
34582
34826
  {
34583
- value: "right",
34827
+ value: "solid",
34584
34828
  get label() {
34585
- return t("right");
34829
+ return t("Solid");
34830
+ }
34831
+ },
34832
+ {
34833
+ value: "double",
34834
+ get label() {
34835
+ return t("double");
34836
+ }
34837
+ },
34838
+ {
34839
+ value: "ridge",
34840
+ get label() {
34841
+ return t("ridge");
34842
+ }
34843
+ },
34844
+ {
34845
+ value: "groove",
34846
+ get label() {
34847
+ return t("groove");
34848
+ }
34849
+ },
34850
+ {
34851
+ value: "inset",
34852
+ get label() {
34853
+ return t("inset");
34854
+ }
34855
+ },
34856
+ {
34857
+ value: "outset",
34858
+ get label() {
34859
+ return t("outset");
34586
34860
  }
34587
34861
  }
34588
34862
  ];
34589
- function Align({ inline }) {
34590
- const { focusIdx: focusIdx2 } = useFocusIdx();
34591
- return /* @__PURE__ */ React__default.createElement(RadioGroupField, {
34592
- label: t("Align"),
34593
- name: `${focusIdx2}.attributes.align`,
34594
- options: options$6
34595
- });
34596
- }
34597
- function LineHeight({ name: name2 }) {
34863
+ function BorderStyle() {
34598
34864
  const { focusIdx: focusIdx2 } = useFocusIdx();
34599
- return /* @__PURE__ */ React__default.createElement(InputWithUnitField, {
34600
- label: t("Line height"),
34601
- unitOptions: "percent",
34602
- name: name2 || `${focusIdx2}.attributes.line-height`
34603
- });
34865
+ return useMemo(() => {
34866
+ return /* @__PURE__ */ React__default.createElement(SelectField, {
34867
+ label: t("Style"),
34868
+ name: `${focusIdx2}.attributes.border-style`,
34869
+ options: borderStyleOptions
34870
+ });
34871
+ }, [focusIdx2]);
34604
34872
  }
34605
- function LetterSpacing({ name: name2 }) {
34873
+ const options$4 = [
34874
+ {
34875
+ value: "normal",
34876
+ get label() {
34877
+ return t("Normal");
34878
+ }
34879
+ },
34880
+ {
34881
+ value: "italic",
34882
+ get label() {
34883
+ return t("Italic");
34884
+ }
34885
+ }
34886
+ ];
34887
+ function FontStyle({ name: name2 }) {
34606
34888
  const { focusIdx: focusIdx2 } = useFocusIdx();
34607
- return /* @__PURE__ */ React__default.createElement(InputWithUnitField, {
34608
- label: t("Letter spacing"),
34609
- name: name2 || `${focusIdx2}.attributes.letter-spacing`
34889
+ return /* @__PURE__ */ React__default.createElement(RadioGroupField, {
34890
+ label: t("Font style"),
34891
+ name: name2 || `${focusIdx2}.attributes.font-style`,
34892
+ options: options$4
34610
34893
  });
34611
34894
  }
34895
+ function NavbarLinkPadding({ name: name2 }) {
34896
+ return useMemo(() => {
34897
+ return /* @__PURE__ */ React__default.createElement(Stack$4, {
34898
+ vertical: true,
34899
+ spacing: "extraTight"
34900
+ }, /* @__PURE__ */ React__default.createElement(Padding, {
34901
+ name: name2
34902
+ }));
34903
+ }, [name2]);
34904
+ }
34905
+ function BorderWidth() {
34906
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34907
+ return useMemo(() => {
34908
+ return /* @__PURE__ */ React__default.createElement(TextField, {
34909
+ label: t("Width"),
34910
+ quickchange: true,
34911
+ name: `${focusIdx2}.attributes.border-width`
34912
+ });
34913
+ }, [focusIdx2]);
34914
+ }
34915
+ const options$3 = [
34916
+ {
34917
+ value: "normal",
34918
+ get label() {
34919
+ return t("Normal");
34920
+ }
34921
+ },
34922
+ {
34923
+ value: "bold",
34924
+ get label() {
34925
+ return t("Bold");
34926
+ }
34927
+ },
34928
+ {
34929
+ value: "100",
34930
+ label: "100"
34931
+ },
34932
+ {
34933
+ value: "200",
34934
+ label: "200"
34935
+ },
34936
+ {
34937
+ value: "300",
34938
+ label: "300"
34939
+ },
34940
+ {
34941
+ value: "400",
34942
+ label: "400"
34943
+ },
34944
+ {
34945
+ value: "500",
34946
+ label: "500"
34947
+ },
34948
+ {
34949
+ value: "600",
34950
+ label: "600"
34951
+ },
34952
+ {
34953
+ value: "700",
34954
+ label: "700"
34955
+ },
34956
+ {
34957
+ value: "800",
34958
+ label: "800"
34959
+ },
34960
+ {
34961
+ value: "900",
34962
+ label: "900"
34963
+ }
34964
+ ];
34965
+ function FontWeight({ name: name2 }) {
34966
+ const { focusIdx: focusIdx2 } = useFocusIdx();
34967
+ return useMemo(() => {
34968
+ return /* @__PURE__ */ React__default.createElement(SelectField, {
34969
+ label: t("Font weight"),
34970
+ name: name2 || `${focusIdx2}.attributes.font-weight`,
34971
+ options: options$3
34972
+ });
34973
+ }, [focusIdx2, name2]);
34974
+ }
34975
+ function Column() {
34976
+ return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, null, /* @__PURE__ */ React__default.createElement(CollapseWrapper, {
34977
+ defaultActiveKey: ["0", "1", "2"]
34978
+ }, /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34979
+ name: "0",
34980
+ header: t("Dimension")
34981
+ }, /* @__PURE__ */ React__default.createElement(Space$1, {
34982
+ direction: "vertical"
34983
+ }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34984
+ span: 11
34985
+ }, /* @__PURE__ */ React__default.createElement(Width, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34986
+ offset: 1,
34987
+ span: 11
34988
+ }, /* @__PURE__ */ React__default.createElement(VerticalAlign, null))), /* @__PURE__ */ React__default.createElement(Padding, null))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34989
+ name: "1",
34990
+ header: t("Background")
34991
+ }, /* @__PURE__ */ React__default.createElement(BackgroundColor, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34992
+ name: "2",
34993
+ header: t("Border")
34994
+ }, /* @__PURE__ */ React__default.createElement(Border, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34995
+ name: "4",
34996
+ header: t("Extra")
34997
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34998
+ span: 24
34999
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
35000
+ }
34612
35001
  const ShadowDom = (props) => {
34613
35002
  const [root2, setRoot] = useState(null);
34614
35003
  const [ref, setRef] = useState(null);
@@ -34690,574 +35079,185 @@ const HtmlEditor = (props) => {
34690
35079
  justifyContent: "center",
34691
35080
  fontSize: 24,
34692
35081
  color: "#fff"
34693
- }
34694
- }, t("Editor Loading..."))
34695
- }, /* @__PURE__ */ React__default.createElement(CodeMirrorEditor, {
34696
- value: content,
34697
- onChange: setContent
34698
- }))), /* @__PURE__ */ React__default.createElement("div", {
34699
- style: { flex: 1, height: "100%", overflow: "auto", marginRight: 10 }
34700
- }, /* @__PURE__ */ React__default.createElement(ShadowDom, {
34701
- style: __spreadProps(__spreadValues({}, styles2), {
34702
- width: pageData2.attributes.width || "600px",
34703
- margin: "auto"
34704
- })
34705
- }, isTable ? /* @__PURE__ */ React__default.createElement("table", null, /* @__PURE__ */ React__default.createElement("tbody", {
34706
- dangerouslySetInnerHTML: { __html: content }
34707
- })) : /* @__PURE__ */ React__default.createElement("div", {
34708
- dangerouslySetInnerHTML: { __html: content }
34709
- })))));
34710
- };
34711
- function Text() {
34712
- const [visible, setVisible] = useState(false);
34713
- return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, {
34714
- extra: /* @__PURE__ */ React__default.createElement(Tooltip$1, {
34715
- content: t("Html mode")
34716
- }, /* @__PURE__ */ React__default.createElement(Button$4, {
34717
- onClick: () => setVisible(true),
34718
- icon: /* @__PURE__ */ React__default.createElement(IconFont, {
34719
- iconName: "icon-html"
34720
- })
34721
- }))
34722
- }, /* @__PURE__ */ React__default.createElement(CollapseWrapper, {
34723
- defaultActiveKey: ["0", "1", "2"]
34724
- }, /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34725
- name: "0",
34726
- header: t("Dimension")
34727
- }, /* @__PURE__ */ React__default.createElement(Space$1, {
34728
- direction: "vertical"
34729
- }, /* @__PURE__ */ React__default.createElement(Height, null), /* @__PURE__ */ React__default.createElement(Padding, {
34730
- showResetAll: true
34731
- }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34732
- name: "1",
34733
- header: t("Color")
34734
- }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34735
- span: 11
34736
- }, /* @__PURE__ */ React__default.createElement(Color, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34737
- offset: 1,
34738
- span: 11
34739
- }, /* @__PURE__ */ React__default.createElement(ContainerBackgroundColor, {
34740
- title: t("Background color")
34741
- })))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34742
- name: "2",
34743
- header: t("Typography")
34744
- }, /* @__PURE__ */ React__default.createElement(Space$1, {
34745
- direction: "vertical"
34746
- }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34747
- span: 11
34748
- }, /* @__PURE__ */ React__default.createElement(FontFamily, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34749
- offset: 1,
34750
- span: 11
34751
- }, /* @__PURE__ */ React__default.createElement(FontSize$1, null))), /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34752
- span: 11
34753
- }, /* @__PURE__ */ React__default.createElement(LineHeight, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34754
- offset: 1,
34755
- span: 11
34756
- }, /* @__PURE__ */ React__default.createElement(LetterSpacing, null))), /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34757
- span: 11
34758
- }, /* @__PURE__ */ React__default.createElement(TextDecoration, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34759
- offset: 1,
34760
- span: 11
34761
- }, /* @__PURE__ */ React__default.createElement(FontWeight, null))), /* @__PURE__ */ React__default.createElement(Align, null), /* @__PURE__ */ React__default.createElement(FontStyle, null), /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34762
- span: 11
34763
- }), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34764
- offset: 1,
34765
- span: 11
34766
- })))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34767
- name: "4",
34768
- header: t("Extra")
34769
- }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34770
- span: 24
34771
- }, /* @__PURE__ */ React__default.createElement(ClassName, null)))), /* @__PURE__ */ React__default.createElement(HtmlEditor, {
34772
- visible,
34773
- setVisible
34774
- }));
34775
- }
34776
- function Link() {
34777
- const { focusIdx: focusIdx2 } = useFocusIdx();
34778
- return useMemo(() => {
34779
- return /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34780
- span: 11
34781
- }, /* @__PURE__ */ React__default.createElement(TextField, {
34782
- prefix: /* @__PURE__ */ React__default.createElement(IconLink$1, null),
34783
- label: /* @__PURE__ */ React__default.createElement("span", null, t("Href"), "\xA0\xA0\xA0"),
34784
- name: `${focusIdx2}.attributes.href`
34785
- })), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34786
- offset: 1,
34787
- span: 11
34788
- }, /* @__PURE__ */ React__default.createElement(SelectField, {
34789
- label: t("Target"),
34790
- name: `${focusIdx2}.attributes.target`,
34791
- options: [
34792
- {
34793
- value: "",
34794
- label: t("_self")
34795
- },
34796
- {
34797
- value: "_blank",
34798
- label: t("_blank")
34799
- }
34800
- ]
34801
- })));
34802
- }, [focusIdx2]);
34803
- }
34804
- function Image$1() {
34805
- const { focusIdx: focusIdx2 } = useFocusIdx();
34806
- const { onUploadImage } = useEditorProps();
34807
- return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, {
34808
- style: { padding: 0 }
34809
- }, /* @__PURE__ */ React__default.createElement(CollapseWrapper, {
34810
- defaultActiveKey: ["0", "1", "2", "3", "4"]
34811
- }, /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34812
- name: "1",
34813
- header: t("Setting")
34814
- }, /* @__PURE__ */ React__default.createElement(Stack$4, {
34815
- vertical: true,
34816
- spacing: "tight"
34817
- }, /* @__PURE__ */ React__default.createElement(ImageUploaderField, {
34818
- label: t("src"),
34819
- labelHidden: true,
34820
- name: `${focusIdx2}.attributes.src`,
34821
- helpText: t("The image suffix should be .jpg, jpeg, png, gif, etc. Otherwise, the picture may not be displayed normally."),
34822
- uploadHandler: onUploadImage
34823
- }), /* @__PURE__ */ React__default.createElement(ColorPickerField, {
34824
- label: t("Background color"),
34825
- name: `${focusIdx2}.attributes.container-background-color`,
34826
- inline: true
34827
- }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34828
- name: "0",
34829
- header: t("Dimension")
34830
- }, /* @__PURE__ */ React__default.createElement(Space$1, {
34831
- direction: "vertical"
34832
- }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34833
- span: 11
34834
- }, /* @__PURE__ */ React__default.createElement(Width, {
34835
- config: pixelAdapter
34836
- })), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34837
- offset: 1,
34838
- span: 11
34839
- }, /* @__PURE__ */ React__default.createElement(Height, {
34840
- config: imageHeightAdapter
34841
- }))), /* @__PURE__ */ React__default.createElement(Padding, {
34842
- showResetAll: true
34843
- }), /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34844
- span: 24
34845
- }, /* @__PURE__ */ React__default.createElement(Align, null))))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34846
- name: "2",
34847
- header: t("Link")
34848
- }, /* @__PURE__ */ React__default.createElement(Stack$4, {
34849
- vertical: true,
34850
- spacing: "tight"
34851
- }, /* @__PURE__ */ React__default.createElement(Link, null))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34852
- name: "3",
34853
- header: t("Border")
34854
- }, /* @__PURE__ */ React__default.createElement(Border, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34855
- name: "4",
34856
- header: t("Extra")
34857
- }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34858
- span: 11
34859
- }, /* @__PURE__ */ React__default.createElement(TextField, {
34860
- label: t("title"),
34861
- name: `${focusIdx2}.attributes.title`
34862
- })), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34863
- offset: 1,
34864
- span: 11
34865
- }, /* @__PURE__ */ React__default.createElement(TextField, {
34866
- label: t("alt"),
34867
- name: `${focusIdx2}.attributes.alt`
34868
- }))), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34869
- span: 24
34870
- }, /* @__PURE__ */ React__default.createElement(TextField, {
34871
- label: t("class name"),
34872
- name: `${focusIdx2}.attributes.css-class`
34873
- })))));
34874
- }
34875
- function Group() {
34876
- return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, null, /* @__PURE__ */ React__default.createElement(CollapseWrapper, {
34877
- defaultActiveKey: ["0", "1", "2"]
34878
- }, /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34879
- name: "0",
34880
- header: t("Dimension")
34881
- }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34882
- span: 11
34883
- }, /* @__PURE__ */ React__default.createElement(Width, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34884
- offset: 1,
34885
- span: 11
34886
- }, /* @__PURE__ */ React__default.createElement(VerticalAlign, null)))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34887
- name: "1",
34888
- header: t("Background")
34889
- }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34890
- span: 11
34891
- }, /* @__PURE__ */ React__default.createElement(BackgroundColor, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
34892
- offset: 1,
34893
- span: 11
34894
- }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
34895
- name: "4",
34896
- header: t("Extra")
34897
- }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
34898
- span: 24
34899
- }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
34900
- }
34901
- const options$5 = [
34902
- {
34903
- value: "left",
34904
- get label() {
34905
- return t("Left");
34906
- }
34907
- },
34908
- {
34909
- value: "center",
34910
- get label() {
34911
- return t("Center");
34912
- }
34913
- },
34914
- {
34915
- value: "right",
34916
- get label() {
34917
- return t("Right");
34918
- }
34919
- }
34920
- ];
34921
- function TextAlign({ name: name2 }) {
34922
- const { focusIdx: focusIdx2 } = useFocusIdx();
34923
- return useMemo(() => {
34924
- return /* @__PURE__ */ React__default.createElement(Stack$4, null, /* @__PURE__ */ React__default.createElement(RadioGroupField, {
34925
- label: t("Text align"),
34926
- name: name2 || `${focusIdx2}.attributes.text-align`,
34927
- options: options$5
34928
- }));
34929
- }, [focusIdx2, name2]);
34930
- }
34931
- function Decoration() {
34932
- const { focusIdx: focusIdx2 } = useFocusIdx();
34933
- return useMemo(() => {
34934
- return /* @__PURE__ */ React__default.createElement(Stack$4, {
34935
- key: focusIdx2,
34936
- vertical: true,
34937
- spacing: "extraTight"
34938
- }, /* @__PURE__ */ React__default.createElement(TextStyle, {
34939
- variation: "strong",
34940
- size: "large"
34941
- }, "Decoration"), /* @__PURE__ */ React__default.createElement(TextField, {
34942
- label: t("Border radius"),
34943
- name: `${focusIdx2}.attributes.borderRadius`,
34944
- inline: true
34945
- }), /* @__PURE__ */ React__default.createElement(TextField, {
34946
- label: t("Border"),
34947
- name: `${focusIdx2}.attributes.border`,
34948
- inline: true
34949
- }), /* @__PURE__ */ React__default.createElement(NumberField, {
34950
- label: t("Opacity"),
34951
- max: 1,
34952
- min: 0,
34953
- step: 0.1,
34954
- name: `${focusIdx2}.attributes.opacity`,
34955
- inline: true
34956
- }));
34957
- }, [focusIdx2]);
34958
- }
34959
- const options$4 = [
34960
- {
34961
- value: "initial",
34962
- get label() {
34963
- return t("None");
34964
- }
34965
- },
34966
- {
34967
- value: "uppercase",
34968
- get label() {
34969
- return t("uppercase");
34970
- }
34971
- },
34972
- {
34973
- value: "lowercase",
34974
- get label() {
34975
- return t("lowercase");
34976
- }
34977
- },
34978
- {
34979
- value: "capitalize",
34980
- get label() {
34981
- return t("capitalize");
34982
- }
34983
- }
34984
- ];
34985
- function TextTransform({ name: name2 }) {
34986
- const { focusIdx: focusIdx2 } = useFocusIdx();
34987
- return useMemo(() => {
34988
- return /* @__PURE__ */ React__default.createElement(SelectField, {
34989
- label: t("Text transform"),
34990
- name: name2 || `${focusIdx2}.attributes.text-transform`,
34991
- options: options$4
34992
- });
34993
- }, [focusIdx2, name2]);
34994
- }
34995
- const options$3 = [
34996
- {
34997
- value: "ltr",
34998
- get label() {
34999
- return t("ltr");
35000
- }
35001
- },
35002
- {
35003
- value: "rtl",
35004
- get label() {
35005
- return t("rtl");
35006
- }
35007
- }
35008
- ];
35009
- function Direction() {
35010
- const { focusIdx: focusIdx2 } = useFocusIdx();
35011
- return useMemo(() => {
35012
- return /* @__PURE__ */ React__default.createElement(Stack$4, null, /* @__PURE__ */ React__default.createElement(RadioGroupField, {
35013
- label: t("Direction"),
35014
- name: `${focusIdx2}.attributes.direction`,
35015
- options: options$3,
35016
- inline: true
35017
- }));
35018
- }, [focusIdx2]);
35019
- }
35020
- function Margin() {
35021
- const { focusIdx: focusIdx2 } = useFocusIdx();
35022
- return useMemo(() => {
35023
- return /* @__PURE__ */ React__default.createElement(Stack$4, {
35024
- vertical: true,
35025
- spacing: "extraTight"
35026
- }, /* @__PURE__ */ React__default.createElement(TextStyle, {
35027
- size: "large"
35028
- }, t("Margin")), /* @__PURE__ */ React__default.createElement(Stack$4, {
35029
- wrap: false
35030
- }, /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
35031
- fill: true
35032
- }, /* @__PURE__ */ React__default.createElement(TextField, {
35033
- label: t("Top"),
35034
- quickchange: true,
35035
- name: `${focusIdx2}.attributes.marginTop`,
35036
- inline: true
35037
- })), /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
35038
- fill: true
35039
- }, /* @__PURE__ */ React__default.createElement(TextField, {
35040
- label: t("Bottom"),
35041
- quickchange: true,
35042
- name: `${focusIdx2}.attributes.marginBottom`,
35043
- inline: true
35044
- }))), /* @__PURE__ */ React__default.createElement(Stack$4, {
35045
- wrap: false
35046
- }, /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
35047
- fill: true
35048
- }, /* @__PURE__ */ React__default.createElement(TextField, {
35049
- label: t("Left"),
35050
- quickchange: true,
35051
- name: `${focusIdx2}.attributes.marginLeft`,
35052
- inline: true
35053
- })), /* @__PURE__ */ React__default.createElement(Stack$4.Item, {
35054
- fill: true
35055
- }, /* @__PURE__ */ React__default.createElement(TextField, {
35056
- label: t("Right"),
35057
- quickchange: true,
35058
- name: `${focusIdx2}.attributes.marginRight`,
35059
- inline: true
35060
- }))));
35061
- }, [focusIdx2]);
35062
- }
35063
- function BorderColor() {
35064
- const { focusIdx: focusIdx2 } = useFocusIdx();
35065
- return useMemo(() => {
35066
- return /* @__PURE__ */ React__default.createElement(ColorPickerField, {
35067
- label: t("Color"),
35068
- name: `${focusIdx2}.attributes.border-color`
35069
- });
35070
- }, [focusIdx2]);
35071
- }
35072
- function getContextMergeTags(mergeTags2, context, idx) {
35073
- const loop = (currentIdx, combineMergeTags) => {
35074
- var _a, _b;
35075
- const parentBlockData = lodash.exports.get(context, currentIdx);
35076
- if (!parentBlockData)
35077
- return combineMergeTags;
35078
- const parentBlock = BlockManager.getBlockByType(parentBlockData.type);
35079
- if (parentBlock && parentBlock.render) {
35080
- const dataSource = (_b = (_a = parentBlockData.data) == null ? void 0 : _a.value) == null ? void 0 : _b.dataSource;
35081
- if (!dataSource)
35082
- return combineMergeTags;
35083
- Object.keys(dataSource).forEach((key) => {
35084
- let formatKey = dataSource[key];
35085
- const loopFormatKey = (currentLoopKeyIdx) => {
35086
- const currentParentIdx = getParentIdx(currentLoopKeyIdx);
35087
- if (currentParentIdx) {
35088
- const currentBlockData = lodash.exports.get(context, currentParentIdx);
35089
- if (!currentBlockData)
35090
- return formatKey;
35091
- currentBlockData.data.value.dataSource && Object.keys(currentBlockData.data.value.dataSource).forEach((item2) => {
35092
- formatKey = formatKey.replace(item2, currentBlockData.data.value.dataSource[item2].replace(/{{([^}}]+)}}/g, "$1"));
35093
- });
35094
- loopFormatKey(currentParentIdx);
35095
- }
35096
- };
35097
- loopFormatKey(currentIdx);
35098
- const dataSourcePath = formatKey.replace(/{{([^}}]+)}}/g, "$1");
35099
- combineMergeTags = __spreadValues({
35100
- [key]: lodash.exports.get(combineMergeTags, dataSourcePath)
35101
- }, combineMergeTags);
35102
- });
35103
- }
35104
- const parentIdx = getParentIdx(currentIdx);
35105
- if (!parentIdx)
35106
- return combineMergeTags;
35107
- return loop(parentIdx, combineMergeTags);
35108
- };
35109
- return loop(idx, lodash.exports.cloneDeep(mergeTags2));
35110
- }
35111
- const MergeTags$1 = React__default.memo((props) => {
35112
- const [expandedKeys, setExpandedKeys] = useState([]);
35113
- const { focusIdx: focusIdx2 } = useFocusIdx();
35114
- const {
35115
- mergeTags: mergeTags2 = {},
35116
- mergeTagGenerate,
35117
- renderMergeTagContent
35118
- } = useEditorProps();
35119
- const { values: values2 } = useBlock();
35120
- const contextMergeTags = useMemo(() => getContextMergeTags(mergeTags2, values2, focusIdx2), [mergeTags2, values2, focusIdx2]);
35121
- const treeOptions = useMemo(() => {
35122
- const treeData = [];
35123
- const deep = (key, title2, parent2, mapData = []) => {
35124
- const currentMapData = {
35125
- key,
35126
- value: key,
35127
- title: title2,
35128
- children: []
35129
- };
35130
- mapData.push(currentMapData);
35131
- const current = parent2[title2];
35132
- if (current && typeof current === "object") {
35133
- Object.keys(current).map((childKey) => deep(key + "." + childKey, childKey, current, currentMapData.children));
35134
- }
35135
- };
35136
- Object.keys(contextMergeTags).map((key) => deep(key, key, contextMergeTags, treeData));
35137
- return treeData;
35138
- }, [contextMergeTags]);
35139
- const onSelect = useCallback((key) => {
35140
- const value = lodash.exports.get(contextMergeTags, key);
35141
- if (lodash.exports.isObject(value)) {
35142
- setExpandedKeys((keys2) => {
35143
- if (keys2.includes(key)) {
35144
- return keys2.filter((k) => k !== key);
35145
- } else {
35146
- return [...keys2, key];
35147
- }
35148
- });
35149
- return;
35150
- }
35151
- return props.onChange(mergeTagGenerate(key));
35152
- }, [contextMergeTags, props, mergeTagGenerate]);
35153
- const mergeTagContent = useMemo(() => renderMergeTagContent ? renderMergeTagContent({
35154
- onChange: props.onChange,
35155
- isSelect: Boolean(props.isSelect),
35156
- value: props.value
35157
- }) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null), [renderMergeTagContent, props.onChange, props.isSelect, props.value]);
35158
- if (renderMergeTagContent) {
35159
- return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, mergeTagContent);
35160
- }
35161
- return /* @__PURE__ */ React__default.createElement("div", {
35162
- style: { color: "#333" }
35163
- }, props.isSelect ? /* @__PURE__ */ React__default.createElement(TreeSelect$1, {
35164
- value: props.value,
35165
- size: "small",
35166
- dropdownMenuStyle: { maxHeight: 400, overflow: "auto" },
35167
- placeholder: t("Please select"),
35168
- treeData: treeOptions,
35169
- onChange: (val) => onSelect(val)
35170
- }) : /* @__PURE__ */ React__default.createElement(Tree$1, {
35171
- expandedKeys,
35172
- onExpand: setExpandedKeys,
35173
- selectedKeys: [],
35174
- treeData: treeOptions,
35175
- onSelect: (vals) => onSelect(vals[0]),
35176
- style: {
35177
- maxHeight: 400,
35178
- overflow: "auto"
35179
- }
35082
+ }
35083
+ }, t("Editor Loading..."))
35084
+ }, /* @__PURE__ */ React__default.createElement(CodeMirrorEditor, {
35085
+ value: content,
35086
+ onChange: setContent
35087
+ }))), /* @__PURE__ */ React__default.createElement("div", {
35088
+ style: { flex: 1, height: "100%", overflow: "auto", marginRight: 10 }
35089
+ }, /* @__PURE__ */ React__default.createElement(ShadowDom, {
35090
+ style: __spreadProps(__spreadValues({}, styles2), {
35091
+ width: pageData2.attributes.width || "600px",
35092
+ margin: "auto"
35093
+ })
35094
+ }, isTable ? /* @__PURE__ */ React__default.createElement("table", null, /* @__PURE__ */ React__default.createElement("tbody", {
35095
+ dangerouslySetInnerHTML: { __html: content }
35096
+ })) : /* @__PURE__ */ React__default.createElement("div", {
35097
+ dangerouslySetInnerHTML: { __html: content }
35098
+ })))));
35099
+ };
35100
+ function Text() {
35101
+ const [visible, setVisible] = useState(false);
35102
+ return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, {
35103
+ extra: /* @__PURE__ */ React__default.createElement(Tooltip$1, {
35104
+ content: t("Html mode")
35105
+ }, /* @__PURE__ */ React__default.createElement(Button$4, {
35106
+ onClick: () => setVisible(true),
35107
+ icon: /* @__PURE__ */ React__default.createElement(IconFont, {
35108
+ iconName: "icon-html"
35109
+ })
35110
+ }))
35111
+ }, /* @__PURE__ */ React__default.createElement(CollapseWrapper, {
35112
+ defaultActiveKey: ["0", "1", "2"]
35113
+ }, /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35114
+ name: "0",
35115
+ header: t("Dimension")
35116
+ }, /* @__PURE__ */ React__default.createElement(Space$1, {
35117
+ direction: "vertical"
35118
+ }, /* @__PURE__ */ React__default.createElement(Height, null), /* @__PURE__ */ React__default.createElement(Padding, {
35119
+ showResetAll: true
35120
+ }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35121
+ name: "1",
35122
+ header: t("Color")
35123
+ }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35124
+ span: 11
35125
+ }, /* @__PURE__ */ React__default.createElement(Color, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35126
+ offset: 1,
35127
+ span: 11
35128
+ }, /* @__PURE__ */ React__default.createElement(ContainerBackgroundColor, {
35129
+ title: t("Background color")
35130
+ })))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35131
+ name: "2",
35132
+ header: t("Typography")
35133
+ }, /* @__PURE__ */ React__default.createElement(Space$1, {
35134
+ direction: "vertical"
35135
+ }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35136
+ span: 11
35137
+ }, /* @__PURE__ */ React__default.createElement(FontFamily, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35138
+ offset: 1,
35139
+ span: 11
35140
+ }, /* @__PURE__ */ React__default.createElement(FontSize$1, null))), /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35141
+ span: 11
35142
+ }, /* @__PURE__ */ React__default.createElement(LineHeight, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35143
+ offset: 1,
35144
+ span: 11
35145
+ }, /* @__PURE__ */ React__default.createElement(LetterSpacing, null))), /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35146
+ span: 11
35147
+ }, /* @__PURE__ */ React__default.createElement(TextDecoration, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35148
+ offset: 1,
35149
+ span: 11
35150
+ }, /* @__PURE__ */ React__default.createElement(FontWeight, null))), /* @__PURE__ */ React__default.createElement(Align, null), /* @__PURE__ */ React__default.createElement(FontStyle, null), /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35151
+ span: 11
35152
+ }), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35153
+ offset: 1,
35154
+ span: 11
35155
+ })))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35156
+ name: "4",
35157
+ header: t("Extra")
35158
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35159
+ span: 24
35160
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))), /* @__PURE__ */ React__default.createElement(HtmlEditor, {
35161
+ visible,
35162
+ setVisible
35180
35163
  }));
35181
- });
35182
- const borderStyleOptions = [
35183
- {
35184
- value: "dashed",
35185
- get label() {
35186
- return t("Dashed");
35187
- }
35188
- },
35189
- {
35190
- value: "dotted",
35191
- get label() {
35192
- return t("Dotted");
35193
- }
35194
- },
35195
- {
35196
- value: "solid",
35197
- get label() {
35198
- return t("Solid");
35199
- }
35200
- },
35201
- {
35202
- value: "double",
35203
- get label() {
35204
- return t("double");
35205
- }
35206
- },
35207
- {
35208
- value: "ridge",
35209
- get label() {
35210
- return t("ridge");
35211
- }
35212
- },
35213
- {
35214
- value: "groove",
35215
- get label() {
35216
- return t("groove");
35217
- }
35218
- },
35219
- {
35220
- value: "inset",
35221
- get label() {
35222
- return t("inset");
35223
- }
35224
- },
35225
- {
35226
- value: "outset",
35227
- get label() {
35228
- return t("outset");
35229
- }
35230
- }
35231
- ];
35232
- function BorderStyle() {
35233
- const { focusIdx: focusIdx2 } = useFocusIdx();
35234
- return useMemo(() => {
35235
- return /* @__PURE__ */ React__default.createElement(SelectField, {
35236
- label: t("Style"),
35237
- name: `${focusIdx2}.attributes.border-style`,
35238
- options: borderStyleOptions
35239
- });
35240
- }, [focusIdx2]);
35241
- }
35242
- function NavbarLinkPadding({ name: name2 }) {
35243
- return useMemo(() => {
35244
- return /* @__PURE__ */ React__default.createElement(Stack$4, {
35245
- vertical: true,
35246
- spacing: "extraTight"
35247
- }, /* @__PURE__ */ React__default.createElement(Padding, {
35248
- name: name2
35249
- }));
35250
- }, [name2]);
35251
35164
  }
35252
- function BorderWidth() {
35165
+ function Image$1() {
35253
35166
  const { focusIdx: focusIdx2 } = useFocusIdx();
35254
- return useMemo(() => {
35255
- return /* @__PURE__ */ React__default.createElement(TextField, {
35256
- label: t("Width"),
35257
- quickchange: true,
35258
- name: `${focusIdx2}.attributes.border-width`
35259
- });
35260
- }, [focusIdx2]);
35167
+ const { onUploadImage } = useEditorProps();
35168
+ return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, {
35169
+ style: { padding: 0 }
35170
+ }, /* @__PURE__ */ React__default.createElement(CollapseWrapper, {
35171
+ defaultActiveKey: ["0", "1", "2", "3", "4"]
35172
+ }, /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35173
+ name: "1",
35174
+ header: t("Setting")
35175
+ }, /* @__PURE__ */ React__default.createElement(Stack$4, {
35176
+ vertical: true,
35177
+ spacing: "tight"
35178
+ }, /* @__PURE__ */ React__default.createElement(ImageUploaderField, {
35179
+ label: t("src"),
35180
+ labelHidden: true,
35181
+ name: `${focusIdx2}.attributes.src`,
35182
+ helpText: t("The image suffix should be .jpg, jpeg, png, gif, etc. Otherwise, the picture may not be displayed normally."),
35183
+ uploadHandler: onUploadImage
35184
+ }), /* @__PURE__ */ React__default.createElement(ColorPickerField, {
35185
+ label: t("Background color"),
35186
+ name: `${focusIdx2}.attributes.container-background-color`,
35187
+ inline: true
35188
+ }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35189
+ name: "0",
35190
+ header: t("Dimension")
35191
+ }, /* @__PURE__ */ React__default.createElement(Space$1, {
35192
+ direction: "vertical"
35193
+ }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35194
+ span: 11
35195
+ }, /* @__PURE__ */ React__default.createElement(Width, {
35196
+ config: pixelAdapter
35197
+ })), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35198
+ offset: 1,
35199
+ span: 11
35200
+ }, /* @__PURE__ */ React__default.createElement(Height, {
35201
+ config: imageHeightAdapter
35202
+ }))), /* @__PURE__ */ React__default.createElement(Padding, {
35203
+ showResetAll: true
35204
+ }), /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35205
+ span: 24
35206
+ }, /* @__PURE__ */ React__default.createElement(Align, null))))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35207
+ name: "2",
35208
+ header: t("Link")
35209
+ }, /* @__PURE__ */ React__default.createElement(Stack$4, {
35210
+ vertical: true,
35211
+ spacing: "tight"
35212
+ }, /* @__PURE__ */ React__default.createElement(Link, null))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35213
+ name: "3",
35214
+ header: t("Border")
35215
+ }, /* @__PURE__ */ React__default.createElement(Border, null)), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35216
+ name: "4",
35217
+ header: t("Extra")
35218
+ }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35219
+ span: 11
35220
+ }, /* @__PURE__ */ React__default.createElement(TextField, {
35221
+ label: t("title"),
35222
+ name: `${focusIdx2}.attributes.title`
35223
+ })), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35224
+ offset: 1,
35225
+ span: 11
35226
+ }, /* @__PURE__ */ React__default.createElement(TextField, {
35227
+ label: t("alt"),
35228
+ name: `${focusIdx2}.attributes.alt`
35229
+ }))), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35230
+ span: 24
35231
+ }, /* @__PURE__ */ React__default.createElement(TextField, {
35232
+ label: t("class name"),
35233
+ name: `${focusIdx2}.attributes.css-class`
35234
+ })))));
35235
+ }
35236
+ function Group() {
35237
+ return /* @__PURE__ */ React__default.createElement(AttributesPanelWrapper, null, /* @__PURE__ */ React__default.createElement(CollapseWrapper, {
35238
+ defaultActiveKey: ["0", "1", "2"]
35239
+ }, /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35240
+ name: "0",
35241
+ header: t("Dimension")
35242
+ }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35243
+ span: 11
35244
+ }, /* @__PURE__ */ React__default.createElement(Width, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35245
+ offset: 1,
35246
+ span: 11
35247
+ }, /* @__PURE__ */ React__default.createElement(VerticalAlign, null)))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35248
+ name: "1",
35249
+ header: t("Background")
35250
+ }, /* @__PURE__ */ React__default.createElement(Grid.Row, null, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35251
+ span: 11
35252
+ }, /* @__PURE__ */ React__default.createElement(BackgroundColor, null)), /* @__PURE__ */ React__default.createElement(Grid.Col, {
35253
+ offset: 1,
35254
+ span: 11
35255
+ }))), /* @__PURE__ */ React__default.createElement(Collapse$1.Item, {
35256
+ name: "4",
35257
+ header: t("Extra")
35258
+ }, /* @__PURE__ */ React__default.createElement(Grid.Col, {
35259
+ span: 24
35260
+ }, /* @__PURE__ */ React__default.createElement(ClassName, null)))));
35261
35261
  }
35262
35262
  function Button() {
35263
35263
  const { focusIdx: focusIdx2 } = useFocusIdx();
@@ -36307,6 +36307,11 @@ function MergeTags(props) {
36307
36307
  popupVisible: visible,
36308
36308
  onVisibleChange,
36309
36309
  style: { zIndex: 10 },
36310
+ triggerProps: {
36311
+ popupStyle: {
36312
+ backgroundColor: "var(--color-bg-5);"
36313
+ }
36314
+ },
36310
36315
  content: /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(MergeTags$1, {
36311
36316
  value: "",
36312
36317
  onChange