pb-sxp-ui 1.7.1 → 1.7.3

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 (73) hide show
  1. package/dist/index.cjs +222 -102
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +222 -102
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.min.cjs +3 -3
  6. package/dist/index.min.cjs.map +1 -1
  7. package/dist/index.min.js +3 -3
  8. package/dist/index.min.js.map +1 -1
  9. package/dist/pb-ui.js +222 -102
  10. package/dist/pb-ui.js.map +1 -1
  11. package/dist/pb-ui.min.js +3 -3
  12. package/dist/pb-ui.min.js.map +1 -1
  13. package/es/core/components/SxpPageRender/Modal/index.js +6 -3
  14. package/es/core/components/SxpPageRender/PictureGroup/Picture.d.ts +1 -1
  15. package/es/core/components/SxpPageRender/PictureGroup/index.d.ts +4 -1
  16. package/es/core/components/SxpPageRender/PictureGroup/index.js +24 -4
  17. package/es/core/components/SxpPageRender/RenderCard.js +6 -1
  18. package/es/core/components/SxpPageRender/VideoWidget/index.js +22 -12
  19. package/es/core/components/SxpPageRender/WaterFall/List.js +3 -2
  20. package/es/core/components/SxpPageRender/WaterFall/WaterfallList.js +3 -2
  21. package/es/core/components/SxpPageRender/WaterFall/index.js +5 -2
  22. package/es/core/components/SxpPageRender/index.d.ts +2 -0
  23. package/es/core/components/SxpPageRender/index.js +20 -25
  24. package/es/core/context/SxpDataSourceProvider.d.ts +2 -4
  25. package/es/core/context/SxpDataSourceProvider.js +53 -11
  26. package/es/core/utils/materials.d.ts +7 -1
  27. package/es/core/utils/materials.js +5 -2
  28. package/es/core/utils/tool.d.ts +2 -1
  29. package/es/core/utils/tool.js +11 -1
  30. package/es/materials/sxp/cta/AniLink/settingRender.d.ts +11 -0
  31. package/es/materials/sxp/cta/AniLink/settingRender.js +6 -0
  32. package/es/materials/sxp/cta/AniLinkPopup/settingRender.d.ts +1 -1
  33. package/es/materials/sxp/cta/AniLinkPopup/settingRender.js +6 -0
  34. package/es/materials/sxp/popup/CommodityDetail/index.d.ts +1 -0
  35. package/es/materials/sxp/popup/CommodityDetail/index.js +15 -9
  36. package/es/materials/sxp/popup/CommodityDetailDiro/index.d.ts +1 -0
  37. package/es/materials/sxp/popup/CommodityDetailDiro/index.js +15 -8
  38. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +1 -0
  39. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +18 -10
  40. package/es/materials/sxp/popup/CommodityList/index.js +12 -6
  41. package/es/materials/sxp/template/components/settingRender.d.ts +1 -1
  42. package/es/materials/sxp/template/components/settingRender.js +6 -0
  43. package/lib/core/components/SxpPageRender/Modal/index.js +5 -2
  44. package/lib/core/components/SxpPageRender/PictureGroup/Picture.d.ts +1 -1
  45. package/lib/core/components/SxpPageRender/PictureGroup/index.d.ts +4 -1
  46. package/lib/core/components/SxpPageRender/PictureGroup/index.js +23 -4
  47. package/lib/core/components/SxpPageRender/RenderCard.js +6 -1
  48. package/lib/core/components/SxpPageRender/VideoWidget/index.js +21 -12
  49. package/lib/core/components/SxpPageRender/WaterFall/List.js +3 -2
  50. package/lib/core/components/SxpPageRender/WaterFall/WaterfallList.js +3 -2
  51. package/lib/core/components/SxpPageRender/WaterFall/index.js +5 -2
  52. package/lib/core/components/SxpPageRender/index.d.ts +2 -0
  53. package/lib/core/components/SxpPageRender/index.js +20 -25
  54. package/lib/core/context/SxpDataSourceProvider.d.ts +2 -4
  55. package/lib/core/context/SxpDataSourceProvider.js +53 -11
  56. package/lib/core/utils/materials.d.ts +7 -1
  57. package/lib/core/utils/materials.js +5 -2
  58. package/lib/core/utils/tool.d.ts +2 -1
  59. package/lib/core/utils/tool.js +12 -1
  60. package/lib/materials/sxp/cta/AniLink/settingRender.d.ts +11 -0
  61. package/lib/materials/sxp/cta/AniLink/settingRender.js +6 -0
  62. package/lib/materials/sxp/cta/AniLinkPopup/settingRender.d.ts +1 -1
  63. package/lib/materials/sxp/cta/AniLinkPopup/settingRender.js +6 -0
  64. package/lib/materials/sxp/popup/CommodityDetail/index.d.ts +1 -0
  65. package/lib/materials/sxp/popup/CommodityDetail/index.js +15 -9
  66. package/lib/materials/sxp/popup/CommodityDetailDiro/index.d.ts +1 -0
  67. package/lib/materials/sxp/popup/CommodityDetailDiro/index.js +15 -8
  68. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +1 -0
  69. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +18 -10
  70. package/lib/materials/sxp/popup/CommodityList/index.js +11 -5
  71. package/lib/materials/sxp/template/components/settingRender.d.ts +1 -1
  72. package/lib/materials/sxp/template/components/settingRender.js +6 -0
  73. package/package.json +1 -1
@@ -9,6 +9,7 @@ declare const _default: ({
9
9
  addonAfter: string;
10
10
  }[];
11
11
  name?: undefined;
12
+ addonAfter?: undefined;
12
13
  direction?: undefined;
13
14
  } | {
14
15
  type: string;
@@ -25,12 +26,21 @@ declare const _default: ({
25
26
  max: number;
26
27
  })[];
27
28
  name?: undefined;
29
+ addonAfter?: undefined;
28
30
  direction?: undefined;
29
31
  } | {
30
32
  type: string;
31
33
  label: string;
32
34
  name: string[];
33
35
  child?: undefined;
36
+ addonAfter?: undefined;
37
+ direction?: undefined;
38
+ } | {
39
+ type: string;
40
+ label: string;
41
+ name: string[];
42
+ addonAfter: string;
43
+ child?: undefined;
34
44
  direction?: undefined;
35
45
  } | {
36
46
  type: string;
@@ -38,6 +48,7 @@ declare const _default: ({
38
48
  label: string;
39
49
  direction: string;
40
50
  child?: undefined;
51
+ addonAfter?: undefined;
41
52
  })[];
42
53
  } | {
43
54
  title: string;
@@ -40,6 +40,12 @@ export default [
40
40
  label: '背景色',
41
41
  name: ['style', 'backgroundColor']
42
42
  },
43
+ {
44
+ type: 'Number',
45
+ label: '背景色毛玻璃',
46
+ name: ['style', 'backdropFilter'],
47
+ addonAfter: 'px'
48
+ },
43
49
  {
44
50
  type: 'TextMargin',
45
51
  name: ['style'],
@@ -33,8 +33,8 @@ declare const _default: ({
33
33
  child?: undefined;
34
34
  addonAfter?: undefined;
35
35
  } | {
36
- label: string;
37
36
  type: string;
37
+ label: string;
38
38
  name: string[];
39
39
  addonAfter: string;
40
40
  child?: undefined;
@@ -40,6 +40,12 @@ export default [
40
40
  label: '背景色',
41
41
  name: ['style', 'backgroundColor']
42
42
  },
43
+ {
44
+ type: 'Number',
45
+ label: '背景色毛玻璃',
46
+ name: ['style', 'backdropFilter'],
47
+ addonAfter: 'px'
48
+ },
43
49
  {
44
50
  label: '外边距',
45
51
  type: 'Number',
@@ -52,6 +52,7 @@ export interface ICommodityDetailProps {
52
52
  };
53
53
  isTel?: boolean;
54
54
  iframeBgColor?: string;
55
+ isActive?: boolean;
55
56
  }
56
57
  declare const _default: React.NamedExoticComponent<ICommodityDetailProps>;
57
58
  export default _default;
@@ -14,7 +14,7 @@ import CommodityGroup from '../../template/components/CommodityGroup';
14
14
  import { getPriceText } from '../../../../core/utils/materials';
15
15
  const CommodityDetail = (_a) => {
16
16
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
17
- var { content, style, bgImg, onClick, schema, isDefault, bottom_image, tipText, isPost, viewTime, rec, swiper, commodityStyles, buttonStyle, index, commodityGroup, popupBg, iframeIcon, commodityImgRatio, isTel, iframeBgColor } = _a, props = __rest(_a, ["content", "style", "bgImg", "onClick", "schema", "isDefault", "bottom_image", "tipText", "isPost", "viewTime", "rec", "swiper", "commodityStyles", "buttonStyle", "index", "commodityGroup", "popupBg", "iframeIcon", "commodityImgRatio", "isTel", "iframeBgColor"]);
17
+ var { content, style, bgImg, onClick, schema, isDefault, bottom_image, tipText, isPost, viewTime, rec, swiper, commodityStyles, buttonStyle, index, commodityGroup, popupBg, iframeIcon, commodityImgRatio, isTel, iframeBgColor, isActive = true } = _a, props = __rest(_a, ["content", "style", "bgImg", "onClick", "schema", "isDefault", "bottom_image", "tipText", "isPost", "viewTime", "rec", "swiper", "commodityStyles", "buttonStyle", "index", "commodityGroup", "popupBg", "iframeIcon", "commodityImgRatio", "isTel", "iframeBgColor", "isActive"]);
18
18
  const { sxpParameter, popupDetailData, isPreview, bffFbReport, popupCurTimeRef, checkCommodityIndexRef, globalConfig } = useSxpDataSource();
19
19
  const { jumpToWeb, productView } = useEventReport();
20
20
  const curTimeRef = useRef(null);
@@ -44,12 +44,17 @@ const CommodityDetail = (_a) => {
44
44
  }
45
45
  };
46
46
  useEffect(() => {
47
- if (!isPost) {
48
- bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
49
- eventName: 'ProductView'
50
- });
51
- }
52
- }, [isPost, bffFbReport]);
47
+ if (!isActive)
48
+ return;
49
+ bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
50
+ eventName: 'ProductView',
51
+ product
52
+ });
53
+ bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
54
+ eventName: 'PageView',
55
+ product
56
+ });
57
+ }, [isActive, bffFbReport]);
53
58
  useEffect(() => {
54
59
  const initTime = () => {
55
60
  curTimeRef.current = new Date();
@@ -63,7 +68,8 @@ const CommodityDetail = (_a) => {
63
68
  const priceText = getPriceText({
64
69
  product: product,
65
70
  enableFormattedPrice: (_t = commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price) === null || _t === void 0 ? void 0 : _t.enableFormattedPrice,
66
- globalConfig
71
+ globalConfig,
72
+ style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price
67
73
  });
68
74
  const width = (isPreview ? 375 : (_u = style === null || style === void 0 ? void 0 : style.width) !== null && _u !== void 0 ? _u : window.innerWidth) - ((_v = popupBg === null || popupBg === void 0 ? void 0 : popupBg.horizontalMargin) !== null && _v !== void 0 ? _v : 0) * 2;
69
75
  const height = commodityImgRatio ? width * (commodityImgRatio.h / commodityImgRatio.w) : width;
@@ -77,7 +83,7 @@ const CommodityDetail = (_a) => {
77
83
  __html: setFontForText((_b = product === null || product === void 0 ? void 0 : product.title) !== null && _b !== void 0 ? _b : 'Pendant in Yellow Gold with Diamonds, Medium', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title)
78
84
  } }),
79
85
  React.createElement("div", { className: 'pb-commondity-content-price', style: getStyle(commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price), hidden: !!product && !(product === null || product === void 0 ? void 0 : product.price), dangerouslySetInnerHTML: {
80
- __html: setFontForText(priceText, commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price)
86
+ __html: priceText !== null && priceText !== void 0 ? priceText : ''
81
87
  } }),
82
88
  React.createElement("div", { hidden: !!product && !(product === null || product === void 0 ? void 0 : product.taxInfo), style: getStyle(commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo), dangerouslySetInnerHTML: {
83
89
  __html: setFontForText((_c = product === null || product === void 0 ? void 0 : product.taxInfo) !== null && _c !== void 0 ? _c : '税费', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo)
@@ -14,6 +14,7 @@ export interface ICommodityDetailDiroProps {
14
14
  isPost?: boolean;
15
15
  bottom_image?: string;
16
16
  index?: number;
17
+ isActive?: boolean;
17
18
  }
18
19
  declare const _default: React.NamedExoticComponent<ICommodityDetailDiroProps>;
19
20
  export default _default;
@@ -10,7 +10,7 @@ import { useEventReport } from '../../../../core/hooks/useEventReport';
10
10
  import FormatImage from '../../../../core/components/SxpPageRender/FormatImage';
11
11
  const CommodityDetailDiro = (_a) => {
12
12
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
13
- var { style, isDefault, rec, viewTime, isPost, bottom_image, index } = _a, props = __rest(_a, ["style", "isDefault", "rec", "viewTime", "isPost", "bottom_image", "index"]);
13
+ var { style, isDefault, rec, viewTime, isPost, bottom_image, index, isActive = true } = _a, props = __rest(_a, ["style", "isDefault", "rec", "viewTime", "isPost", "bottom_image", "index", "isActive"]);
14
14
  const [spread, setSpread] = useState(true);
15
15
  const { sxpParameter } = useSxpDataSource();
16
16
  const { popupDetailData, bffEventReport, isPreview, swiperRef, bffFbReport } = useSxpDataSource();
@@ -36,14 +36,21 @@ const CommodityDetailDiro = (_a) => {
36
36
  }
37
37
  };
38
38
  useEffect(() => {
39
- if (!isPost) {
40
- bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
41
- eventName: 'ProductView'
42
- });
43
- }
44
- }, [isPost, bffFbReport]);
39
+ if (!isActive)
40
+ return;
41
+ bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
42
+ eventName: 'ProductView',
43
+ product
44
+ });
45
+ bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
46
+ eventName: 'PageView',
47
+ product
48
+ });
49
+ }, [isActive, bffFbReport]);
45
50
  useEffect(() => {
46
51
  const initTime = () => {
52
+ if (!isActive)
53
+ return;
47
54
  curTimeRef.current = new Date();
48
55
  };
49
56
  initTime();
@@ -51,7 +58,7 @@ const CommodityDetailDiro = (_a) => {
51
58
  return () => {
52
59
  window.removeEventListener('pageshow', initTime);
53
60
  };
54
- }, []);
61
+ }, [isActive]);
55
62
  const priceText = useMemo(() => {
56
63
  var _a, _b, _c, _d, _e;
57
64
  if ((product === null || product === void 0 ? void 0 : product.currency) && (product === null || product === void 0 ? void 0 : product.price)) {
@@ -52,6 +52,7 @@ export interface ICommodityDetailDiroNewProps {
52
52
  };
53
53
  isTel?: boolean;
54
54
  iframeBgColor?: string;
55
+ isActive?: boolean;
55
56
  }
56
57
  declare const _default: React.NamedExoticComponent<ICommodityDetailDiroNewProps>;
57
58
  export default _default;
@@ -14,7 +14,7 @@ import CommodityGroup from '../../template/components/CommodityGroup';
14
14
  import { getPriceText } from '../../../../core/utils/materials';
15
15
  const CommodityDetailDiroNew = (_a) => {
16
16
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
17
- var { style, isDefault, rec, viewTime, isPost, bottom_image, tipText, swiper, commodityStyles, buttonStyle, index, commodityGroup, popupBg, iframeIcon, commodityImgRatio, isTel, iframeBgColor } = _a, props = __rest(_a, ["style", "isDefault", "rec", "viewTime", "isPost", "bottom_image", "tipText", "swiper", "commodityStyles", "buttonStyle", "index", "commodityGroup", "popupBg", "iframeIcon", "commodityImgRatio", "isTel", "iframeBgColor"]);
17
+ var { style, isDefault, rec, viewTime, isPost, bottom_image, tipText, swiper, commodityStyles, buttonStyle, index, commodityGroup, popupBg, iframeIcon, commodityImgRatio, isTel, iframeBgColor, isActive = true } = _a, props = __rest(_a, ["style", "isDefault", "rec", "viewTime", "isPost", "bottom_image", "tipText", "swiper", "commodityStyles", "buttonStyle", "index", "commodityGroup", "popupBg", "iframeIcon", "commodityImgRatio", "isTel", "iframeBgColor", "isActive"]);
18
18
  const [spread, setSpread] = useState(true);
19
19
  const { sxpParameter, popupCurTimeRef, popupDetailData, isPreview, bffFbReport, checkCommodityIndexRef, globalConfig } = useSxpDataSource();
20
20
  const { jumpToWeb, productView } = useEventReport();
@@ -48,14 +48,21 @@ const CommodityDetailDiroNew = (_a) => {
48
48
  }
49
49
  };
50
50
  useEffect(() => {
51
- if (!isPost) {
52
- bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
53
- eventName: 'ProductView'
54
- });
55
- }
56
- }, [isPost, bffFbReport]);
51
+ if (!isActive)
52
+ return;
53
+ bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
54
+ eventName: 'ProductView',
55
+ product
56
+ });
57
+ bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
58
+ eventName: 'PageView',
59
+ product
60
+ });
61
+ }, [isActive, bffFbReport]);
57
62
  useEffect(() => {
58
63
  const initTime = () => {
64
+ if (!isActive)
65
+ return;
59
66
  curTimeRef.current = new Date();
60
67
  };
61
68
  initTime();
@@ -63,11 +70,12 @@ const CommodityDetailDiroNew = (_a) => {
63
70
  return () => {
64
71
  window.removeEventListener('pageshow', initTime);
65
72
  };
66
- }, []);
73
+ }, [isActive]);
67
74
  const priceText = getPriceText({
68
75
  product,
69
76
  enableFormattedPrice: (_t = commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price) === null || _t === void 0 ? void 0 : _t.enableFormattedPrice,
70
- globalConfig
77
+ globalConfig,
78
+ style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price
71
79
  });
72
80
  const width = (isPreview ? 375 : (_u = style === null || style === void 0 ? void 0 : style.width) !== null && _u !== void 0 ? _u : window.innerWidth) - ((_v = popupBg === null || popupBg === void 0 ? void 0 : popupBg.horizontalMargin) !== null && _v !== void 0 ? _v : 0) * 2;
73
81
  const height = commodityImgRatio ? width * (commodityImgRatio.h / commodityImgRatio.w) : width;
@@ -181,7 +189,7 @@ Made in Italy` })));
181
189
  } })),
182
190
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right' },
183
191
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right-price', hidden: !!product && !(product === null || product === void 0 ? void 0 : product.price), style: getStyle(commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price), dangerouslySetInnerHTML: {
184
- __html: setFontForText(priceText, commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price)
192
+ __html: priceText !== null && priceText !== void 0 ? priceText : ''
185
193
  } }),
186
194
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right-price', hidden: !!product && !(product === null || product === void 0 ? void 0 : product.taxInfo), style: getStyle(commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo), dangerouslySetInnerHTML: {
187
195
  __html: setFontForText((_2 = product === null || product === void 0 ? void 0 : product.taxInfo) !== null && _2 !== void 0 ? _2 : '税费', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo)
@@ -1,6 +1,6 @@
1
1
  import { __rest } from "tslib";
2
2
  import { css } from '@emotion/css';
3
- import React, { memo, useCallback } from 'react';
3
+ import React, { memo, useCallback, useEffect } from 'react';
4
4
  import { useEditor, useSxpDataSource } from '../../../../core/hooks';
5
5
  import './index.less';
6
6
  import { useEventReport } from '../../../../core/hooks/useEventReport';
@@ -11,7 +11,7 @@ import { getPriceText } from '../../../../core/utils/materials';
11
11
  const CommodityList = (_a) => {
12
12
  var _b, _c, _d;
13
13
  var { style, isDefault, rec, viewTime, isPost, bottom_image, commodityStyles, buttonStyle, translateY = 0, commodityPicture, isExternalLink, onClick } = _a, props = __rest(_a, ["style", "isDefault", "rec", "viewTime", "isPost", "bottom_image", "commodityStyles", "buttonStyle", "translateY", "commodityPicture", "isExternalLink", "onClick"]);
14
- const { sxpParameter, popupDetailData, setPopupDetailData, ctaEvent, globalConfig } = useSxpDataSource();
14
+ const { sxpParameter, popupDetailData, setPopupDetailData, ctaEvent, globalConfig, bffFbReport } = useSxpDataSource();
15
15
  const { jumpToWeb } = useEventReport();
16
16
  const { popup } = useEditor();
17
17
  const recData = isPost ? rec : popupDetailData;
@@ -22,7 +22,8 @@ const CommodityList = (_a) => {
22
22
  return getPriceText({
23
23
  product,
24
24
  enableFormattedPrice: (_a = commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price) === null || _a === void 0 ? void 0 : _a.enableFormattedPrice,
25
- globalConfig
25
+ globalConfig,
26
+ style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price
26
27
  });
27
28
  }, [(_d = commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price) === null || _d === void 0 ? void 0 : _d.enableFormattedPrice, globalConfig]);
28
29
  const handleClick = throttle((item, multiCheckIndex) => {
@@ -41,8 +42,13 @@ const CommodityList = (_a) => {
41
42
  onClick === null || onClick === void 0 ? void 0 : onClick();
42
43
  }
43
44
  }, popup === null || popup === void 0 ? void 0 : popup.duration);
45
+ useEffect(() => {
46
+ bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
47
+ eventName: 'PageView'
48
+ });
49
+ }, []);
44
50
  return (React.createElement("div", { className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexDirection: 'column', gap: '10px', padding: '0 20px', marginTop: '50px', boxSizing: 'border-box' })) }, product === null || product === void 0 ? void 0 : product.map((item, index) => {
45
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
51
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
46
52
  return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement("div", Object.assign({ key: index }, props, { className: css({
47
53
  display: 'flex'
48
54
  }), onClick: () => handleClick(item, index) }),
@@ -69,10 +75,10 @@ const CommodityList = (_a) => {
69
75
  }) },
70
76
  React.createElement("div", null,
71
77
  React.createElement("div", { style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price, hidden: !!item && !(item === null || item === void 0 ? void 0 : item.price), dangerouslySetInnerHTML: {
72
- __html: setFontForText(priceText(item), commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price)
78
+ __html: (_j = priceText(item)) !== null && _j !== void 0 ? _j : ''
73
79
  } })),
74
80
  React.createElement("div", { className: 'one-line-ellipsis', style: Object.assign(Object.assign({}, buttonStyle), { padding: '0 15px' }), dangerouslySetInnerHTML: {
75
- __html: setFontForText((_k = (_j = item === null || item === void 0 ? void 0 : item.bindCta) === null || _j === void 0 ? void 0 : _j.enTitle) !== null && _k !== void 0 ? _k : 'Shop Now', buttonStyle)
81
+ __html: setFontForText((_l = (_k = item === null || item === void 0 ? void 0 : item.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now', buttonStyle)
76
82
  } })))))));
77
83
  })));
78
84
  };
@@ -33,8 +33,8 @@ declare const _default: ({
33
33
  child?: undefined;
34
34
  addonAfter?: undefined;
35
35
  } | {
36
- label: string;
37
36
  type: string;
37
+ label: string;
38
38
  name: string[];
39
39
  addonAfter: string;
40
40
  child?: undefined;
@@ -40,6 +40,12 @@ export default [
40
40
  label: '背景色',
41
41
  name: ['style', 'backgroundColor']
42
42
  },
43
+ {
44
+ type: 'Number',
45
+ label: '背景色毛玻璃',
46
+ name: ['style', 'backdropFilter'],
47
+ addonAfter: 'px'
48
+ },
43
49
  {
44
50
  label: '内边距',
45
51
  type: 'Number',
@@ -18,7 +18,7 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
18
18
  const [isShow, setIsShow] = (0, react_1.useState)(false);
19
19
  const modalEleRef = (0, react_1.useRef)(null);
20
20
  const { globalConfig, popupDetailData } = (0, hooks_1.useSxpDataSource)();
21
- const { schema: _schema } = (0, hooks_1.useEditor)();
21
+ const { schema: _schema, popup: _popup } = (0, hooks_1.useEditor)();
22
22
  const [scrollTop, setScrollTop] = (0, react_1.useState)(15);
23
23
  (0, react_1.useEffect)(() => {
24
24
  const parentNode = document.getElementById('sxp-render');
@@ -56,6 +56,9 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
56
56
  }, popup === null || popup === void 0 ? void 0 : popup.duration);
57
57
  }
58
58
  }, [isOpen, popup]);
59
+ const child = (0, react_1.useCallback)(() => {
60
+ return children;
61
+ }, [_popup]);
59
62
  if (!modalEleRef.current)
60
63
  return null;
61
64
  const handleClose = (0, lodash_1.debounce)(() => {
@@ -138,6 +141,6 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
138
141
  var _a;
139
142
  setScrollTop(15 - ((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.scrollTop));
140
143
  }
141
- })), children)))))), modalEleRef.current);
144
+ })), child())))))), modalEleRef.current);
142
145
  };
143
146
  exports.default = (0, react_1.memo)(Modal);
@@ -4,7 +4,7 @@ interface IPictureProps {
4
4
  src: string;
5
5
  height?: number;
6
6
  imgUrlsPostConfig?: postConfigType;
7
- onShowFirstImage?: () => void;
7
+ onShowFirstImage?: (e: any) => void;
8
8
  }
9
9
  declare const Picture: (props: IPictureProps) => React.JSX.Element;
10
10
  export default Picture;
@@ -8,7 +8,10 @@ interface IPictureGroupProps {
8
8
  rec: RecItemType;
9
9
  index: number;
10
10
  onReportViewImageEnd: (rec: RecItemType) => void;
11
- onViewImageStartEvent: (index: number) => void;
11
+ onViewImageStartEvent: (index: number, imgInfo?: {
12
+ contentSize: string;
13
+ loadTime: string;
14
+ }) => void;
12
15
  imgUrlsPostConfig?: postConfigType;
13
16
  }
14
17
  declare const _default: React.NamedExoticComponent<IPictureGroupProps>;
@@ -7,12 +7,16 @@ const react_2 = require("swiper/react");
7
7
  const Picture_1 = tslib_1.__importDefault(require("./Picture"));
8
8
  const hooks_1 = require("../../../../core/hooks");
9
9
  const css_1 = require("@emotion/css");
10
+ const event_1 = tslib_1.__importStar(require("../../../../core/utils/event"));
11
+ const tool_1 = require("../../../../core/utils/tool");
10
12
  const PictureGroup = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
11
13
  var _a, _b;
12
14
  const ref = (0, react_1.useRef)();
13
15
  const { isActive } = (0, react_2.useSwiperSlide)();
14
16
  const { sxpParameter, openHashtag } = (0, hooks_1.useSxpDataSource)();
15
17
  const [isLoad, setIsLoad] = (0, react_1.useState)(false);
18
+ const [imgInfo, setImgInfo] = (0, react_1.useState)();
19
+ const initTime = new Date();
16
20
  (0, react_1.useEffect)(() => {
17
21
  if (isLoad && isActive) {
18
22
  (ref === null || ref === void 0 ? void 0 : ref.current) && ref.current.swiper.autoplay.start();
@@ -20,18 +24,33 @@ const PictureGroup = ({ imgUrls, width, height, rec, index, onReportViewImageEnd
20
24
  onReportViewImageEnd(rec);
21
25
  }
22
26
  else {
23
- onViewImageStartEvent(index);
27
+ onViewImageStartEvent(index, imgInfo);
24
28
  }
25
29
  }
26
30
  else {
27
31
  (ref === null || ref === void 0 ? void 0 : ref.current) && ref.current.swiper.autoplay.stop();
28
32
  }
29
- }, [rec, isActive, onReportViewImageEnd, openHashtag, index, onViewImageStartEvent, isLoad]);
30
- const showFirstImageFn = (0, react_1.useCallback)(() => {
33
+ }, [rec, isActive, onReportViewImageEnd, openHashtag, index, onViewImageStartEvent, isLoad, imgInfo]);
34
+ const showFirstImageFn = (0, react_1.useCallback)((e) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
31
35
  if (!isLoad) {
36
+ const contentSize = yield (0, tool_1.getResFileSizeFromSrc)(e.src);
37
+ setImgInfo({
38
+ contentSize,
39
+ loadTime: (new Date() - initTime).toFixed(2) + ''
40
+ });
32
41
  setIsLoad(true);
33
42
  }
34
- }, [isLoad]);
43
+ }), [isLoad]);
44
+ (0, react_1.useEffect)(() => {
45
+ const onShow = () => onViewImageStartEvent(index, imgInfo);
46
+ const onHide = () => onReportViewImageEnd(rec);
47
+ event_1.default.on(event_1.SXP_EVENT_TYPE.PAGE_DID_SHOW, onShow);
48
+ event_1.default.on(event_1.SXP_EVENT_TYPE.PAGE_DID_HIDE, onHide);
49
+ return () => {
50
+ event_1.default.off(event_1.SXP_EVENT_TYPE.PAGE_DID_SHOW, onShow);
51
+ event_1.default.off(event_1.SXP_EVENT_TYPE.PAGE_DID_HIDE, onHide);
52
+ };
53
+ }, [imgInfo]);
35
54
  return (react_1.default.createElement(react_2.Swiper, { ref: ref, defaultValue: 0, direction: 'horizontal', modules: [modules_1.Pagination, modules_1.Autoplay], pagination: {
36
55
  clickable: true,
37
56
  bulletActiveClass: 'swipe-item-active-bullet',
@@ -52,7 +52,12 @@ const RenderCard = ({ rec, index, tempMap, resolver, includesCtaType, isActive }
52
52
  const Component = (0, withBindDataSource_1.default)(t);
53
53
  const defaulSetting = (_z = t === null || t === void 0 ? void 0 : t.extend) === null || _z === void 0 ? void 0 : _z.defaulSetting;
54
54
  const isExternalLink = ((_2 = (_1 = (_0 = value === null || value === void 0 ? void 0 : value.item) === null || _0 === void 0 ? void 0 : _0.event) === null || _1 === void 0 ? void 0 : _1.onClick) === null || _2 === void 0 ? void 0 : _2.linkType) === 'externalLink';
55
- return (react_1.default.createElement(Component, Object.assign({ style: Object.assign(Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.style), (_3 = value === null || value === void 0 ? void 0 : value.item) === null || _3 === void 0 ? void 0 : _3.style), { zIndex: 50, marginLeft: '20px', boxSizing: 'border-box', transform: 'translate3d(0px, 0px, 0px)' }), textStyle: Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.textStyle), (_4 = value === null || value === void 0 ? void 0 : value.item) === null || _4 === void 0 ? void 0 : _4.textStyle), bindDatas: (_6 = (_5 = value === null || value === void 0 ? void 0 : value.item) === null || _5 === void 0 ? void 0 : _5.bindDatas) !== null && _6 !== void 0 ? _6 : [] }, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.props, (_7 = value === null || value === void 0 ? void 0 : value.item) === null || _7 === void 0 ? void 0 : _7.props, { event: ((_8 = value === null || value === void 0 ? void 0 : value.item) === null || _8 === void 0 ? void 0 : _8.event) || {}, schema: schema, id: value === null || value === void 0 ? void 0 : value.id, key: value === null || value === void 0 ? void 0 : value.id, recData: rec, isExternalLink: isExternalLink, index: index, isActive: isActive })));
55
+ let style = (_3 = value === null || value === void 0 ? void 0 : value.item) === null || _3 === void 0 ? void 0 : _3.style;
56
+ if (style.hasOwnProperty('backdropFilter')) {
57
+ let sbf = style['backdropFilter'];
58
+ style['backdropFilter'] = `blur(${sbf !== null && sbf !== void 0 ? sbf : 0}px)`;
59
+ }
60
+ return (react_1.default.createElement(Component, Object.assign({ style: Object.assign(Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.style), style), { zIndex: 50, marginLeft: '20px', boxSizing: 'border-box', transform: 'translate3d(0px, 0px, 0px)' }), textStyle: Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.textStyle), (_4 = value === null || value === void 0 ? void 0 : value.item) === null || _4 === void 0 ? void 0 : _4.textStyle), bindDatas: (_6 = (_5 = value === null || value === void 0 ? void 0 : value.item) === null || _5 === void 0 ? void 0 : _5.bindDatas) !== null && _6 !== void 0 ? _6 : [] }, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.props, (_7 = value === null || value === void 0 ? void 0 : value.item) === null || _7 === void 0 ? void 0 : _7.props, { event: ((_8 = value === null || value === void 0 ? void 0 : value.item) === null || _8 === void 0 ? void 0 : _8.event) || {}, schema: schema, id: value === null || value === void 0 ? void 0 : value.id, key: value === null || value === void 0 ? void 0 : value.id, recData: rec, isExternalLink: isExternalLink, index: index, isActive: isActive })));
56
61
  }
57
62
  else {
58
63
  return null;
@@ -9,6 +9,7 @@ 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
11
  const VideoPlayer_1 = require("./VideoPlayer");
12
+ const tool_1 = require("../../../../core/utils/tool");
12
13
  const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, videoPlayIcon }) => {
13
14
  const [isPauseVideo, setIsPauseVideo] = (0, react_1.useState)(false);
14
15
  const { bffEventReport, sxpParameter, waterFallData, openHashtag, bffFbReport } = (0, hooks_1.useSxpDataSource)();
@@ -23,6 +24,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
23
24
  const videoId = `pb-cache-video-${index}`;
24
25
  const videoEleRef = (0, react_1.useRef)(null);
25
26
  const hlsRef = (0, react_1.useRef)(null);
27
+ const initTimeRef = (0, react_1.useRef)();
26
28
  const blur = (0, react_1.useMemo)(() => {
27
29
  return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
28
30
  }, [videoPostConfig]);
@@ -68,8 +70,8 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
68
70
  setWaiting(false);
69
71
  setIsLoadFinish(true);
70
72
  }, []);
71
- const handleStartPlay = (0, react_1.useCallback)(() => {
72
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
73
+ const handleStartPlay = (0, react_1.useCallback)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
74
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
73
75
  if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
74
76
  return;
75
77
  setIsPauseVideo(false);
@@ -79,24 +81,27 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
79
81
  const videoDuration = ((_d = (_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.duration) !== null && _d !== void 0 ? _d : 0).toFixed(2);
80
82
  const videoCurrentTime = ((_f = (_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime) !== null && _f !== void 0 ? _f : 0).toFixed(2);
81
83
  const playType = isFirstPlay ? '0' : '1';
84
+ const contentSize = yield (0, tool_1.getResFileSizeFromSrc)((_g = item === null || item === void 0 ? void 0 : item.video) === null || _g === void 0 ? void 0 : _g.url);
82
85
  bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
83
86
  eventInfo: {
84
87
  eventSubject: 'playVideo',
85
88
  eventDescription: 'User played the video',
86
- contentId: (_h = (_g = item === null || item === void 0 ? void 0 : item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
87
- contentName: (_k = (_j = item === null || item === void 0 ? void 0 : item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
89
+ contentId: (_j = (_h = item === null || item === void 0 ? void 0 : item.video) === null || _h === void 0 ? void 0 : _h.itemId) !== null && _j !== void 0 ? _j : '',
90
+ contentName: (_l = (_k = item === null || item === void 0 ? void 0 : item.video) === null || _k === void 0 ? void 0 : _k.title) !== null && _l !== void 0 ? _l : '',
88
91
  playType,
89
92
  startTime: videoCurrentTime,
90
93
  videoDuration,
91
- contentTags: JSON.stringify((_m = (_l = item === null || item === void 0 ? void 0 : item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
94
+ contentTags: JSON.stringify((_o = (_m = item === null || item === void 0 ? void 0 : item.video) === null || _m === void 0 ? void 0 : _m.tags) !== null && _o !== void 0 ? _o : []),
92
95
  position: index + '',
93
96
  contentFormat: 'video',
94
- traceInfo: (_o = item === null || item === void 0 ? void 0 : item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
97
+ traceInfo: (_p = item === null || item === void 0 ? void 0 : item.video) === null || _p === void 0 ? void 0 : _p.traceInfo,
98
+ contentSize,
99
+ loadTime: (new Date() - (initTimeRef === null || initTimeRef === void 0 ? void 0 : initTimeRef.current)).toFixed(2) + ''
95
100
  }
96
101
  });
97
102
  setIsFirstPlay(false);
98
103
  }
99
- }, [bffEventReport, data, index, isFirstPlay, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current]);
104
+ }), [bffEventReport, data, index, isFirstPlay, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current]);
100
105
  const handLoadeddata = (0, react_1.useCallback)(() => {
101
106
  var _a;
102
107
  if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) || firstFrameSrc || !blur)
@@ -200,6 +205,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
200
205
  videoRef.current = VideoPlayer_1.mountVideoPlayerAtNode === null || VideoPlayer_1.mountVideoPlayerAtNode === void 0 ? void 0 : (0, VideoPlayer_1.mountVideoPlayerAtNode)(videoPlayerWrapperNode);
201
206
  if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
202
207
  return;
208
+ initTimeRef.current = new Date();
203
209
  const Hls = window === null || window === void 0 ? void 0 : window.Hls;
204
210
  let hls = hlsRef === null || hlsRef === void 0 ? void 0 : hlsRef.current;
205
211
  if (videoSrc.includes('.m3u8') && Hls && Hls.isSupported()) {
@@ -243,17 +249,18 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
243
249
  };
244
250
  }, [isActive]);
245
251
  (0, react_1.useEffect)(() => {
246
- var _a, _b;
252
+ var _a, _b, _c, _d;
247
253
  if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) || !isLoadFinish)
248
254
  return;
249
255
  if (isActive) {
250
256
  bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
251
- eventName: 'ViewContent'
257
+ eventName: 'ViewContent',
258
+ product: (_b = (_a = data === null || data === void 0 ? void 0 : data[index]) === null || _a === void 0 ? void 0 : _a.video) === null || _b === void 0 ? void 0 : _b.bindProduct
252
259
  });
253
- (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
260
+ (_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.play();
254
261
  }
255
262
  else {
256
- (_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.pause();
263
+ (_d = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _d === void 0 ? void 0 : _d.pause();
257
264
  }
258
265
  }, [isActive, isLoadFinish, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current]);
259
266
  (0, react_1.useEffect)(() => {
@@ -272,9 +279,11 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
272
279
  if (!isActive)
273
280
  return;
274
281
  const onShow = () => {
282
+ var _a, _b;
275
283
  handleClickVideo('start')();
276
284
  bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
277
- eventName: 'ViewContent'
285
+ eventName: 'ViewContent',
286
+ product: (_b = (_a = data === null || data === void 0 ? void 0 : data[index]) === null || _a === void 0 ? void 0 : _a.video) === null || _b === void 0 ? void 0 : _b.bindProduct
278
287
  });
279
288
  };
280
289
  const onHide = handleClickVideo('pause');
@@ -43,7 +43,8 @@ const WaterfallFlowItem = (props) => {
43
43
  product: rec === null || rec === void 0 ? void 0 : rec.product,
44
44
  enableFormattedPrice: (_a = textStyles === null || textStyles === void 0 ? void 0 : textStyles.price) === null || _a === void 0 ? void 0 : _a.enableFormattedPrice,
45
45
  globalConfig,
46
- isHiddenDef: true
46
+ isHiddenDef: true,
47
+ style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.price
47
48
  });
48
49
  (0, react_1.useEffect)(() => {
49
50
  const observer = new IntersectionObserver((entries) => {
@@ -115,7 +116,7 @@ const WaterfallFlowItem = (props) => {
115
116
  __html: (0, tool_1.setFontForText)(title, textStyles === null || textStyles === void 0 ? void 0 : textStyles.title)
116
117
  } }),
117
118
  react_1.default.createElement("div", { className: 'list-content-listItem-info-price', style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.price, hidden: !priceText, dangerouslySetInnerHTML: {
118
- __html: (0, tool_1.setFontForText)(priceText, textStyles === null || textStyles === void 0 ? void 0 : textStyles.price)
119
+ __html: priceText !== null && priceText !== void 0 ? priceText : ''
119
120
  } }))));
120
121
  };
121
122
  function WaterfallList(_a) {
@@ -66,7 +66,8 @@ const WaterfallFlowItem = (props) => {
66
66
  product: rec === null || rec === void 0 ? void 0 : rec.product,
67
67
  enableFormattedPrice: (_a = textStyles === null || textStyles === void 0 ? void 0 : textStyles.price) === null || _a === void 0 ? void 0 : _a.enableFormattedPrice,
68
68
  globalConfig,
69
- isHiddenDef: true
69
+ isHiddenDef: true,
70
+ style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.price
70
71
  });
71
72
  (0, react_1.useEffect)(() => {
72
73
  if (imgDom.current === null || src === '') {
@@ -107,7 +108,7 @@ const WaterfallFlowItem = (props) => {
107
108
  __html: (0, tool_1.setFontForText)(title, textStyles === null || textStyles === void 0 ? void 0 : textStyles.title)
108
109
  } }),
109
110
  react_1.default.createElement("div", { className: 'waterFallList-content-listItem-info-price', hidden: !priceText, style: textStyles.price, dangerouslySetInnerHTML: {
110
- __html: (0, tool_1.setFontForText)(priceText, textStyles === null || textStyles === void 0 ? void 0 : textStyles.price)
111
+ __html: priceText !== null && priceText !== void 0 ? priceText : ''
111
112
  } }))));
112
113
  };
113
114
  function WaterfallList(_a) {