pb-sxp-ui 1.0.98 → 1.0.100

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.
Files changed (102) hide show
  1. package/dist/index.cjs +396 -181
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +23 -20
  4. package/dist/index.js +397 -181
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.min.cjs +3 -3
  7. package/dist/index.min.cjs.map +1 -1
  8. package/dist/index.min.js +3 -3
  9. package/dist/index.min.js.map +1 -1
  10. package/dist/pb-ui.js +396 -181
  11. package/dist/pb-ui.js.map +1 -1
  12. package/dist/pb-ui.min.js +3 -3
  13. package/dist/pb-ui.min.js.map +1 -1
  14. package/es/core/components/SxpPageRender/ExpandableText.js +3 -2
  15. package/es/core/components/SxpPageRender/Hashtag/index.js +3 -1
  16. package/es/core/components/SxpPageRender/Navbar.js +4 -1
  17. package/es/core/components/SxpPageRender/VideoWidget/index.d.ts +1 -0
  18. package/es/core/components/SxpPageRender/VideoWidget/index.js +3 -3
  19. package/es/core/components/SxpPageRender/WaterFall/List.js +21 -10
  20. package/es/core/components/SxpPageRender/WaterFall/WaterfallList.js +24 -13
  21. package/es/core/components/SxpPageRender/index.d.ts +1 -0
  22. package/es/core/components/SxpPageRender/index.js +2 -1
  23. package/es/core/context/EditorDataProvider.d.ts +1 -0
  24. package/es/core/context/EditorDataProvider.js +2 -1
  25. package/es/core/utils/tool.d.ts +5 -0
  26. package/es/core/utils/tool.js +43 -0
  27. package/es/index.d.ts +0 -1
  28. package/es/index.js +0 -1
  29. package/es/materials/sxp/HashTag/settingRender.d.ts +19 -22
  30. package/es/materials/sxp/HashTag/settingRender.js +31 -13
  31. package/es/materials/sxp/popup/AppointForm/Form.d.ts +14 -0
  32. package/es/materials/sxp/popup/AppointForm/Form.js +8 -0
  33. package/es/materials/sxp/popup/AppointForm/index.js +25 -20
  34. package/es/materials/sxp/popup/AppointForm/settingRender.d.ts +9 -20
  35. package/es/materials/sxp/popup/AppointForm/settingRender.js +31 -13
  36. package/es/materials/sxp/popup/CommodityDetail/index.js +13 -4
  37. package/es/materials/sxp/popup/CommodityDetail/settingRender.d.ts +19 -22
  38. package/es/materials/sxp/popup/CommodityDetail/settingRender.js +31 -13
  39. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +16 -5
  40. package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +19 -22
  41. package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +31 -13
  42. package/es/materials/sxp/popup/Prompt/index.js +4 -1
  43. package/es/materials/sxp/popup/Prompt/settingRender.d.ts +10 -8
  44. package/es/materials/sxp/popup/Prompt/settingRender.js +16 -8
  45. package/es/materials/sxp/template/Appoint/index.js +4 -1
  46. package/es/materials/sxp/template/Commodity/index.js +7 -2
  47. package/es/materials/sxp/template/CommodityDiro/index.js +8 -3
  48. package/es/materials/sxp/template/CommodityDiroNew/index.js +7 -2
  49. package/es/materials/sxp/template/Link/index.js +4 -1
  50. package/es/materials/sxp/template/MultiCommodity/index.js +7 -2
  51. package/es/materials/sxp/template/MultiCommodityDiro/index.js +8 -3
  52. package/es/materials/sxp/template/MultiCommodityDiroNew/index.js +7 -2
  53. package/es/materials/sxp/template/components/Img.js +1 -1
  54. package/es/materials/sxp/template/components/settingRender.d.ts +16 -24
  55. package/es/materials/sxp/template/components/settingRender.js +30 -12
  56. package/lib/core/components/SxpPageRender/ExpandableText.js +3 -2
  57. package/lib/core/components/SxpPageRender/Hashtag/index.js +3 -1
  58. package/lib/core/components/SxpPageRender/Navbar.js +4 -1
  59. package/lib/core/components/SxpPageRender/VideoWidget/index.d.ts +1 -0
  60. package/lib/core/components/SxpPageRender/VideoWidget/index.js +3 -3
  61. package/lib/core/components/SxpPageRender/WaterFall/List.js +21 -10
  62. package/lib/core/components/SxpPageRender/WaterFall/WaterfallList.js +24 -13
  63. package/lib/core/components/SxpPageRender/index.d.ts +1 -0
  64. package/lib/core/components/SxpPageRender/index.js +2 -1
  65. package/lib/core/context/EditorDataProvider.d.ts +1 -0
  66. package/lib/core/context/EditorDataProvider.js +2 -1
  67. package/lib/core/utils/tool.d.ts +5 -0
  68. package/lib/core/utils/tool.js +45 -1
  69. package/lib/index.d.ts +0 -1
  70. package/lib/index.js +1 -3
  71. package/lib/materials/sxp/HashTag/settingRender.d.ts +19 -22
  72. package/lib/materials/sxp/HashTag/settingRender.js +31 -13
  73. package/lib/materials/sxp/popup/AppointForm/Form.d.ts +14 -0
  74. package/lib/materials/sxp/popup/AppointForm/Form.js +11 -0
  75. package/lib/materials/sxp/popup/AppointForm/index.js +24 -19
  76. package/lib/materials/sxp/popup/AppointForm/settingRender.d.ts +9 -20
  77. package/lib/materials/sxp/popup/AppointForm/settingRender.js +31 -14
  78. package/lib/materials/sxp/popup/CommodityDetail/index.js +13 -4
  79. package/lib/materials/sxp/popup/CommodityDetail/settingRender.d.ts +19 -22
  80. package/lib/materials/sxp/popup/CommodityDetail/settingRender.js +31 -13
  81. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +16 -5
  82. package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +19 -22
  83. package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +31 -13
  84. package/lib/materials/sxp/popup/Prompt/index.js +4 -1
  85. package/lib/materials/sxp/popup/Prompt/settingRender.d.ts +10 -8
  86. package/lib/materials/sxp/popup/Prompt/settingRender.js +16 -9
  87. package/lib/materials/sxp/template/Appoint/index.js +4 -1
  88. package/lib/materials/sxp/template/Commodity/index.js +7 -2
  89. package/lib/materials/sxp/template/CommodityDiro/index.js +8 -3
  90. package/lib/materials/sxp/template/CommodityDiroNew/index.js +7 -2
  91. package/lib/materials/sxp/template/Link/index.js +4 -1
  92. package/lib/materials/sxp/template/MultiCommodity/index.js +7 -2
  93. package/lib/materials/sxp/template/MultiCommodityDiro/index.js +8 -3
  94. package/lib/materials/sxp/template/MultiCommodityDiroNew/index.js +7 -2
  95. package/lib/materials/sxp/template/components/Img.js +1 -1
  96. package/lib/materials/sxp/template/components/settingRender.d.ts +16 -24
  97. package/lib/materials/sxp/template/components/settingRender.js +30 -12
  98. package/package.json +1 -1
  99. package/es/materials/sxp/defaultSetting.d.ts +0 -8
  100. package/es/materials/sxp/defaultSetting.js +0 -6
  101. package/lib/materials/sxp/defaultSetting.d.ts +0 -8
  102. package/lib/materials/sxp/defaultSetting.js +0 -9
@@ -5,8 +5,9 @@ import EventProvider from '../components/EventProvider';
5
5
  import styles from './index.module.less';
6
6
  import { useSxpDataSource } from '../../../../core/hooks';
7
7
  import Img from '../components/Img';
8
+ import { setFontForText } from '../../../../core/utils/tool';
8
9
  const CommodityDiro = (_a) => {
9
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
10
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
10
11
  var { content, style, bgImg, recData, bottom_image, ctaTempStyles, isExternalLink, translateY = 0, index } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "isExternalLink", "translateY", "index"]);
11
12
  const { sxpParameter } = useSxpDataSource();
12
13
  const product = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProduct;
@@ -21,7 +22,11 @@ const CommodityDiro = (_a) => {
21
22
  width: '100%',
22
23
  overflow: 'hidden'
23
24
  }) },
24
- React.createElement("div", { className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title }, (_j = product === null || product === void 0 ? void 0 : product.title) !== null && _j !== void 0 ? _j : 'Product Name'),
25
- React.createElement("div", { className: css(Object.assign({ padding: '2px 7px', textOverflow: 'ellipsis', overflow: 'hidden', borderRadius: '25px', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)) }, (_l = (_k = product === null || product === void 0 ? void 0 : product.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now'))));
25
+ React.createElement("div", { className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
26
+ __html: setFontForText((_j = product === null || product === void 0 ? void 0 : product.title) !== null && _j !== void 0 ? _j : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
27
+ } }),
28
+ React.createElement("div", { className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', borderRadius: '25px', whiteSpace: 'nowrap', lineHeight: ((_k = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _k === void 0 ? void 0 : _k.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
29
+ __html: setFontForText((_m = (_l = product === null || product === void 0 ? void 0 : product.bindCta) === null || _l === void 0 ? void 0 : _l.enTitle) !== null && _m !== void 0 ? _m : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
30
+ } }))));
26
31
  };
27
32
  export default memo(CommodityDiro);
@@ -5,6 +5,7 @@ import EventProvider from '../components/EventProvider';
5
5
  import styles from './index.module.less';
6
6
  import { useSxpDataSource } from '../../../../core/hooks';
7
7
  import Img from '../components/Img';
8
+ import { setFontForText } from '../../../../core/utils/tool';
8
9
  const CommodityDiroNew = (_a) => {
9
10
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
10
11
  var { content, style, bgImg, recData, bottom_image, ctaTempStyles, isExternalLink, translateY = 0, index } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "isExternalLink", "translateY", "index"]);
@@ -21,7 +22,11 @@ const CommodityDiroNew = (_a) => {
21
22
  width: '100%',
22
23
  overflow: 'hidden'
23
24
  }) },
24
- React.createElement("div", { className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title }, (_j = product === null || product === void 0 ? void 0 : product.title) !== null && _j !== void 0 ? _j : 'Product Name'),
25
- React.createElement("div", { className: css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)) }, (_l = (_k = product === null || product === void 0 ? void 0 : product.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop now'))));
25
+ React.createElement("div", { className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
26
+ __html: setFontForText((_j = product === null || product === void 0 ? void 0 : product.title) !== null && _j !== void 0 ? _j : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
27
+ } }),
28
+ React.createElement("div", { className: css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
29
+ __html: setFontForText((_l = (_k = product === null || product === void 0 ? void 0 : product.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
30
+ } }))));
26
31
  };
27
32
  export default memo(CommodityDiroNew);
@@ -6,6 +6,7 @@ import styles from './index.module.less';
6
6
  import { useSxpDataSource } from '../../../../core/hooks';
7
7
  import { useEventReport } from '../../../../core/hooks/useEventReport';
8
8
  import Img from '../components/Img';
9
+ import { setFontForText } from '../../../../core/utils/tool';
9
10
  const Link = (_a) => {
10
11
  var _b, _c, _d, _e, _f, _g, _h;
11
12
  var { content, style, bgImg, recData, bottom_image, ctaTempStyles, index } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "index"]);
@@ -28,6 +29,8 @@ const Link = (_a) => {
28
29
  width: '100%',
29
30
  overflow: 'hidden'
30
31
  }) },
31
- React.createElement("div", { className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle }, (_h = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _h !== void 0 ? _h : 'Product Name'))));
32
+ React.createElement("div", { className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle, dangerouslySetInnerHTML: {
33
+ __html: setFontForText((_h = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _h !== void 0 ? _h : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
34
+ } }))));
32
35
  };
33
36
  export default memo(Link);
@@ -8,6 +8,7 @@ import Scroll from '../components/Scroll';
8
8
  import styles from './index.module.less';
9
9
  import { useEditor, useSxpDataSource } from '../../../../core/hooks';
10
10
  import { useEventReport } from '../../../../core/hooks/useEventReport';
11
+ import { setFontForText } from '../../../../core/utils/tool';
11
12
  const MultiCommodity = (_a) => {
12
13
  var _b, _c;
13
14
  var { content, style, bgImg, recData, onClick, bottom_image, ctaTempStyles, isExternalLink, index, translateY = 0 } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image", "ctaTempStyles", "isExternalLink", "index", "translateY"]);
@@ -44,8 +45,12 @@ const MultiCommodity = (_a) => {
44
45
  width: '100%',
45
46
  overflow: 'hidden'
46
47
  }) },
47
- React.createElement("div", { className: styles['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title }, (_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name'),
48
- React.createElement("div", { className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', lineHeight: ((_f = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _f === void 0 ? void 0 : _f.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)) }, (_h = (_g = item === null || item === void 0 ? void 0 : item.bindCta) === null || _g === void 0 ? void 0 : _g.enTitle) !== null && _h !== void 0 ? _h : 'Shop Now'))))));
48
+ React.createElement("div", { className: styles['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
49
+ __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
50
+ } }),
51
+ React.createElement("div", { className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', lineHeight: ((_f = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _f === void 0 ? void 0 : _f.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
52
+ __html: setFontForText((_h = (_g = item === null || item === void 0 ? void 0 : item.bindCta) === null || _g === void 0 ? void 0 : _g.enTitle) !== null && _h !== void 0 ? _h : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
53
+ } }))))));
49
54
  })));
50
55
  };
51
56
  export default memo(MultiCommodity);
@@ -8,6 +8,7 @@ import Img from '../components/Img';
8
8
  import styles from './index.module.less';
9
9
  import { useEditor, useSxpDataSource } from '../../../../core/hooks';
10
10
  import { useEventReport } from '../../../../core/hooks/useEventReport';
11
+ import { setFontForText } from '../../../../core/utils/tool';
11
12
  const MultiCommodityDiro = (_a) => {
12
13
  var _b, _c;
13
14
  var { content, style, bgImg, recData, onClick, bottom_image, ctaTempStyles, isExternalLink, index, translateY = 0 } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image", "ctaTempStyles", "isExternalLink", "index", "translateY"]);
@@ -32,7 +33,7 @@ const MultiCommodityDiro = (_a) => {
32
33
  }
33
34
  }, popup === null || popup === void 0 ? void 0 : popup.duration);
34
35
  return (React.createElement(Scroll, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item) => {
35
- var _a, _b, _c, _d, _e, _f, _g;
36
+ var _a, _b, _c, _d, _e, _f, _g, _h;
36
37
  return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key: item === null || item === void 0 ? void 0 : item.itemId, className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item) }),
37
38
  React.createElement(Img, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img }),
38
39
  React.createElement("div", { className: css({
@@ -43,8 +44,12 @@ const MultiCommodityDiro = (_a) => {
43
44
  width: '100%',
44
45
  overflow: 'hidden'
45
46
  }) },
46
- React.createElement("div", { className: styles['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title }, (_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name'),
47
- React.createElement("div", { className: css(Object.assign({ padding: '2px 7px', textOverflow: 'ellipsis', overflow: 'hidden', borderRadius: '25px', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)) }, (_g = (_f = item === null || item === void 0 ? void 0 : item.bindCta) === null || _f === void 0 ? void 0 : _f.enTitle) !== null && _g !== void 0 ? _g : 'Shop Now'))))));
47
+ React.createElement("div", { className: styles['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
48
+ __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
49
+ } }),
50
+ React.createElement("div", { className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', borderRadius: '25px', whiteSpace: 'nowrap', lineHeight: ((_f = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _f === void 0 ? void 0 : _f.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
51
+ __html: setFontForText((_h = (_g = item === null || item === void 0 ? void 0 : item.bindCta) === null || _g === void 0 ? void 0 : _g.enTitle) !== null && _h !== void 0 ? _h : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
52
+ } }))))));
48
53
  })));
49
54
  };
50
55
  export default memo(MultiCommodityDiro);
@@ -8,6 +8,7 @@ import Img from '../components/Img';
8
8
  import styles from './index.module.less';
9
9
  import { useEditor, useSxpDataSource } from '../../../../core/hooks';
10
10
  import { useEventReport } from '../../../../core/hooks/useEventReport';
11
+ import { setFontForText } from '../../../../core/utils/tool';
11
12
  const MultiCommodityDiroNew = (_a) => {
12
13
  var _b, _c;
13
14
  var { content, style, bgImg, recData, onClick, bottom_image, ctaTempStyles, isExternalLink, index, translateY = 0 } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image", "ctaTempStyles", "isExternalLink", "index", "translateY"]);
@@ -44,8 +45,12 @@ const MultiCommodityDiroNew = (_a) => {
44
45
  overflow: 'hidden',
45
46
  lineHeight: '20px'
46
47
  }) },
47
- React.createElement("div", { className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title }, (_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name'),
48
- React.createElement("div", { className: css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)) }, (_g = (_f = item === null || item === void 0 ? void 0 : item.bindCta) === null || _f === void 0 ? void 0 : _f.enTitle) !== null && _g !== void 0 ? _g : 'Shop now'))))));
48
+ React.createElement("div", { className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
49
+ __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
50
+ } }),
51
+ React.createElement("div", { className: css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
52
+ __html: setFontForText((_g = (_f = item === null || item === void 0 ? void 0 : item.bindCta) === null || _f === void 0 ? void 0 : _f.enTitle) !== null && _g !== void 0 ? _g : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
53
+ } }))))));
49
54
  })));
50
55
  };
51
56
  export default memo(MultiCommodityDiroNew);
@@ -20,6 +20,6 @@ const Img = ({ src, rec, item, index, style, translateY, imgStyle }) => {
20
20
  }, [src]);
21
21
  return (React.createElement("div", { className: css(Object.assign({ overflow: 'hidden', flexShrink: 0, backgroundColor: '#f2f2f2' }, imgStyle)) },
22
22
  React.createElement("div", { ref: ref, hidden: !src, className: css({ width: '100%', height: '100%' }) },
23
- React.createElement(FormatImage, { className: css(Object.assign({ width: '100%', objectFit: 'cover', height: '100%', display: 'block', objectPosition: `50% ${translateY ? -translateY + 50 : 50}%` }, style)), src: imgSrc }))));
23
+ React.createElement(FormatImage, { className: css(Object.assign({ width: '100%', objectFit: 'cover', height: '100%', display: 'block', objectPosition: `50% ${translateY ? -translateY + 50 : 50}%` }, style)), src: src }))));
24
24
  };
25
25
  export default memo(Img);
@@ -96,27 +96,23 @@ declare const _default: ({
96
96
  child: ({
97
97
  type: string;
98
98
  label: string;
99
- child: ({
99
+ child: {
100
100
  type: string;
101
101
  name: string[];
102
- options?: undefined;
103
- initialValue?: undefined;
104
- addonAfter?: undefined;
105
- } | {
102
+ bottomText: string;
103
+ }[];
104
+ name?: undefined;
105
+ } | {
106
+ type: string;
107
+ label: string;
108
+ child: ({
106
109
  type: string;
107
- options: {
108
- label: string;
109
- value: string;
110
- }[];
111
110
  name: string[];
112
- initialValue: string;
113
111
  addonAfter?: undefined;
114
112
  } | {
115
113
  type: string;
116
114
  addonAfter: string;
117
115
  name: string[];
118
- options?: undefined;
119
- initialValue?: undefined;
120
116
  })[];
121
117
  name?: undefined;
122
118
  } | {
@@ -150,27 +146,23 @@ declare const _default: ({
150
146
  } | {
151
147
  type: string;
152
148
  label: string;
153
- child: ({
149
+ child: {
154
150
  type: string;
155
151
  name: string[];
156
- options?: undefined;
157
- initialValue?: undefined;
158
- addonAfter?: undefined;
159
- } | {
152
+ bottomText: string;
153
+ }[];
154
+ name?: undefined;
155
+ } | {
156
+ type: string;
157
+ label: string;
158
+ child: ({
160
159
  type: string;
161
- options: {
162
- label: string;
163
- value: string;
164
- }[];
165
160
  name: string[];
166
- initialValue: string;
167
161
  addonAfter?: undefined;
168
162
  } | {
169
163
  type: string;
170
164
  addonAfter: string;
171
165
  name: string[];
172
- options?: undefined;
173
- initialValue?: undefined;
174
166
  })[];
175
167
  name?: undefined;
176
168
  })[];
@@ -1,5 +1,3 @@
1
- var _a, _b;
2
- import { fontOptions } from '../../defaultSetting';
3
1
  export default [
4
2
  {
5
3
  title: '主题样式',
@@ -117,14 +115,24 @@ export default [
117
115
  label: '字体',
118
116
  child: [
119
117
  {
120
- type: 'Color',
121
- name: ['props', 'ctaTempStyles', 'title', 'color']
118
+ type: 'Select',
119
+ name: ['props', 'ctaTempStyles', 'title', 'fontFamily-cn'],
120
+ bottomText: '中文字体'
122
121
  },
123
122
  {
124
123
  type: 'Select',
125
- options: fontOptions,
126
- name: ['props', 'ctaTempStyles', 'title', 'fontFamily'],
127
- initialValue: (_a = fontOptions === null || fontOptions === void 0 ? void 0 : fontOptions[0]) === null || _a === void 0 ? void 0 : _a.value
124
+ name: ['props', 'ctaTempStyles', 'title', 'fontFamily-en'],
125
+ bottomText: '英文/其他字体'
126
+ }
127
+ ]
128
+ },
129
+ {
130
+ type: 'Group',
131
+ label: '',
132
+ child: [
133
+ {
134
+ type: 'Color',
135
+ name: ['props', 'ctaTempStyles', 'title', 'color']
128
136
  },
129
137
  {
130
138
  type: 'Number',
@@ -196,14 +204,24 @@ export default [
196
204
  label: '字体',
197
205
  child: [
198
206
  {
199
- type: 'Color',
200
- name: ['props', 'ctaTempStyles', 'ctaTitle', 'color']
207
+ type: 'Select',
208
+ name: ['props', 'ctaTempStyles', 'ctaTitle', 'fontFamily-cn'],
209
+ bottomText: '中文字体'
201
210
  },
202
211
  {
203
212
  type: 'Select',
204
- options: fontOptions,
205
- name: ['props', 'ctaTempStyles', 'ctaTitle', 'fontFamily'],
206
- initialValue: (_b = fontOptions === null || fontOptions === void 0 ? void 0 : fontOptions[0]) === null || _b === void 0 ? void 0 : _b.value
213
+ name: ['props', 'ctaTempStyles', 'ctaTitle', 'fontFamily-en'],
214
+ bottomText: '英文/其他字体'
215
+ }
216
+ ]
217
+ },
218
+ {
219
+ type: 'Group',
220
+ label: '',
221
+ child: [
222
+ {
223
+ type: 'Color',
224
+ name: ['props', 'ctaTempStyles', 'ctaTitle', 'color']
207
225
  },
208
226
  {
209
227
  type: 'Number',
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ const tool_1 = require("../../../core/utils/tool");
4
5
  const react_1 = tslib_1.__importStar(require("react"));
5
6
  const limitTextLastWholeWord = (originalText = '', limit) => {
6
7
  const chineseRegex = /[\u4e00-\u9fa5]+/;
@@ -48,8 +49,8 @@ const ExpandableText = ({ text, maxStr = 108, style, className, onClick, foldTex
48
49
  display: '-webkit-box',
49
50
  WebkitBoxOrient: 'vertical',
50
51
  wordBreak: 'break-word'
51
- }, dangerouslySetInnerHTML: { __html: text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>') } }),
52
- react_1.default.createElement("div", { ref: multiRowCopy, dangerouslySetInnerHTML: { __html: text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>') } }),
52
+ }, dangerouslySetInnerHTML: { __html: (0, tool_1.setFontForText)(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
53
+ react_1.default.createElement("div", { ref: multiRowCopy, dangerouslySetInnerHTML: { __html: (0, tool_1.setFontForText)(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
53
54
  text && isPost && isShow && (react_1.default.createElement("span", { style: { textDecoration: 'underline', cursor: 'pointer' }, onClick: onClick !== null && onClick !== void 0 ? onClick : handleClick }, isShowMore ? unfoldText || 'show less' : foldText || 'show more'))));
54
55
  };
55
56
  exports.default = (0, react_1.memo)(ExpandableText);
@@ -5,6 +5,7 @@ const react_1 = tslib_1.__importStar(require("react"));
5
5
  const react_2 = require("swiper/react");
6
6
  const hooks_1 = require("../../../../core/hooks");
7
7
  const Scroll_1 = tslib_1.__importDefault(require("../../../../materials/sxp/template/components/Scroll"));
8
+ const tool_1 = require("../../../../core/utils/tool");
8
9
  const Hashtag = ({ tags, itemId, itemType, index, rec, hashTagStyle }) => {
9
10
  const [isShowMore, setIsShowMore] = (0, react_1.useState)(false);
10
11
  const { setWaterFallData, setOpenHashtag, setCacheActiveIndex, waterFallData, setIsFromHashtag } = (0, hooks_1.useSxpDataSource)();
@@ -38,6 +39,7 @@ const Hashtag = ({ tags, itemId, itemType, index, rec, hashTagStyle }) => {
38
39
  return (react_1.default.createElement("span", { style: { textDecoration: 'underline', cursor: 'pointer', color: '#fff' }, onClick: () => setIsShowMore(!isShowMore) }, isShowMore ? 'show less' : 'show more'));
39
40
  }, [isShowMore, tags]);
40
41
  return (react_1.default.createElement("div", { className: 'clc-sxp-bottom-hashtag' },
41
- react_1.default.createElement(Scroll_1.default, null, tags === null || tags === void 0 ? void 0 : tags.map((item, index) => (react_1.default.createElement(react_2.SwiperSlide, { key: index, hidden: !isShowMore ? index >= 6 : false, className: 'clc-sxp-bottom-hashtag-item', style: hashTagStyle, onClick: () => handleClickTag(item) }, `#${item}`))))));
42
+ react_1.default.createElement(Scroll_1.default, null, tags === null || tags === void 0 ? void 0 : tags.map((item, index) => (react_1.default.createElement(react_2.SwiperSlide, { key: index, hidden: !isShowMore ? index >= 6 : false, className: 'clc-sxp-bottom-hashtag-item', style: hashTagStyle, onClick: () => handleClickTag(item) },
43
+ react_1.default.createElement("div", { dangerouslySetInnerHTML: { __html: (0, tool_1.setFontForText)(`#${item}`, hashTagStyle) } })))))));
42
44
  };
43
45
  exports.default = (0, react_1.memo)(Hashtag);
@@ -3,11 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const react_1 = tslib_1.__importStar(require("react"));
5
5
  const hooks_1 = require("../../../core/hooks");
6
+ const tool_1 = require("../../../core/utils/tool");
6
7
  const Navbar = ({ icon, styles, textStyle, onClose }) => {
7
8
  var _a;
8
9
  const { waterFallData, setOpenHashtag } = (0, hooks_1.useSxpDataSource)();
9
10
  return (react_1.default.createElement("div", { className: 'clc-sxp-nav', style: styles },
10
11
  react_1.default.createElement("img", { className: 'clc-sxp-nav-left', src: icon, alt: 'back button', onClick: onClose }),
11
- react_1.default.createElement("div", { className: 'clc-sxp-nav-title', style: textStyle }, `#${(_a = waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag) !== null && _a !== void 0 ? _a : '标题'}`)));
12
+ react_1.default.createElement("div", { className: 'clc-sxp-nav-title', style: textStyle, dangerouslySetInnerHTML: {
13
+ __html: (0, tool_1.setFontForText)(`#${(_a = waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag) !== null && _a !== void 0 ? _a : '标题'}`, textStyle)
14
+ } })));
12
15
  };
13
16
  exports.default = (0, react_1.memo)(Navbar);
@@ -10,6 +10,7 @@ interface IVideoWidgetProps {
10
10
  activeIndex?: number;
11
11
  videoPostConfig?: postConfigType;
12
12
  videoRef?: any;
13
+ videoPlayIcon?: string;
13
14
  }
14
15
  declare const _default: React.NamedExoticComponent<IVideoWidgetProps>;
15
16
  export default _default;
@@ -8,7 +8,7 @@ const FormatImage_1 = tslib_1.__importDefault(require("../FormatImage"));
8
8
  const hooks_1 = require("../../../../core/hooks");
9
9
  const event_1 = tslib_1.__importStar(require("../../../../core/utils/event"));
10
10
  const loading_gif_1 = tslib_1.__importDefault(require("./loading.gif"));
11
- const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, videoRef }) => {
11
+ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, videoRef, videoPlayIcon }) => {
12
12
  const [isPauseVideo, setIsPauseVideo] = (0, react_1.useState)(false);
13
13
  const { bffEventReport, sxpParameter, waterFallData, openHashtag, bffFbReport } = (0, hooks_1.useSxpDataSource)();
14
14
  const videoStartTime = (0, react_1.useRef)(0);
@@ -332,7 +332,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
332
332
  } },
333
333
  react_1.default.createElement("div", { style: { position: 'relative', width: '100%', height: '100%' } },
334
334
  react_1.default.createElement("div", { className: 'n-full-screen', ref: videoEleRef, id: videoId, style: { width: '100%', height: '100%' } }),
335
- react_1.default.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', alt: 'pause', src: PAUSE_ICON }))),
335
+ react_1.default.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', alt: 'pause', src: videoPlayIcon !== null && videoPlayIcon !== void 0 ? videoPlayIcon : PAUSE_ICON }))),
336
336
  renderPoster,
337
337
  renderLoading)) : (react_1.default.createElement("div", { className: 'video-container', key: rec === null || rec === void 0 ? void 0 : rec.video.itemId, style: {
338
338
  position: 'relative',
@@ -343,6 +343,6 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
343
343
  react_1.default.createElement("div", { className: 'n-full-screen', ref: videoEleRef, id: videoId, style: { width: '100%', height: '100%' } }),
344
344
  renderPoster,
345
345
  renderLoading,
346
- react_1.default.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON, alt: 'pause' })))));
346
+ react_1.default.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: videoPlayIcon !== null && videoPlayIcon !== void 0 ? videoPlayIcon : PAUSE_ICON, alt: 'pause' })))));
347
347
  };
348
348
  exports.default = (0, react_1.memo)(VideoWidget);
@@ -7,6 +7,7 @@ const FormatImage_1 = tslib_1.__importDefault(require("../FormatImage"));
7
7
  const preview_json_1 = tslib_1.__importDefault(require("./preview.json"));
8
8
  const hooks_1 = require("../../../../core/hooks");
9
9
  const css_1 = require("@emotion/css");
10
+ const tool_1 = require("../../../../core/utils/tool");
10
11
  const WaterfallFlowItem = (props) => {
11
12
  const { rec, index, list, reportTagsView, textStyles, space } = props;
12
13
  const { swiperRef, setRtcList, setOpenHashtag, bffEventReport, sxpParameter } = (0, hooks_1.useSxpDataSource)();
@@ -112,11 +113,15 @@ const WaterfallFlowItem = (props) => {
112
113
  react_1.default.createElement("canvas", { ref: canvasRef }))),
113
114
  react_1.default.createElement(FormatImage_1.default, { loading: 'lazy', className: 'list-content-listItem-picture-img', ref: imgDom })),
114
115
  react_1.default.createElement("div", { className: 'list-content-listItem-info' },
115
- react_1.default.createElement("div", { className: `${'list-content-listItem-info-title'} ${priceText ? 'list-content-listItem-info-nowrap' : ''}`, style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.title }, title && title),
116
- react_1.default.createElement("div", { className: 'list-content-listItem-info-price', style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.price, hidden: !priceText }, priceText))));
116
+ react_1.default.createElement("div", { className: `${'list-content-listItem-info-title'} ${priceText ? 'list-content-listItem-info-nowrap' : ''}`, style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.title, dangerouslySetInnerHTML: {
117
+ __html: (0, tool_1.setFontForText)(title, textStyles === null || textStyles === void 0 ? void 0 : textStyles.title)
118
+ } }),
119
+ react_1.default.createElement("div", { className: 'list-content-listItem-info-price', style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.price, hidden: !priceText, dangerouslySetInnerHTML: {
120
+ __html: (0, tool_1.setFontForText)(priceText, textStyles === null || textStyles === void 0 ? void 0 : textStyles.price)
121
+ } }))));
117
122
  };
118
123
  function WaterfallList(_a) {
119
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
124
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
120
125
  var { reportTagsView, showBanner } = _a, props = tslib_1.__rest(_a, ["reportTagsView", "showBanner"]);
121
126
  const { waterFallData, getRecommendVideos, hashTagSize, loadingImage, isOpenHashTag } = (0, hooks_1.useSxpDataSource)();
122
127
  const [list, setList] = (0, react_1.useState)();
@@ -178,17 +183,23 @@ function WaterfallList(_a) {
178
183
  objectFit: 'cover',
179
184
  marginBottom: '20px'
180
185
  }), src: (_c = data === null || data === void 0 ? void 0 : data.tag) === null || _c === void 0 ? void 0 : _c.picture }))),
181
- react_1.default.createElement("div", { className: 'list-info', style: (_d = props === null || props === void 0 ? void 0 : props.textStyles) === null || _d === void 0 ? void 0 : _d.hashTagDesc }, (_e = data === null || data === void 0 ? void 0 : data.tag) === null || _e === void 0 ? void 0 : _e.info),
182
- react_1.default.createElement("div", { hidden: !((_f = data === null || data === void 0 ? void 0 : data.tag) === null || _f === void 0 ? void 0 : _f.link), className: 'list-collection', onClick: handleClickLink, style: Object.assign(Object.assign({}, (_g = props === null || props === void 0 ? void 0 : props.textStyles) === null || _g === void 0 ? void 0 : _g.hashTagLink), { marginBottom: props === null || props === void 0 ? void 0 : props.space }) }, ((_h = data === null || data === void 0 ? void 0 : data.tag) === null || _h === void 0 ? void 0 : _h.linkTitle) || 'Shop the collection'),
186
+ react_1.default.createElement("div", { className: 'list-info', style: (_d = props === null || props === void 0 ? void 0 : props.textStyles) === null || _d === void 0 ? void 0 : _d.hashTagDesc, dangerouslySetInnerHTML: {
187
+ __html: (0, tool_1.setFontForText)((_e = data === null || data === void 0 ? void 0 : data.tag) === null || _e === void 0 ? void 0 : _e.info, (_f = props === null || props === void 0 ? void 0 : props.textStyles) === null || _f === void 0 ? void 0 : _f.hashTagDesc)
188
+ } }),
189
+ react_1.default.createElement("div", { hidden: !((_g = data === null || data === void 0 ? void 0 : data.tag) === null || _g === void 0 ? void 0 : _g.link), className: 'list-collection', onClick: handleClickLink, style: Object.assign(Object.assign({}, (_h = props === null || props === void 0 ? void 0 : props.textStyles) === null || _h === void 0 ? void 0 : _h.hashTagLink), { marginBottom: props === null || props === void 0 ? void 0 : props.space }), dangerouslySetInnerHTML: {
190
+ __html: (0, tool_1.setFontForText)(((_j = data === null || data === void 0 ? void 0 : data.tag) === null || _j === void 0 ? void 0 : _j.linkTitle) || 'Shop the collection', (_k = props === null || props === void 0 ? void 0 : props.textStyles) === null || _k === void 0 ? void 0 : _k.hashTagLink)
191
+ } }),
183
192
  react_1.default.createElement("div", { className: 'list-content' }, list === null || list === void 0 ? void 0 : list.map((item, ind) => {
184
193
  return (react_1.default.createElement(WaterfallFlowItem, Object.assign({ key: ind, index: ind, rec: item, list: list, reportTagsView: reportTagsView }, props)));
185
194
  })),
186
195
  react_1.default.createElement("div", { hidden: !isLoadMore, style: { textAlign: 'center' } }, "loading..."),
187
- react_1.default.createElement("div", { hidden: !((_j = data === null || data === void 0 ? void 0 : data.tag) === null || _j === void 0 ? void 0 : _j.link), style: {
188
- height: ((_k = data === null || data === void 0 ? void 0 : data.tag) === null || _k === void 0 ? void 0 : _k.link) ? ((_l = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _l === void 0 ? void 0 : _l.height) || ((_m = props === null || props === void 0 ? void 0 : props.buttonStyle) === null || _m === void 0 ? void 0 : _m.height) || '100px' : 0
196
+ react_1.default.createElement("div", { hidden: !((_l = data === null || data === void 0 ? void 0 : data.tag) === null || _l === void 0 ? void 0 : _l.link), style: {
197
+ height: ((_m = data === null || data === void 0 ? void 0 : data.tag) === null || _m === void 0 ? void 0 : _m.link) ? ((_o = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _o === void 0 ? void 0 : _o.height) || ((_p = props === null || props === void 0 ? void 0 : props.buttonStyle) === null || _p === void 0 ? void 0 : _p.height) || '100px' : 0
189
198
  } })),
190
- react_1.default.createElement("div", { className: 'list-bottom', hidden: !((_o = data === null || data === void 0 ? void 0 : data.tag) === null || _o === void 0 ? void 0 : _o.link), style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
191
- react_1.default.createElement("div", { hidden: !((_p = data === null || data === void 0 ? void 0 : data.tag) === null || _p === void 0 ? void 0 : _p.link), className: 'list-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
192
- react_1.default.createElement("button", { "aria-label": ((_q = data === null || data === void 0 ? void 0 : data.tag) === null || _q === void 0 ? void 0 : _q.linkTitle) || 'Shop the collection', className: 'list-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink }, ((_r = data === null || data === void 0 ? void 0 : data.tag) === null || _r === void 0 ? void 0 : _r.linkTitle) || 'Shop the collection'))))));
199
+ react_1.default.createElement("div", { className: 'list-bottom', hidden: !((_q = data === null || data === void 0 ? void 0 : data.tag) === null || _q === void 0 ? void 0 : _q.link), style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
200
+ react_1.default.createElement("div", { hidden: !((_r = data === null || data === void 0 ? void 0 : data.tag) === null || _r === void 0 ? void 0 : _r.link), className: 'list-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
201
+ react_1.default.createElement("button", { "aria-label": ((_s = data === null || data === void 0 ? void 0 : data.tag) === null || _s === void 0 ? void 0 : _s.linkTitle) || 'Shop the collection', className: 'list-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink, dangerouslySetInnerHTML: {
202
+ __html: (0, tool_1.setFontForText)(((_t = data === null || data === void 0 ? void 0 : data.tag) === null || _t === void 0 ? void 0 : _t.linkTitle) || 'Shop the collection', props === null || props === void 0 ? void 0 : props.buttonStyle)
203
+ } }))))));
193
204
  }
194
205
  exports.default = WaterfallList;
@@ -7,6 +7,7 @@ require("./WaterfallList.less");
7
7
  const preview_json_1 = tslib_1.__importDefault(require("./preview.json"));
8
8
  const FormatImage_1 = tslib_1.__importDefault(require("../FormatImage"));
9
9
  const css_1 = require("@emotion/css");
10
+ const tool_1 = require("../../../../core/utils/tool");
10
11
  const WaterfallFlowItem = (props) => {
11
12
  const { rec, style = {}, sizeChange = () => { }, unitWidth, index, showBorder, list, reportTagsView, textStyles, space } = props;
12
13
  const { swiperRef, setRtcList, setOpenHashtag, sxpParameter } = (0, hooks_1.useSxpDataSource)();
@@ -104,11 +105,15 @@ const WaterfallFlowItem = (props) => {
104
105
  react_1.default.createElement("div", { className: 'waterFallList-content-listItem-picture', ref: pictRef },
105
106
  react_1.default.createElement(FormatImage_1.default, { loading: 'lazy', className: 'waterFallList-content-listItem-picture-img', onLoad: imgLoad, ref: imgDom })),
106
107
  react_1.default.createElement("div", { className: 'waterFallList-content-listItem-info' },
107
- react_1.default.createElement("div", { className: `${'waterFallList-content-listItem-info-title'} ${priceText ? 'waterFallList-content-listItem-info-nowrap' : ''}`, style: Object.assign({}, textStyles === null || textStyles === void 0 ? void 0 : textStyles.title) }, title && title),
108
- react_1.default.createElement("div", { className: 'waterFallList-content-listItem-info-price', hidden: !priceText, style: textStyles.price }, priceText))));
108
+ react_1.default.createElement("div", { className: `${'waterFallList-content-listItem-info-title'} ${priceText ? 'waterFallList-content-listItem-info-nowrap' : ''}`, style: Object.assign({}, textStyles === null || textStyles === void 0 ? void 0 : textStyles.title), dangerouslySetInnerHTML: {
109
+ __html: (0, tool_1.setFontForText)(title, textStyles === null || textStyles === void 0 ? void 0 : textStyles.title)
110
+ } }),
111
+ react_1.default.createElement("div", { className: 'waterFallList-content-listItem-info-price', hidden: !priceText, style: textStyles.price, dangerouslySetInnerHTML: {
112
+ __html: (0, tool_1.setFontForText)(priceText, textStyles === null || textStyles === void 0 ? void 0 : textStyles.price)
113
+ } }))));
109
114
  };
110
115
  function WaterfallList(_a) {
111
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
116
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
112
117
  var { reportTagsView, showBanner } = _a, props = tslib_1.__rest(_a, ["reportTagsView", "showBanner"]);
113
118
  const { waterFallData, getRecommendVideos, hashTagSize, loadingImage, isOpenHashTag } = (0, hooks_1.useSxpDataSource)();
114
119
  const scrollParent = (0, react_1.useRef)(null);
@@ -286,24 +291,30 @@ function WaterfallList(_a) {
286
291
  objectFit: 'cover',
287
292
  marginBottom: '20px'
288
293
  }), src: (_c = data === null || data === void 0 ? void 0 : data.tag) === null || _c === void 0 ? void 0 : _c.picture }))),
289
- react_1.default.createElement("div", { className: 'waterFallList-info', style: (_d = props === null || props === void 0 ? void 0 : props.textStyles) === null || _d === void 0 ? void 0 : _d.hashTagDesc }, (_e = data === null || data === void 0 ? void 0 : data.tag) === null || _e === void 0 ? void 0 : _e.info),
290
- react_1.default.createElement("div", { hidden: !((_f = data === null || data === void 0 ? void 0 : data.tag) === null || _f === void 0 ? void 0 : _f.link), className: 'waterFallList-collection', style: Object.assign({}, (_g = props === null || props === void 0 ? void 0 : props.textStyles) === null || _g === void 0 ? void 0 : _g.hashTagLink), onClick: handleClickLink }, ((_h = data === null || data === void 0 ? void 0 : data.tag) === null || _h === void 0 ? void 0 : _h.linkTitle) || 'Shop the collection'),
294
+ react_1.default.createElement("div", { className: 'waterFallList-info', style: (_d = props === null || props === void 0 ? void 0 : props.textStyles) === null || _d === void 0 ? void 0 : _d.hashTagDesc, dangerouslySetInnerHTML: {
295
+ __html: (0, tool_1.setFontForText)((_e = data === null || data === void 0 ? void 0 : data.tag) === null || _e === void 0 ? void 0 : _e.info, (_f = props === null || props === void 0 ? void 0 : props.textStyles) === null || _f === void 0 ? void 0 : _f.hashTagDesc)
296
+ } }),
297
+ react_1.default.createElement("div", { hidden: !((_g = data === null || data === void 0 ? void 0 : data.tag) === null || _g === void 0 ? void 0 : _g.link), className: 'waterFallList-collection', style: Object.assign({}, (_h = props === null || props === void 0 ? void 0 : props.textStyles) === null || _h === void 0 ? void 0 : _h.hashTagLink), onClick: handleClickLink, dangerouslySetInnerHTML: {
298
+ __html: (0, tool_1.setFontForText)(((_j = data === null || data === void 0 ? void 0 : data.tag) === null || _j === void 0 ? void 0 : _j.linkTitle) || 'Shop the collection', (_k = props === null || props === void 0 ? void 0 : props.textStyles) === null || _k === void 0 ? void 0 : _k.hashTagLink)
299
+ } }),
291
300
  react_1.default.createElement("div", { className: 'waterFallList-content' }, list === null || list === void 0 ? void 0 :
292
301
  list.map((item, ind) => {
293
302
  var _a;
294
303
  return (react_1.default.createElement(WaterfallFlowItem, Object.assign({ key: ind, index: ind, rec: item, list: list, showBorder: scrollTop + ((_a = scrollParent === null || scrollParent === void 0 ? void 0 : scrollParent.current) === null || _a === void 0 ? void 0 : _a.clientHeight), style: styleList[ind], sizeChange: onSizeChange, unitWidth: unitWidth, reportTagsView: reportTagsView }, props)));
295
304
  }),
296
- react_1.default.createElement("div", { hidden: !((_j = data === null || data === void 0 ? void 0 : data.tag) === null || _j === void 0 ? void 0 : _j.link), style: {
305
+ react_1.default.createElement("div", { hidden: !((_l = data === null || data === void 0 ? void 0 : data.tag) === null || _l === void 0 ? void 0 : _l.link), style: {
297
306
  position: 'absolute',
298
307
  width: '100%',
299
- transform: `translate(0px,${(_p = ((_l = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current[((_k = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current) === null || _k === void 0 ? void 0 : _k.length) - 1]) === null || _l === void 0 ? void 0 : _l.top) +
300
- ((_o = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current[((_m = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current) === null || _m === void 0 ? void 0 : _m.length) - 1]) === null || _o === void 0 ? void 0 : _o.height)) !== null && _p !== void 0 ? _p : 0}px)`,
301
- height: ((_q = data === null || data === void 0 ? void 0 : data.tag) === null || _q === void 0 ? void 0 : _q.link)
302
- ? ((_r = buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) === null || _r === void 0 ? void 0 : _r.offsetHeight) || ((_s = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _s === void 0 ? void 0 : _s.height) || '100px'
308
+ transform: `translate(0px,${(_r = ((_o = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current[((_m = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current) === null || _m === void 0 ? void 0 : _m.length) - 1]) === null || _o === void 0 ? void 0 : _o.top) +
309
+ ((_q = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current[((_p = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current) === null || _p === void 0 ? void 0 : _p.length) - 1]) === null || _q === void 0 ? void 0 : _q.height)) !== null && _r !== void 0 ? _r : 0}px)`,
310
+ height: ((_s = data === null || data === void 0 ? void 0 : data.tag) === null || _s === void 0 ? void 0 : _s.link)
311
+ ? ((_t = buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) === null || _t === void 0 ? void 0 : _t.offsetHeight) || ((_u = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _u === void 0 ? void 0 : _u.height) || '100px'
303
312
  : 0
304
313
  } }))),
305
- react_1.default.createElement("div", { className: 'waterFallList-bottom', hidden: !((_t = data === null || data === void 0 ? void 0 : data.tag) === null || _t === void 0 ? void 0 : _t.link), style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
306
- react_1.default.createElement("div", { ref: buttonRef, hidden: !((_u = data === null || data === void 0 ? void 0 : data.tag) === null || _u === void 0 ? void 0 : _u.link), className: 'waterFallList-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
307
- react_1.default.createElement("button", { "aria-label": ((_v = data === null || data === void 0 ? void 0 : data.tag) === null || _v === void 0 ? void 0 : _v.linkTitle) || 'Shop the collection', className: 'waterFallList-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink }, ((_w = data === null || data === void 0 ? void 0 : data.tag) === null || _w === void 0 ? void 0 : _w.linkTitle) || 'Shop the collection'))))));
314
+ react_1.default.createElement("div", { className: 'waterFallList-bottom', hidden: !((_v = data === null || data === void 0 ? void 0 : data.tag) === null || _v === void 0 ? void 0 : _v.link), style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
315
+ react_1.default.createElement("div", { ref: buttonRef, hidden: !((_w = data === null || data === void 0 ? void 0 : data.tag) === null || _w === void 0 ? void 0 : _w.link), className: 'waterFallList-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
316
+ react_1.default.createElement("button", { "aria-label": ((_x = data === null || data === void 0 ? void 0 : data.tag) === null || _x === void 0 ? void 0 : _x.linkTitle) || 'Shop the collection', className: 'waterFallList-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink, dangerouslySetInnerHTML: {
317
+ __html: (0, tool_1.setFontForText)(((_y = data === null || data === void 0 ? void 0 : data.tag) === null || _y === void 0 ? void 0 : _y.linkTitle) || 'Shop the collection', props === null || props === void 0 ? void 0 : props.buttonStyle)
318
+ } }))))));
308
319
  }
309
320
  exports.default = WaterfallList;
@@ -35,6 +35,7 @@ export interface ISxpPageRenderProps {
35
35
  likeIconXPosit?: string;
36
36
  swipeTipOffset?: number;
37
37
  consent?: any[];
38
+ videoPlayIcon?: string;
38
39
  };
39
40
  descStyle?: CSSProperties;
40
41
  tipText?: {
@@ -188,7 +188,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
188
188
  const renderContent = (0, react_1.useCallback)((rec, index) => {
189
189
  var _a, _b, _c, _d;
190
190
  if ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.url) {
191
- return (react_1.default.createElement(VideoWidget_1.default, { rec: rec, index: index, muted: isMuted, data: data, height: height, activeIndex: activeIndex, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost, videoRef: videoRef.current }));
191
+ return (react_1.default.createElement(VideoWidget_1.default, { rec: rec, index: index, muted: isMuted, data: data, height: height, activeIndex: activeIndex, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost, videoRef: videoRef.current, videoPlayIcon: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPlayIcon }));
192
192
  }
193
193
  if ((_b = rec === null || rec === void 0 ? void 0 : rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
194
194
  return (react_1.default.createElement(PictureGroup_1.default, { key: rec === null || rec === void 0 ? void 0 : rec.video.itemId, imgUrls: rec === null || rec === void 0 ? void 0 : rec.video.imgUrls, width: containerWidth, height: height, rec: rec, index: index, onReportViewImageEnd: handleReportViewImageEnd, onViewImageStartEvent: handleViewImageStartEvent, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost }));
@@ -210,6 +210,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
210
210
  isMuted,
211
211
  activeIndex,
212
212
  globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost,
213
+ globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPlayIcon,
213
214
  viewTime,
214
215
  tipText,
215
216
  resolver,
@@ -20,6 +20,7 @@ interface IEditorDataContext {
20
20
  setOpenHashtag?: React.Dispatch<React.SetStateAction<boolean>>;
21
21
  openConsent?: boolean;
22
22
  setOpenConsent?: React.Dispatch<React.SetStateAction<boolean>>;
23
+ sxpFontLinks?: any[];
23
24
  }
24
25
  interface IEditorProviderProps {
25
26
  data?: any;
@@ -28,7 +28,8 @@ const EditorDataProvider = ({ children, data }) => {
28
28
  openHashtag,
29
29
  setOpenHashtag,
30
30
  openConsent,
31
- setOpenConsent
31
+ setOpenConsent,
32
+ sxpFontLinks: data === null || data === void 0 ? void 0 : data.sxpFontLinks
32
33
  } }, children));
33
34
  };
34
35
  function useEditorDataProvider() {