easy-email-extensions 4.7.0 → 4.7.1

Sign up to get free protection for your applications and to get access to all the features.
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