unika-components 1.2.5 → 1.2.7

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.
@@ -212,9 +212,6 @@
212
212
  color: css.value.color,
213
213
  opacity: css.value.opacity,
214
214
  borderRadius: px2rem(css.value.borderRadius || 0),
215
- borderWidth: px2rem(css.value.borderWidth || 0),
216
- borderStyle: css.value.borderStyle,
217
- borderColor: css.value.borderColor,
218
215
  boxShadow: properties.value.shadowSize
219
216
  ? `${px2rem(properties.value.shadowX)} ${px2rem(properties.value.shadowY)} ${px2rem(properties.value.shadowBlur)} ${properties.value.shadowColor}`
220
217
  : 'none'
@@ -526,7 +523,7 @@
526
523
 
527
524
  const _hoisted_1$l = ["data-id"];
528
525
  const _hoisted_2$i = ["innerHTML"];
529
- const _hoisted_3$g = /*#__PURE__*/vue.createElementVNode("div", { class: "svg-loading" }, "Loading...", -1 /* HOISTED */);
526
+ const _hoisted_3$h = /*#__PURE__*/vue.createElementVNode("div", { class: "svg-loading" }, "Loading...", -1 /* HOISTED */);
530
527
  const _hoisted_4$d = { class: "svg-error" };
531
528
 
532
529
  function render$m(_ctx, _cache, $props, $setup, $data, $options) {
@@ -558,7 +555,7 @@
558
555
  : (_ctx.isLoading)
559
556
  ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
560
557
  vue.createCommentVNode(" 加载状态 "),
561
- _hoisted_3$g
558
+ _hoisted_3$h
562
559
  ], 2112 /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */))
563
560
  : (_ctx.loadError)
564
561
  ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
@@ -897,7 +894,7 @@
897
894
 
898
895
  const _hoisted_1$k = { id: "audio" };
899
896
  const _hoisted_2$h = ["src"];
900
- const _hoisted_3$f = {
897
+ const _hoisted_3$g = {
901
898
  key: 1,
902
899
  class: "iconfont"
903
900
  };
@@ -922,7 +919,7 @@
922
919
  class: "music-icon",
923
920
  alt: "หยุดชั่วคราว"
924
921
  }, null, 8 /* PROPS */, _hoisted_2$h))
925
- : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$f, "❚❚"))
922
+ : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$g, "❚❚"))
926
923
  ], 64 /* STABLE_FRAGMENT */))
927
924
  : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
928
925
  (_ctx.playIconUrl)
@@ -1024,7 +1021,7 @@
1024
1021
  class: "video-container"
1025
1022
  };
1026
1023
  const _hoisted_2$g = ["src"];
1027
- const _hoisted_3$e = ["src"];
1024
+ const _hoisted_3$f = ["src"];
1028
1025
 
1029
1026
  function render$k(_ctx, _cache, $props, $setup, $data, $options) {
1030
1027
  return (vue.openBlock(), vue.createElementBlock("div", {
@@ -1059,7 +1056,7 @@
1059
1056
  src: _ctx.element.properties.src,
1060
1057
  alt: "Play button",
1061
1058
  class: "play-btn"
1062
- }, null, 8 /* PROPS */, _hoisted_3$e)
1059
+ }, null, 8 /* PROPS */, _hoisted_3$f)
1063
1060
  ], 4 /* STYLE */))
1064
1061
  ], 4 /* STYLE */)
1065
1062
  ], 4 /* STYLE */))
@@ -1193,7 +1190,7 @@
1193
1190
  key: 0,
1194
1191
  class: "can-wrap"
1195
1192
  };
1196
- const _hoisted_3$d = { class: "can-top" };
1193
+ const _hoisted_3$e = { class: "can-top" };
1197
1194
  const _hoisted_4$b = { class: "can-main" };
1198
1195
  const _hoisted_5$a = { class: "can-date" };
1199
1196
  const _hoisted_6$8 = {
@@ -1235,7 +1232,7 @@
1235
1232
  }, [
1236
1233
  (_ctx.element.kind === 1)
1237
1234
  ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$f, [
1238
- vue.createElementVNode("div", _hoisted_3$d, [
1235
+ vue.createElementVNode("div", _hoisted_3$e, [
1239
1236
  vue.createElementVNode("div", {
1240
1237
  class: "can-left",
1241
1238
  style: vue.normalizeStyle({ color: _ctx.element.themeColor || '#ed5566' })
@@ -1572,6 +1569,7 @@
1572
1569
  vue.onUnmounted(() => {
1573
1570
  stopCountdown();
1574
1571
  });
1572
+ const isVertical = vue.computed(() => props.element.direction === 'vertical');
1575
1573
  // 容器样式
1576
1574
  const containerStyle = vue.computed(() => ({
1577
1575
  position: (props.element && props.element.css && props.element.css.position) || 'absolute',
@@ -1580,7 +1578,8 @@
1580
1578
  width: px2rem(props.element.css.width),
1581
1579
  height: px2rem(props.element.css.height),
1582
1580
  transform: `rotate(${props.element.css.transform}deg)`,
1583
- opacity: props.element.css.opacity
1581
+ opacity: props.element.css.opacity,
1582
+ overflow: 'visible',
1584
1583
  }));
1585
1584
  // 文本模式容器样式
1586
1585
  const textContainerStyle = vue.computed(() => ({
@@ -1589,6 +1588,10 @@
1589
1588
  borderRadius: px2rem(props.element.css.borderRadius || 0),
1590
1589
  borderStyle: props.element.css.borderStyle,
1591
1590
  borderWidth: px2rem(props.element.css.borderWidth || 0),
1591
+ display: isVertical.value ? 'flex' : undefined,
1592
+ flexDirection: isVertical.value ? 'column' : undefined,
1593
+ alignItems: isVertical.value ? 'center' : undefined,
1594
+ justifyContent: isVertical.value ? 'center' : undefined,
1592
1595
  }));
1593
1596
  // 文本内容样式
1594
1597
  const textContentStyle = vue.computed(() => ({
@@ -1601,8 +1604,13 @@
1601
1604
  const flipStyle = vue.computed(() => ({
1602
1605
  transform: getScaleValue(),
1603
1606
  opacity: props.element.css.opacity,
1604
- flexDirection: props.element.direction === 'vertical' ? 'column' : 'row',
1605
- alignItems: props.element.direction === 'center'
1607
+ display: 'flex',
1608
+ flexDirection: isVertical.value ? 'column' : 'row',
1609
+ alignItems: 'center',
1610
+ justifyContent: 'center',
1611
+ width: '100%',
1612
+ height: isVertical.value ? 'auto' : '100%',
1613
+ minHeight: isVertical.value ? '100%' : undefined,
1606
1614
  }));
1607
1615
  // 获取缩放值
1608
1616
  const getScaleValue = () => {
@@ -1619,7 +1627,8 @@
1619
1627
  borderWidth: px2rem(props.element.css.borderWidth || 0),
1620
1628
  borderRadius: px2rem(props.element.css.borderRadius || 0),
1621
1629
  backgroundColor: props.element.css.backgroundColor,
1622
- margin: props.element.direction === 'vertical' ? px2rem(6) + ' 0' : '0 ' + px2rem(6)
1630
+ margin: isVertical.value ? `${px2rem(6)} 0` : `0 ${px2rem(6)}`,
1631
+ flexShrink: 0,
1623
1632
  }));
1624
1633
  // 数字样式
1625
1634
  const numStyle = vue.computed(() => ({
@@ -1686,7 +1695,7 @@
1686
1695
 
1687
1696
  const _hoisted_1$h = ["data-id", "data-pid", "data-type", "data-show", "pid", "type", "layername", "sign", "signsort"];
1688
1697
  const _hoisted_2$e = ["data-direction"];
1689
- const _hoisted_3$c = { class: "c-wrap" };
1698
+ const _hoisted_3$d = { class: "c-wrap" };
1690
1699
  const _hoisted_4$a = { class: "c-num c-left" };
1691
1700
  const _hoisted_5$9 = { class: "flex-wrap" };
1692
1701
  const _hoisted_6$7 = { class: "c-num c-right" };
@@ -1749,7 +1758,7 @@
1749
1758
  class: "c-com c-day",
1750
1759
  style: vue.normalizeStyle(_ctx.comStyle)
1751
1760
  }, [
1752
- vue.createElementVNode("div", _hoisted_3$c, [
1761
+ vue.createElementVNode("div", _hoisted_3$d, [
1753
1762
  vue.createElementVNode("div", _hoisted_4$a, [
1754
1763
  vue.createElementVNode("div", _hoisted_5$9, [
1755
1764
  (_ctx.days >= 100)
@@ -1981,7 +1990,7 @@
1981
1990
 
1982
1991
  const _hoisted_1$g = ["data-id", "data-pid", "data-type", "data-show", "pid", "type", "layername", "sign", "signsort"];
1983
1992
  const _hoisted_2$d = ["innerHTML"];
1984
- const _hoisted_3$b = /*#__PURE__*/vue.createElementVNode("div", { class: "mask-map" }, null, -1 /* HOISTED */);
1993
+ const _hoisted_3$c = /*#__PURE__*/vue.createElementVNode("div", { class: "mask-map" }, null, -1 /* HOISTED */);
1985
1994
 
1986
1995
  function render$h(_ctx, _cache, $props, $setup, $data, $options) {
1987
1996
  return (vue.openBlock(), vue.createElementBlock("div", {
@@ -2018,7 +2027,7 @@
2018
2027
  }, null, 8 /* PROPS */, _hoisted_2$d),
2019
2028
  vue.createCommentVNode(" 隐藏的辅助元素 "),
2020
2029
  vue.createCommentVNode(" <div :id=\"'teng_' + element.id + Date.now()\" class=\"center-map\" style=\"display: none;\"></div>\n <div :id=\"'bai_' + element.id + Date.now()\" class=\"center-map\" style=\"display: none;\"></div> "),
2021
- _hoisted_3$b
2030
+ _hoisted_3$c
2022
2031
  ], 4 /* STYLE */))
2023
2032
  : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
2024
2033
  vue.createCommentVNode(" 导航按钮 "),
@@ -23056,13 +23065,13 @@
23056
23065
  var DataView$1 = DataView;
23057
23066
  var Promise$1 = getNative(root$1, "Promise");
23058
23067
  var Promise$2 = Promise$1;
23059
- var Set = getNative(root$1, "Set");
23060
- var Set$1 = Set;
23068
+ var Set$1 = getNative(root$1, "Set");
23069
+ var Set$1$1 = Set$1;
23061
23070
  var mapTag$4 = "[object Map]", objectTag$2 = "[object Object]", promiseTag = "[object Promise]", setTag$4 = "[object Set]", weakMapTag$1 = "[object WeakMap]";
23062
23071
  var dataViewTag$3 = "[object DataView]";
23063
- var dataViewCtorString = toSource(DataView$1), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$2), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap$1);
23072
+ var dataViewCtorString = toSource(DataView$1), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$2), setCtorString = toSource(Set$1$1), weakMapCtorString = toSource(WeakMap$1);
23064
23073
  var getTag = baseGetTag;
23065
- if (DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$3 || Map$1 && getTag(new Map$1()) != mapTag$4 || Promise$2 && getTag(Promise$2.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$4 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag$1) {
23074
+ if (DataView$1 && getTag(new DataView$1(new ArrayBuffer(1))) != dataViewTag$3 || Map$1 && getTag(new Map$1()) != mapTag$4 || Promise$2 && getTag(Promise$2.resolve()) != promiseTag || Set$1$1 && getTag(new Set$1$1()) != setTag$4 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag$1) {
23066
23075
  getTag = function(value) {
23067
23076
  var result = baseGetTag(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
23068
23077
  if (ctorString) {
@@ -27995,7 +28004,7 @@
27995
28004
  ref: "toolbar"
27996
28005
  };
27997
28006
  const _hoisted_2$b = { class: "toolbar" };
27998
- const _hoisted_3$a = { class: "bar-left" };
28007
+ const _hoisted_3$b = { class: "bar-left" };
27999
28008
  const _hoisted_4$9 = /*#__PURE__*/vue.createElementVNode("img", { src: "https://h5cdn.unika.cc/static/img/uniComponents/hide.png" }, null, -1 /* HOISTED */);
28000
28009
  const _hoisted_5$8 = [
28001
28010
  _hoisted_4$9
@@ -28101,7 +28110,7 @@
28101
28110
  vue.createCommentVNode(" 底部工具栏 "),
28102
28111
  vue.createElementVNode("div", _hoisted_1$b, [
28103
28112
  vue.createElementVNode("div", _hoisted_2$b, [
28104
- vue.withDirectives(vue.createElementVNode("div", _hoisted_3$a, [
28113
+ vue.withDirectives(vue.createElementVNode("div", _hoisted_3$b, [
28105
28114
  vue.createElementVNode("input", {
28106
28115
  type: "text",
28107
28116
  placeholder: "ข้อความอวยพร..",
@@ -28651,6 +28660,10 @@
28651
28660
  type: Object,
28652
28661
  required: true
28653
28662
  },
28663
+ isEditing: {
28664
+ type: Boolean,
28665
+ default: false,
28666
+ },
28654
28667
  },
28655
28668
  setup(props) {
28656
28669
  const inputValue = vue.ref('');
@@ -28690,9 +28703,16 @@
28690
28703
  });
28691
28704
  // 失去焦点时验证
28692
28705
  const handleBlur = () => {
28706
+ if (props.isEditing)
28707
+ return;
28693
28708
  isTouched.value = true;
28694
28709
  validate();
28695
28710
  };
28711
+ const onInputPointerDown = (e) => {
28712
+ if (!props.isEditing)
28713
+ return;
28714
+ e.preventDefault();
28715
+ };
28696
28716
  // 值变化时验证(如果已经触摸过)
28697
28717
  vue.watch(inputValue, () => {
28698
28718
  if (isTouched.value) {
@@ -28735,20 +28755,24 @@
28735
28755
  containerStyles,
28736
28756
  wrapperStyles,
28737
28757
  inputStyles,
28738
- handleBlur
28758
+ handleBlur,
28759
+ onInputPointerDown,
28760
+ isEditing: vue.computed(() => props.isEditing),
28739
28761
  };
28740
28762
  }
28741
28763
  });
28742
28764
 
28743
- const _hoisted_1$a = {
28765
+ const _hoisted_1$a = ["data-id"];
28766
+ const _hoisted_2$a = {
28744
28767
  key: 0,
28745
28768
  class: "required-marker"
28746
28769
  };
28747
- const _hoisted_2$a = ["type", "placeholder"];
28770
+ const _hoisted_3$a = ["type", "placeholder", "readonly", "tabindex"];
28748
28771
 
28749
28772
  function render$b(_ctx, _cache, $props, $setup, $data, $options) {
28750
28773
  return (vue.openBlock(), vue.createElementBlock("div", {
28751
- class: "ele-form form-input eles",
28774
+ class: vue.normalizeClass(["ele-form form-input eles", { 'form-input--editing': _ctx.isEditing }]),
28775
+ "data-id": _ctx.element.id,
28752
28776
  style: vue.normalizeStyle(_ctx.containerStyles)
28753
28777
  }, [
28754
28778
  vue.createElementVNode("div", {
@@ -28759,20 +28783,24 @@
28759
28783
  })
28760
28784
  }, [
28761
28785
  (_ctx.required)
28762
- ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$a, "*"))
28786
+ ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$a, "*"))
28763
28787
  : vue.createCommentVNode("v-if", true),
28764
28788
  vue.withDirectives(vue.createElementVNode("input", {
28765
28789
  type: _ctx.inputType,
28766
28790
  placeholder: _ctx.title,
28767
28791
  "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => ((_ctx.inputValue) = $event)),
28768
28792
  style: vue.normalizeStyle(_ctx.inputStyles),
28769
- onBlur: _cache[1] || (_cache[1] = (...args) => (_ctx.handleBlur && _ctx.handleBlur(...args))),
28770
- class: "dynamic-placeholder-input"
28771
- }, null, 44 /* STYLE, PROPS, NEED_HYDRATION */, _hoisted_2$a), [
28793
+ readonly: _ctx.isEditing,
28794
+ tabindex: _ctx.isEditing ? -1 : undefined,
28795
+ class: "dynamic-placeholder-input",
28796
+ onMousedown: _cache[1] || (_cache[1] = (...args) => (_ctx.onInputPointerDown && _ctx.onInputPointerDown(...args))),
28797
+ onTouchstart: _cache[2] || (_cache[2] = (...args) => (_ctx.onInputPointerDown && _ctx.onInputPointerDown(...args))),
28798
+ onBlur: _cache[3] || (_cache[3] = (...args) => (_ctx.handleBlur && _ctx.handleBlur(...args)))
28799
+ }, null, 44 /* STYLE, PROPS, NEED_HYDRATION */, _hoisted_3$a), [
28772
28800
  [vue.vModelDynamic, _ctx.inputValue]
28773
28801
  ])
28774
28802
  ], 4 /* STYLE */)
28775
- ], 4 /* STYLE */))
28803
+ ], 14 /* CLASS, STYLE, PROPS */, _hoisted_1$a))
28776
28804
  }
28777
28805
 
28778
28806
  script$f.render = render$b;
@@ -31218,15 +31246,33 @@
31218
31246
  app.component(script$2.name, script$2);
31219
31247
  };
31220
31248
 
31249
+ const PLACEHOLDER_INVITE_STATE_IDS = new Set(['invite-default-1']);
31250
+ function isPlaceholderInviteStateId(stateId) {
31251
+ if (!stateId)
31252
+ return false;
31253
+ if (PLACEHOLDER_INVITE_STATE_IDS.has(stateId))
31254
+ return true;
31255
+ return stateId.startsWith('invite-default-');
31256
+ }
31221
31257
  function isValidInviteItem(item) {
31222
31258
  return !!(item && item.img1 && item.name);
31223
31259
  }
31260
+ function pickInviteItemByState(invite, stateId) {
31261
+ const items = invite.items || [];
31262
+ const direct = items.find((i) => i.id === stateId);
31263
+ if (direct)
31264
+ return direct;
31265
+ // 兼容模板占位 id:条目已迁移为随机 id 时,旧链接仍只有一条送呈
31266
+ if (isPlaceholderInviteStateId(stateId) && items.length === 1) {
31267
+ return items[0];
31268
+ }
31269
+ return undefined;
31270
+ }
31224
31271
  /** 根据 URL state 从 global.invite 解析单条送呈渲染数据 */
31225
31272
  function resolveInviteRenderData(invite, stateId) {
31226
31273
  if (!stateId || !invite || !invite.open)
31227
31274
  return null;
31228
- const items = invite.items || [];
31229
- const item = items.find((i) => i.id === stateId);
31275
+ const item = pickInviteItemByState(invite, stateId);
31230
31276
  if (!isValidInviteItem(item))
31231
31277
  return null;
31232
31278
  return {
@@ -31362,6 +31408,11 @@
31362
31408
  emit('dismiss');
31363
31409
  }, delay);
31364
31410
  };
31411
+ vue.onMounted(() => {
31412
+ // #region agent log
31413
+ fetch('http://127.0.0.1:7825/ingest/b036d6f9-5c3e-4f40-bb7d-3367a145a4d2', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '6d48a4' }, body: JSON.stringify({ sessionId: '6d48a4', runId: 'pre-fix', hypothesisId: 'H4', location: 'UniInvite.vue:onMounted', message: 'invite visibility', data: { visible: visible.value, itemId: item.value ? item.value.id : null, hasImg1: !!(item.value && item.value.img1), shouldShow: shouldShow.value }, timestamp: Date.now() }) }).catch(() => { });
31414
+ // #endregion
31415
+ });
31365
31416
  return {
31366
31417
  visible,
31367
31418
  isOpening,
@@ -31583,7 +31634,18 @@
31583
31634
  const personalData = vue.computed(() => workData.value.personalData || {});
31584
31635
  const global = vue.computed(() => workData.value.global || {});
31585
31636
  const pages = vue.computed(() => workData.value.pages || []);
31586
- const inviteRender = vue.computed(() => getInviteRenderFromGlobal(global.value.invite));
31637
+ const inviteRender = vue.computed(() => {
31638
+ const invite = global.value.invite;
31639
+ const fromRenderItem = getInviteRenderFromGlobal(invite);
31640
+ if (fromRenderItem)
31641
+ return fromRenderItem;
31642
+ if (typeof window !== 'undefined' && invite) {
31643
+ const stateId = new URLSearchParams(window.location.search).get('state');
31644
+ if (stateId)
31645
+ return resolveInviteRenderData(invite, stateId);
31646
+ }
31647
+ return null;
31648
+ });
31587
31649
  /** 仅 member_level === 1 显示水印;2、3 及缺省等均不显示 */
31588
31650
  const shouldShowWatermark = vue.computed(() => Number(global.value.member_level) === 1);
31589
31651
  // 长页模式
@@ -31806,6 +31868,9 @@
31806
31868
  vue.nextTick(() => {
31807
31869
  setTimeout(runTextAnimationsForCurrentPage, 150);
31808
31870
  });
31871
+ // #region agent log
31872
+ fetch('http://127.0.0.1:7825/ingest/b036d6f9-5c3e-4f40-bb7d-3367a145a4d2', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '6d48a4' }, body: JSON.stringify({ sessionId: '6d48a4', runId: 'pre-fix', hypothesisId: 'H2', location: 'WorkRender.vue:onMounted', message: 'invite render computed', data: { hasInviteRender: !!inviteRender.value, renderItemId: global.value.invite && global.value.invite.renderItem ? global.value.invite.renderItem.id : null, urlState: typeof window !== 'undefined' ? new URLSearchParams(window.location.search).get('state') : null }, timestamp: Date.now() }) }).catch(() => { });
31873
+ // #endregion
31809
31874
  });
31810
31875
  vue.onBeforeUnmount(() => {
31811
31876
  if (global.value.cat === 'long_page') {
@@ -32681,7 +32746,7 @@
32681
32746
  return INVITE_COVER_TEMPLATES.find(t => t.id === id);
32682
32747
  }
32683
32748
 
32684
- const defaultItemId = 'invite-default-1';
32749
+ const defaultItemId = 'invite-default-1'; // template placeholder — replace with random id at runtime
32685
32750
  const defaultTpl = INVITE_COVER_TEMPLATES[0];
32686
32751
  /** global.invite 默认结构 — 仅含渲染字段,不含 templates/phrases */
32687
32752
  const inviteDefaultProps = {
@@ -32704,6 +32769,654 @@
32704
32769
  ],
32705
32770
  };
32706
32771
 
32772
+ const musicDefaultProps = {
32773
+ // url: "https://h5cdn.unika.cc/static/img/uniComponents/MarryMe.mp3",
32774
+ url: "",
32775
+ name: "Love Paradise",
32776
+ music_id: '2302',
32777
+ bgcolor: "rgba(128, 90, 218, 0.19)",
32778
+ iconUrl: "https://h5cdn.unika.cc/static/assets/musicBackground/musicBackground-1.png",
32779
+ isGlobal: false,
32780
+ };
32781
+
32782
+ const calendarDefaultProps = {
32783
+ id: '1748877692931',
32784
+ pid: '',
32785
+ type: 'calendar',
32786
+ layerName: '日历14',
32787
+ endTime: '2025/05/22',
32788
+ language: 'Chinese',
32789
+ kind: 1,
32790
+ sign: true,
32791
+ signSort: 4,
32792
+ showSize: 'middle',
32793
+ themeColor: '#ed5566',
32794
+ heartColor: 'rgba(151, 237, 85, 1)',
32795
+ heartAni: true,
32796
+ dateColor: '#666',
32797
+ css: {
32798
+ borderWidth: 2,
32799
+ borderStyle: 'solid',
32800
+ borderColor: '#ed5566',
32801
+ opacity: 0.98,
32802
+ backgroundColor: '#fff',
32803
+ width: 325,
32804
+ height: 325,
32805
+ borderRadius: 0,
32806
+ top: 148.5625,
32807
+ left: 28.4375,
32808
+ transform: 0,
32809
+ animation2: 'fadeInDown 1.5s ease 0.0s 1 normal backwards running',
32810
+ animation: 'fadeInDown 1.5s ease 0.0s 1 normal backwards running'
32811
+ },
32812
+ properties: {
32813
+ visible: true,
32814
+ isLock: false,
32815
+ required: true,
32816
+ musicName: '',
32817
+ musicLink: '',
32818
+ musicHash: '',
32819
+ shadowSize: 0,
32820
+ shadowColor: '#999999',
32821
+ shadowX: 0,
32822
+ shadowY: 0,
32823
+ shadowBlur: 0,
32824
+ shadowPoint: 270,
32825
+ aniOrigin: 'default',
32826
+ animations: [
32827
+ {
32828
+ animate: 'fadeInDown',
32829
+ count: 1,
32830
+ timing: 'ease',
32831
+ loop: false,
32832
+ delay: 0,
32833
+ duration: 1.5,
32834
+ name: '从上淡入',
32835
+ order: 'normal',
32836
+ type: 'normal',
32837
+ aniType: 'entry',
32838
+ allDelay: '0.0',
32839
+ id: 80102
32840
+ }
32841
+ ],
32842
+ textAni: []
32843
+ },
32844
+ triggers: {
32845
+ event: 'music',
32846
+ link: 'http://www.baidu.com',
32847
+ go: 4,
32848
+ phone: '0622222222',
32849
+ musicName: '告白气球',
32850
+ musicLink: 'https://amp3.hunbei.com/mp3/qiniu/gaobaiqiqiu.mp3',
32851
+ musicHash: '',
32852
+ music_id: 2247,
32853
+ cat: 'sys',
32854
+ originalUrl: '',
32855
+ crop: null,
32856
+ },
32857
+ signType: 'time'
32858
+ };
32859
+
32860
+ const mapDefaultProps =
32861
+ // {
32862
+ // "id": '1714374739136',
32863
+ // "pid": "",
32864
+ // "type": "map",
32865
+ // "textContent": "",
32866
+ // "layerName": "地图20",
32867
+ // "btnName": "导航",
32868
+ // "sign": true,
32869
+ // "signSort": 4,
32870
+ // "mapStyle": "按钮",
32871
+ // "css": {
32872
+ // "borderWidth": 0,
32873
+ // "borderStyle": "solid",
32874
+ // "borderColor": "rgba(153, 153, 153, 1)",
32875
+ // "opacity": 1,
32876
+ // "fontSize": 30,
32877
+ // "color": "rgba(255, 255, 255, 1)",
32878
+ // "backgroundColor": "rgba(52, 68, 244, 1)",
32879
+ // "width": 220,
32880
+ // "height": 40,
32881
+ // "top": 378,
32882
+ // "left": 127.5,
32883
+ // "transform": 0,
32884
+ // "borderRadius": 0,
32885
+ // "animation2": "fadeIn 1.5s ease 1.0s 1 normal backwards running",
32886
+ // "animation": "fadeIn 1.5s ease 1.0s 1 normal backwards running"
32887
+ // },
32888
+ // "properties": {
32889
+ // "visible": true,
32890
+ // "isLock": false,
32891
+ // "required": true,
32892
+ // "musicName": "",
32893
+ // "musicLink": "",
32894
+ // "musicHash": "",
32895
+ // "shadowSize": 0,
32896
+ // "shadowColor": "#999999",
32897
+ // "shadowX": 0,
32898
+ // "shadowY": 0,
32899
+ // "shadowBlur": 0,
32900
+ // "shadowPoint": 270,
32901
+ // "aniOrigin": "default",
32902
+ // "animations": [
32903
+ // {
32904
+ // "animate": "fadeIn",
32905
+ // "count": 1,
32906
+ // "timing": "ease",
32907
+ // "loop": false,
32908
+ // "delay": 1,
32909
+ // "duration": 1.5,
32910
+ // "name": "淡入",
32911
+ // "order": "normal",
32912
+ // "type": "normal",
32913
+ // "aniType": "entry",
32914
+ // "allDelay": "1.0",
32915
+ // "id": 40976
32916
+ // }
32917
+ // ],
32918
+ // "lng": 120.298935,
32919
+ // "lat": 35.972687,
32920
+ // "location": "涵碧楼酒店",
32921
+ // "zoom": 15,
32922
+ // "type": "gaode",
32923
+ // "isMapEdit": 1,
32924
+ // "textAni": [],
32925
+ // "mapImg": "",
32926
+ // "mapChange": "120.298935|35.972687|15|205|205"
32927
+ // },
32928
+ // "signType": "ditu"
32929
+ // }
32930
+ {
32931
+ id: '',
32932
+ pid: '',
32933
+ type: 'map',
32934
+ textContent: '',
32935
+ layerName: 'map',
32936
+ btnName: 'Google Map',
32937
+ sign: true,
32938
+ signSort: 6,
32939
+ mapStyle: 'default',
32940
+ iframeUrl: '<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3875.8578774438038!2d100.54467957597053!3d13.72705308666229!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x30e29f2476aee2a3%3A0x6e91389d33667ab8!2sOne%20Bangkok!5e0!3m2!1szh-CN!2sth!4v1746974818429!5m2!1szh-CN!2sth" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>',
32941
+ url: 'https://maps.app.goo.gl/DbrLnbiWJt9DQa3y6',
32942
+ css: {
32943
+ borderWidth: 0,
32944
+ borderStyle: 'solid',
32945
+ borderColor: 'rgba(153, 153, 153, 1)',
32946
+ opacity: 1,
32947
+ fontSize: 30,
32948
+ color: 'rgba(255, 255, 255, 1)',
32949
+ backgroundColor: 'rgba(52, 68, 244, 1)',
32950
+ width: 220,
32951
+ height: 220,
32952
+ top: 196,
32953
+ left: 77,
32954
+ transform: 0,
32955
+ borderRadius: 0
32956
+ },
32957
+ properties: {
32958
+ visible: true,
32959
+ isLock: false,
32960
+ required: true,
32961
+ musicName: '',
32962
+ musicLink: '',
32963
+ musicHash: '',
32964
+ shadowSize: 0,
32965
+ shadowColor: '#999999',
32966
+ shadowX: 0,
32967
+ shadowY: 0,
32968
+ shadowBlur: 0,
32969
+ shadowPoint: 270,
32970
+ aniOrigin: 'default',
32971
+ animations: [],
32972
+ lng: 120.298935,
32973
+ lat: 35.972687,
32974
+ location: 'One Bangkok',
32975
+ zoom: 15,
32976
+ type: 'google',
32977
+ isMapEdit: 0
32978
+ },
32979
+ signType: 'map'
32980
+ };
32981
+
32982
+ const countdownDefaultProps = {
32983
+ id: '1749545996934',
32984
+ pid: '',
32985
+ type: 'countdown',
32986
+ layerName: 'countdown',
32987
+ deadline: '2025-11-15 13:00:00',
32988
+ endOption: 'zero',
32989
+ endText: '',
32990
+ sign: true,
32991
+ language: 'th',
32992
+ direction: 'across',
32993
+ signSort: 7,
32994
+ showType: 'flip',
32995
+ showSize: 'middle',
32996
+ css: {
32997
+ borderWidth: 0,
32998
+ borderStyle: 'solid',
32999
+ borderColor: 'rgba(153, 153, 153, 1)',
33000
+ opacity: 1,
33001
+ fontSize: 20,
33002
+ color: 'rgba(255, 255, 255, 1)',
33003
+ backgroundColor: '#000000',
33004
+ width: 375,
33005
+ height: 85,
33006
+ borderRadius: 5,
33007
+ top: 214.5,
33008
+ left: 35,
33009
+ transform: 0,
33010
+ textAlign: 'center',
33011
+ animation2: 'fadeInLeft 1.5s ease 0.0s 1 normal backwards running',
33012
+ animation: 'fadeInLeft 1.5s ease 0.0s 1 normal backwards running'
33013
+ },
33014
+ properties: {
33015
+ visible: true,
33016
+ isLock: false,
33017
+ required: true,
33018
+ musicName: '',
33019
+ musicLink: '',
33020
+ musicHash: '',
33021
+ shadowSize: 0,
33022
+ shadowColor: '#999999',
33023
+ shadowX: 0,
33024
+ shadowY: 0,
33025
+ shadowBlur: 0,
33026
+ shadowPoint: 270,
33027
+ aniOrigin: 'default',
33028
+ animations: [
33029
+ {
33030
+ animate: 'fadeInLeft',
33031
+ count: 1,
33032
+ timing: 'ease',
33033
+ loop: false,
33034
+ delay: 0,
33035
+ duration: 1.5,
33036
+ name: '从左淡入',
33037
+ order: 'normal',
33038
+ type: 'normal',
33039
+ aniType: 'entry',
33040
+ allDelay: '0.0',
33041
+ id: 9504
33042
+ }
33043
+ ],
33044
+ textAni: []
33045
+ },
33046
+ signType: 'time'
33047
+ };
33048
+
33049
+ const effectDefaultProps = {
33050
+ id: '1749564784798',
33051
+ pid: '',
33052
+ type: 'effect',
33053
+ layerName: 'effect',
33054
+ sign: false,
33055
+ signSort: 1,
33056
+ css: {
33057
+ width: 375,
33058
+ height: 595,
33059
+ left: 0,
33060
+ top: 52.5,
33061
+ opacity: 1,
33062
+ transform: 0
33063
+ },
33064
+ properties: {
33065
+ type: 'petal',
33066
+ speed: 'middle',
33067
+ count: 'middle',
33068
+ visible: true,
33069
+ isLock: false,
33070
+ animations: []
33071
+ }
33072
+ };
33073
+
33074
+ const shapeDefaultProps = {
33075
+ id: "1722563395007",
33076
+ pid: "",
33077
+ type: "shape",
33078
+ layerName: "形状3",
33079
+ sign: false,
33080
+ signSort: 1,
33081
+ overturnType: 0,
33082
+ css: {
33083
+ fontFamily: "kanit",
33084
+ fontSize: 12,
33085
+ opacity: 0.35,
33086
+ width: 303,
33087
+ height: 525,
33088
+ left: 35.632000000000005,
33089
+ top: 60,
33090
+ transform: 0,
33091
+ borderRadius: 0,
33092
+ borderWidth: 0,
33093
+ borderColor: "rgba(153, 153, 153, 1)",
33094
+ borderStyle: "solid",
33095
+ svgPathColor: ["rgba(255, 255, 255, 1)"],
33096
+ animation2: "fadeIn 3s ease 2.4s 1 normal backwards running",
33097
+ animation: "fadeIn 3s ease 2.4s 1 normal backwards running"
33098
+ },
33099
+ triggers: {
33100
+ event: "",
33101
+ link: "",
33102
+ go: "",
33103
+ phone: "",
33104
+ musicName: "",
33105
+ musicLink: "",
33106
+ musicHash: ""
33107
+ },
33108
+ properties: {
33109
+ visible: true,
33110
+ isLock: false,
33111
+ required: true,
33112
+ musicName: "",
33113
+ musicLink: "",
33114
+ musicHash: "",
33115
+ shadowSize: 0,
33116
+ shadowColor: "#999999",
33117
+ shadowX: 0,
33118
+ shadowY: 0,
33119
+ shadowBlur: 0,
33120
+ shadowPoint: 270,
33121
+ aniOrigin: "default",
33122
+ animations: [
33123
+ {
33124
+ animate: "fadeIn",
33125
+ count: 1,
33126
+ timing: "ease",
33127
+ loop: false,
33128
+ delay: 2.4,
33129
+ duration: 3,
33130
+ name: "淡入",
33131
+ order: "normal",
33132
+ type: "normal",
33133
+ aniType: "entry",
33134
+ allDelay: "2.4",
33135
+ id: 68742
33136
+ }
33137
+ ],
33138
+ src: "https://h5cdn.unika.cc/static/assets/shape/shape-1.svg",
33139
+ textAni: []
33140
+ }
33141
+ };
33142
+
33143
+ const lottieDefaultProps = {
33144
+ id: '1640154752919',
33145
+ pid: '',
33146
+ type: 'lottie',
33147
+ layerName: 'lottie动画11',
33148
+ sign: false,
33149
+ loop: false,
33150
+ delay: 2,
33151
+ aniPath: 'https://h5cdn.unika.cc/static/lotties/wedding.json',
33152
+ css: {
33153
+ left: 35.5,
33154
+ top: 105,
33155
+ width: 305,
33156
+ height: 305,
33157
+ opacity: 1,
33158
+ transform: 0
33159
+ },
33160
+ properties: {
33161
+ visible: true,
33162
+ isLock: false
33163
+ }
33164
+ };
33165
+
33166
+ const videoDefaultProps = {
33167
+ id: '',
33168
+ pid: '',
33169
+ type: 'video',
33170
+ videoCodeOri: '',
33171
+ videoCode: 'https://youtu.be/ER1R3lFOQFg',
33172
+ layerName: 'video',
33173
+ sign: true,
33174
+ signSort: 5,
33175
+ videoStyle: '固定播放',
33176
+ videoUrl: '',
33177
+ imgUrl: '',
33178
+ playMode: 'click',
33179
+ playLoop: true,
33180
+ playControls: true,
33181
+ videoType: 1,
33182
+ fullScreen: false,
33183
+ overturnType: 0,
33184
+ css: {
33185
+ width: 350,
33186
+ height: 197,
33187
+ left: 12,
33188
+ top: 268.5,
33189
+ opacity: 1,
33190
+ borderRadius: 0,
33191
+ borderWidth: 0,
33192
+ borderStyle: 'solid',
33193
+ borderColor: 'rgba(153, 153, 153, 1)',
33194
+ transform: 0,
33195
+ recordImgWidth: 350,
33196
+ recordImgHeight: 197,
33197
+ recordBtnWidth: 60,
33198
+ recordBtnHeight: 60
33199
+ },
33200
+ triggers: {
33201
+ event: '',
33202
+ link: '',
33203
+ go: null,
33204
+ phone: '',
33205
+ musicName: '',
33206
+ musicLink: '',
33207
+ musicHash: ''
33208
+ },
33209
+ properties: {
33210
+ visible: true,
33211
+ isLock: false,
33212
+ required: true,
33213
+ musicName: '',
33214
+ musicLink: '',
33215
+ musicHash: '',
33216
+ shadowSize: 0,
33217
+ shadowColor: '#999999',
33218
+ shadowX: 0,
33219
+ shadowY: 0,
33220
+ shadowBlur: 0,
33221
+ shadowPoint: 270,
33222
+ aniOrigin: 'default',
33223
+ animations: [],
33224
+ src: 'https://h5cdn.unika.cc/static/img/uniComponents/video_button1.png',
33225
+ cover: 'https://h5cdn.unika.cc/static/img/uniComponents/logo.png',
33226
+ realW: 0,
33227
+ realH: 0,
33228
+ maskId: ''
33229
+ },
33230
+ originalUrl: '',
33231
+ crop: ''
33232
+ };
33233
+
33234
+ const callDefaultProps = {
33235
+ id: '1749136706168',
33236
+ pid: '',
33237
+ type: 'call',
33238
+ tel: '18888888888',
33239
+ btnText: '一键拨号',
33240
+ layerName: '拨号16',
33241
+ sign: true,
33242
+ signSort: 6,
33243
+ css: {
33244
+ borderWidth: 0,
33245
+ borderStyle: 'solid',
33246
+ borderColor: 'rgba(153, 153, 153, 1)',
33247
+ opacity: 1,
33248
+ fontSize: 16,
33249
+ color: 'rgba(255, 255, 255, 1)',
33250
+ backgroundColor: 'rgb(33, 147, 255)',
33251
+ width: 120,
33252
+ height: 40,
33253
+ borderRadius: 10,
33254
+ top: 122,
33255
+ left: 155,
33256
+ transform: 0,
33257
+ },
33258
+ properties: {
33259
+ visible: true,
33260
+ isLock: false,
33261
+ required: true,
33262
+ musicName: '',
33263
+ musicLink: '',
33264
+ musicHash: '',
33265
+ shadowSize: 0,
33266
+ shadowColor: '#999999',
33267
+ shadowX: 0,
33268
+ shadowY: 0,
33269
+ shadowBlur: 0,
33270
+ shadowPoint: 270,
33271
+ aniOrigin: 'default',
33272
+ animations: [],
33273
+ }
33274
+ };
33275
+
33276
+ const buttonDefaultProps = {
33277
+ id: '1749136706168',
33278
+ pid: '',
33279
+ type: 'button',
33280
+ btnText: 'Button',
33281
+ layerName: 'button',
33282
+ sign: true,
33283
+ signSort: 6,
33284
+ css: {
33285
+ borderWidth: 0,
33286
+ borderStyle: 'solid',
33287
+ borderColor: 'rgba(153, 153, 153, 1)',
33288
+ opacity: 1,
33289
+ fontSize: 16,
33290
+ color: 'rgba(255, 255, 255, 1)',
33291
+ backgroundColor: 'rgb(33, 147, 255)',
33292
+ width: 120,
33293
+ height: 40,
33294
+ borderRadius: 10,
33295
+ top: 122,
33296
+ left: 155,
33297
+ transform: 0
33298
+ },
33299
+ triggers: {
33300
+ event: 'link',
33301
+ link: 'http://www.baidu.com',
33302
+ go: 4,
33303
+ phone: '0622222222',
33304
+ musicName: '告白气球',
33305
+ musicLink: 'https://amp3.hunbei.com/mp3/qiniu/gaobaiqiqiu.mp3',
33306
+ musicHash: '',
33307
+ music_id: 2247,
33308
+ cat: 'sys',
33309
+ originalUrl: '',
33310
+ crop: null,
33311
+ },
33312
+ properties: {
33313
+ visible: true,
33314
+ isLock: false,
33315
+ required: true,
33316
+ musicName: '',
33317
+ musicLink: '',
33318
+ musicHash: '',
33319
+ shadowSize: 0,
33320
+ shadowColor: '#999999',
33321
+ shadowX: 0,
33322
+ shadowY: 0,
33323
+ shadowBlur: 0,
33324
+ shadowPoint: 270,
33325
+ aniOrigin: 'default',
33326
+ animations: [],
33327
+ },
33328
+ };
33329
+
33330
+ const formInputDefaultProps = {
33331
+ id: 'id1',
33332
+ pid: '',
33333
+ type: 'form-input',
33334
+ title: '姓名',
33335
+ inputType: 'text',
33336
+ layerName: '输入框',
33337
+ sign: false,
33338
+ signSort: 1,
33339
+ css: {
33340
+ fontFamily: '微软雅黑',
33341
+ fontSize: 14,
33342
+ color: '#6e6e6e',
33343
+ width: 235,
33344
+ height: 40,
33345
+ left: 70,
33346
+ top: 330,
33347
+ backgroundColor: '#fff',
33348
+ borderRadius: 2,
33349
+ borderColor: 'rgba(153, 153, 153, 1)',
33350
+ borderWidth: 1,
33351
+ borderStyle: 'solid',
33352
+ transform: 0,
33353
+ opacity: 1
33354
+ },
33355
+ properties: {
33356
+ visible: true,
33357
+ isLock: false,
33358
+ required: true,
33359
+ musicName: '',
33360
+ musicLink: '',
33361
+ musicHash: '',
33362
+ shadowSize: 0,
33363
+ shadowColor: '#999999',
33364
+ shadowX: 0,
33365
+ shadowY: 0,
33366
+ shadowBlur: 0,
33367
+ shadowPoint: 270,
33368
+ aniOrigin: 'default',
33369
+ animations: []
33370
+ }
33371
+ };
33372
+
33373
+ const formSubmitDefaultProps = {
33374
+ id: 'id4',
33375
+ pid: '',
33376
+ btName: '提交',
33377
+ type: 'form-submit',
33378
+ layerName: 'submitFormButton',
33379
+ sign: false,
33380
+ signSort: 1,
33381
+ subType: 'allPage',
33382
+ succEvent: 'alert',
33383
+ succAlert: '提交成功,感谢您的参与!',
33384
+ succUrl: '',
33385
+ css: {
33386
+ width: 235,
33387
+ height: 40,
33388
+ lineHeight: 1,
33389
+ color: '#fff',
33390
+ fontSize: 16,
33391
+ left: 70,
33392
+ top: 480,
33393
+ borderRadius: 4,
33394
+ borderColor: 'rgba(153, 153, 153, 1)',
33395
+ borderWidth: 0,
33396
+ borderStyle: 'solid',
33397
+ backgroundColor: '#2687f1',
33398
+ textAlign: 'center',
33399
+ transform: 0,
33400
+ opacity: 1
33401
+ },
33402
+ properties: {
33403
+ visible: true,
33404
+ isLock: false,
33405
+ required: true,
33406
+ musicName: '',
33407
+ musicLink: '',
33408
+ musicHash: '',
33409
+ shadowSize: 0,
33410
+ shadowColor: '#999999',
33411
+ shadowX: 0,
33412
+ shadowY: 0,
33413
+ shadowBlur: 0,
33414
+ shadowPoint: 270,
33415
+ aniOrigin: 'default',
33416
+ animations: []
33417
+ }
33418
+ };
33419
+
32707
33420
  /** 送呈快捷短语 — 开发/编辑器 fallback;生产环境由 biz-editor-server API 提供 */
32708
33421
  const INVITE_QUICK_PHRASES = [
32709
33422
  '邀请您一道分享我们的喜悦',
@@ -32808,16 +33521,28 @@
32808
33521
  exports.applyTemplateToInviteItem = applyTemplateToInviteItem;
32809
33522
  exports.applyTextAnimation = applyTextAnimation;
32810
33523
  exports.applyTextAnimationsForPage = applyTextAnimationsForPage;
33524
+ exports.buttonDefaultProps = buttonDefaultProps;
33525
+ exports.calendarDefaultProps = calendarDefaultProps;
33526
+ exports.callDefaultProps = callDefaultProps;
33527
+ exports.countdownDefaultProps = countdownDefaultProps;
32811
33528
  exports["default"] = index;
33529
+ exports.effectDefaultProps = effectDefaultProps;
33530
+ exports.formInputDefaultProps = formInputDefaultProps;
33531
+ exports.formSubmitDefaultProps = formSubmitDefaultProps;
32812
33532
  exports.getInviteDismissDelay = getInviteDismissDelay;
32813
33533
  exports.getInviteRenderFromGlobal = getInviteRenderFromGlobal;
32814
33534
  exports.getInviteTemplateById = getInviteTemplateById;
32815
33535
  exports.install = install;
32816
33536
  exports.inviteDefaultProps = inviteDefaultProps;
32817
33537
  exports.isValidInviteItem = isValidInviteItem;
33538
+ exports.lottieDefaultProps = lottieDefaultProps;
33539
+ exports.mapDefaultProps = mapDefaultProps;
33540
+ exports.musicDefaultProps = musicDefaultProps;
32818
33541
  exports.resolveInviteRenderData = resolveInviteRenderData;
32819
33542
  exports.restoreTextAnimation = restoreTextAnimation;
33543
+ exports.shapeDefaultProps = shapeDefaultProps;
32820
33544
  exports.useInviteManager = useInviteManager;
33545
+ exports.videoDefaultProps = videoDefaultProps;
32821
33546
 
32822
33547
  Object.defineProperty(exports, '__esModule', { value: true });
32823
33548