pb-sxp-ui 1.0.2 → 1.0.3-alpha.1

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 (142) hide show
  1. package/dist/index.cjs +1302 -688
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +28 -133
  4. package/dist/index.js +1302 -688
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.min.cjs +3 -5
  7. package/dist/index.min.cjs.map +1 -1
  8. package/dist/index.min.js +3 -5
  9. package/dist/index.min.js.map +1 -1
  10. package/dist/pb-ui.js +1302 -688
  11. package/dist/pb-ui.js.map +1 -1
  12. package/dist/pb-ui.min.js +3 -5
  13. package/dist/pb-ui.min.js.map +1 -1
  14. package/es/core/components/SxpPageCore/index.d.ts +1 -0
  15. package/es/core/components/SxpPageCore/index.js +2 -2
  16. package/es/core/components/SxpPageRender/ExpandableText.d.ts +1 -0
  17. package/es/core/components/SxpPageRender/ExpandableText.js +17 -10
  18. package/es/core/components/SxpPageRender/Hashtag/index.js +1 -1
  19. package/es/core/components/SxpPageRender/Modal/index.d.ts +2 -0
  20. package/es/core/components/SxpPageRender/Modal/index.js +7 -4
  21. package/es/core/components/SxpPageRender/Nudge/index.d.ts +24 -0
  22. package/es/core/components/SxpPageRender/Nudge/index.js +13 -0
  23. package/es/core/components/SxpPageRender/PictureGroup/index.js +11 -7
  24. package/es/core/components/SxpPageRender/Popup/index.js +3 -3
  25. package/es/core/components/SxpPageRender/VideoWidget/index.js +30 -21
  26. package/es/core/components/SxpPageRender/WaterFall/WaterfallList.js +4 -3
  27. package/es/core/components/SxpPageRender/index.d.ts +20 -1
  28. package/es/core/components/SxpPageRender/index.js +19 -16
  29. package/es/core/components/SxpPageRender/typing.d.ts +1 -0
  30. package/es/core/components/SxpPageRender/useIconLink.d.ts +1 -1
  31. package/es/core/components/SxpPageRender/useIconLink.js +8 -3
  32. package/es/core/context/EditorContext.d.ts +5 -0
  33. package/es/core/context/EditorContext.js +21 -3
  34. package/es/core/context/SxpDataSourceProvider.js +1 -1
  35. package/es/core/create.d.ts +1 -1
  36. package/es/materials/sxp/popup/CommodityDetail/index.d.ts +20 -1
  37. package/es/materials/sxp/popup/CommodityDetail/index.js +44 -21
  38. package/es/materials/sxp/popup/CommodityDetail/material.js +36 -1
  39. package/es/materials/sxp/popup/CommodityDetail/settingRender.d.ts +134 -0
  40. package/es/materials/sxp/popup/CommodityDetail/settingRender.js +167 -0
  41. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +13 -1
  42. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +20 -17
  43. package/es/materials/sxp/popup/CommodityDetailDiroNew/material.js +46 -1
  44. package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +134 -0
  45. package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +171 -0
  46. package/es/materials/sxp/popup/index.d.ts +0 -1
  47. package/es/materials/sxp/popup/index.js +0 -1
  48. package/es/materials/sxp/template/Appoint/index.d.ts +2 -0
  49. package/es/materials/sxp/template/Appoint/index.js +4 -18
  50. package/es/materials/sxp/template/Appoint/material.js +22 -6
  51. package/es/materials/sxp/template/Commodity/index.d.ts +2 -0
  52. package/es/materials/sxp/template/Commodity/index.js +5 -22
  53. package/es/materials/sxp/template/Commodity/material.js +31 -6
  54. package/es/materials/sxp/template/CommodityDiro/index.d.ts +2 -0
  55. package/es/materials/sxp/template/CommodityDiro/index.js +5 -24
  56. package/es/materials/sxp/template/CommodityDiro/material.js +30 -5
  57. package/es/materials/sxp/template/CommodityDiroNew/index.d.ts +2 -0
  58. package/es/materials/sxp/template/CommodityDiroNew/index.js +5 -24
  59. package/es/materials/sxp/template/CommodityDiroNew/material.js +32 -6
  60. package/es/materials/sxp/template/Link/index.d.ts +2 -0
  61. package/es/materials/sxp/template/Link/index.js +4 -13
  62. package/es/materials/sxp/template/Link/material.js +22 -5
  63. package/es/materials/sxp/template/MultiCommodity/index.d.ts +2 -0
  64. package/es/materials/sxp/template/MultiCommodity/index.js +8 -24
  65. package/es/materials/sxp/template/MultiCommodity/material.js +30 -5
  66. package/es/materials/sxp/template/MultiCommodityDiro/index.d.ts +2 -0
  67. package/es/materials/sxp/template/MultiCommodityDiro/index.js +8 -27
  68. package/es/materials/sxp/template/MultiCommodityDiro/material.js +31 -6
  69. package/es/materials/sxp/template/MultiCommodityDiroNew/index.d.ts +2 -0
  70. package/es/materials/sxp/template/MultiCommodityDiroNew/index.js +8 -25
  71. package/es/materials/sxp/template/MultiCommodityDiroNew/material.js +32 -6
  72. package/es/materials/sxp/template/components/EventProvider.d.ts +2 -1
  73. package/es/materials/sxp/template/components/EventProvider.js +5 -4
  74. package/es/materials/sxp/template/components/settingRender.d.ts +108 -0
  75. package/es/materials/sxp/template/components/settingRender.js +198 -0
  76. package/es/materials/sxp/template/components/typing.d.ts +6 -0
  77. package/es/materials/sxp/template/components/typing.js +1 -0
  78. package/lib/core/components/SxpPageCore/index.d.ts +1 -0
  79. package/lib/core/components/SxpPageCore/index.js +2 -2
  80. package/lib/core/components/SxpPageRender/ExpandableText.d.ts +1 -0
  81. package/lib/core/components/SxpPageRender/ExpandableText.js +17 -10
  82. package/lib/core/components/SxpPageRender/Hashtag/index.js +1 -1
  83. package/lib/core/components/SxpPageRender/Modal/index.d.ts +2 -0
  84. package/lib/core/components/SxpPageRender/Modal/index.js +7 -4
  85. package/lib/core/components/SxpPageRender/Nudge/index.d.ts +24 -0
  86. package/lib/core/components/SxpPageRender/Nudge/index.js +16 -0
  87. package/lib/core/components/SxpPageRender/PictureGroup/index.js +10 -6
  88. package/lib/core/components/SxpPageRender/Popup/index.js +3 -3
  89. package/lib/core/components/SxpPageRender/VideoWidget/index.js +30 -21
  90. package/lib/core/components/SxpPageRender/WaterFall/WaterfallList.js +3 -2
  91. package/lib/core/components/SxpPageRender/index.d.ts +20 -1
  92. package/lib/core/components/SxpPageRender/index.js +19 -16
  93. package/lib/core/components/SxpPageRender/typing.d.ts +1 -0
  94. package/lib/core/components/SxpPageRender/useIconLink.d.ts +1 -1
  95. package/lib/core/components/SxpPageRender/useIconLink.js +8 -3
  96. package/lib/core/context/EditorContext.d.ts +5 -0
  97. package/lib/core/context/EditorContext.js +21 -3
  98. package/lib/core/context/SxpDataSourceProvider.js +1 -1
  99. package/lib/core/create.d.ts +1 -1
  100. package/lib/materials/sxp/popup/CommodityDetail/index.d.ts +20 -1
  101. package/lib/materials/sxp/popup/CommodityDetail/index.js +43 -20
  102. package/lib/materials/sxp/popup/CommodityDetail/material.js +36 -1
  103. package/lib/materials/sxp/popup/CommodityDetail/settingRender.d.ts +134 -0
  104. package/lib/materials/sxp/popup/CommodityDetail/settingRender.js +169 -0
  105. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +13 -1
  106. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +20 -17
  107. package/lib/materials/sxp/popup/CommodityDetailDiroNew/material.js +46 -1
  108. package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +134 -0
  109. package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +173 -0
  110. package/lib/materials/sxp/popup/index.d.ts +0 -1
  111. package/lib/materials/sxp/popup/index.js +0 -1
  112. package/lib/materials/sxp/template/Appoint/index.d.ts +2 -0
  113. package/lib/materials/sxp/template/Appoint/index.js +4 -18
  114. package/lib/materials/sxp/template/Appoint/material.js +22 -6
  115. package/lib/materials/sxp/template/Commodity/index.d.ts +2 -0
  116. package/lib/materials/sxp/template/Commodity/index.js +5 -22
  117. package/lib/materials/sxp/template/Commodity/material.js +31 -6
  118. package/lib/materials/sxp/template/CommodityDiro/index.d.ts +2 -0
  119. package/lib/materials/sxp/template/CommodityDiro/index.js +5 -24
  120. package/lib/materials/sxp/template/CommodityDiro/material.js +30 -5
  121. package/lib/materials/sxp/template/CommodityDiroNew/index.d.ts +2 -0
  122. package/lib/materials/sxp/template/CommodityDiroNew/index.js +5 -24
  123. package/lib/materials/sxp/template/CommodityDiroNew/material.js +32 -6
  124. package/lib/materials/sxp/template/Link/index.d.ts +2 -0
  125. package/lib/materials/sxp/template/Link/index.js +4 -13
  126. package/lib/materials/sxp/template/Link/material.js +22 -5
  127. package/lib/materials/sxp/template/MultiCommodity/index.d.ts +2 -0
  128. package/lib/materials/sxp/template/MultiCommodity/index.js +7 -23
  129. package/lib/materials/sxp/template/MultiCommodity/material.js +30 -5
  130. package/lib/materials/sxp/template/MultiCommodityDiro/index.d.ts +2 -0
  131. package/lib/materials/sxp/template/MultiCommodityDiro/index.js +7 -26
  132. package/lib/materials/sxp/template/MultiCommodityDiro/material.js +31 -6
  133. package/lib/materials/sxp/template/MultiCommodityDiroNew/index.d.ts +2 -0
  134. package/lib/materials/sxp/template/MultiCommodityDiroNew/index.js +7 -24
  135. package/lib/materials/sxp/template/MultiCommodityDiroNew/material.js +32 -6
  136. package/lib/materials/sxp/template/components/EventProvider.d.ts +2 -1
  137. package/lib/materials/sxp/template/components/EventProvider.js +4 -3
  138. package/lib/materials/sxp/template/components/settingRender.d.ts +108 -0
  139. package/lib/materials/sxp/template/components/settingRender.js +200 -0
  140. package/lib/materials/sxp/template/components/typing.d.ts +6 -0
  141. package/lib/materials/sxp/template/components/typing.js +2 -0
  142. package/package.json +1 -1
@@ -9,7 +9,7 @@ const hooks_1 = require("../../../../core/hooks");
9
9
  const useEventReport_1 = require("../../../../core/hooks/useEventReport");
10
10
  const Link = (_a) => {
11
11
  var _b, _c, _d, _e, _f;
12
- var { content, style, bgImg, recData, bottom_image } = _a, props = tslib_1.__rest(_a, ["content", "style", "bgImg", "recData", "bottom_image"]);
12
+ var { content, style, bgImg, recData, bottom_image, ctaTempStyles } = _a, props = tslib_1.__rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles"]);
13
13
  const { sxpParameter, bffEventReport } = (0, hooks_1.useSxpDataSource)();
14
14
  const { jumpToWeb } = (0, useEventReport_1.useEventReport)();
15
15
  const cta = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindCta;
@@ -20,24 +20,15 @@ const Link = (_a) => {
20
20
  window.location.href = window.getJointUtmLink(cta.link);
21
21
  }
22
22
  };
23
- return (react_1.default.createElement(EventProvider_1.default, Object.assign({ rec: recData, className: (0, css_1.css)(Object.assign(Object.assign({}, style), { maxWidth: '236px', width: '100%' })) }, props, { onClick: handleTo }),
24
- react_1.default.createElement("div", { className: (0, css_1.css)({
25
- width: '60px',
26
- height: '60px',
27
- marginRight: '8px',
28
- borderRadius: '3px',
29
- backgroundColor: '#f2f2f2',
30
- overflow: 'hidden',
31
- flexShrink: 0
32
- }) },
23
+ return (react_1.default.createElement(EventProvider_1.default, Object.assign({ rec: recData, className: (0, css_1.css)(Object.assign({ alignItems: 'center' }, style)), style: { display: 'flex' } }, props, { onClick: handleTo }),
24
+ react_1.default.createElement("div", { className: (0, css_1.css)(Object.assign({ backgroundColor: '#f2f2f2', overflow: 'hidden', flexShrink: 0 }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img)) },
33
25
  react_1.default.createElement("img", { className: (0, css_1.css)({ width: '100%', objectFit: 'cover', height: '100%' }), src: (_e = (_d = cta === null || cta === void 0 ? void 0 : cta.icon) !== null && _d !== void 0 ? _d : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _e !== void 0 ? _e : bottom_image, alt: '' })),
34
26
  react_1.default.createElement("div", { className: (0, css_1.css)({
35
- color: '#fff',
36
27
  display: 'flex',
37
28
  alignItems: 'center',
38
29
  width: '100%',
39
30
  overflow: 'hidden'
40
31
  }) },
41
- react_1.default.createElement("div", { className: index_module_less_1.default['tow-line-ellipsis'] }, (_f = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _f !== void 0 ? _f : 'Product Name'))));
32
+ react_1.default.createElement("div", { className: index_module_less_1.default['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle }, (_f = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _f !== void 0 ? _f : 'Product Name'))));
42
33
  };
43
34
  exports.default = (0, react_1.memo)(Link);
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Link = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const settingRender_1 = tslib_1.__importDefault(require("../components/settingRender"));
5
6
  const _1 = tslib_1.__importDefault(require("."));
6
7
  const create_1 = require("../../../../core/create");
7
8
  const Link = (0, create_1.createMaterial)(_1.default, {
@@ -10,17 +11,33 @@ const Link = (0, create_1.createMaterial)(_1.default, {
10
11
  category: 'template',
11
12
  type: 'Link',
12
13
  related: {
14
+ settingRender: settingRender_1.default === null || settingRender_1.default === void 0 ? void 0 : settingRender_1.default.filter((i) => i.type !== 'commodityTitle'),
13
15
  bindableProps: []
14
16
  },
15
17
  defaulSetting: {
16
18
  props: {
17
- content: '按钮'
19
+ ctaTempStyles: {
20
+ img: {
21
+ borderRadius: 3,
22
+ width: 60,
23
+ height: 60,
24
+ marginRight: 8
25
+ },
26
+ ctaTitle: {
27
+ fontSize: 12,
28
+ color: '#fff',
29
+ textAlign: 'left',
30
+ width: 130,
31
+ height: 20
32
+ }
33
+ }
18
34
  },
19
35
  style: {
20
- padding: '7px',
21
- display: 'flex',
22
- background: 'rgba(0,0,0,.3)',
23
- borderRadius: '3px'
36
+ padding: 7,
37
+ width: 236,
38
+ height: 74,
39
+ borderRadius: 3,
40
+ backgroundColor: 'rgba(0,0,0,.3)'
24
41
  }
25
42
  },
26
43
  w: 100,
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { ICtaTempStylesType } from '../components/typing';
2
3
  import { RecItemType } from '../../../../core/components/SxpPageRender/typing';
3
4
  export interface IMultiCommodityProps {
4
5
  content?: string;
@@ -7,6 +8,7 @@ export interface IMultiCommodityProps {
7
8
  recData?: RecItemType;
8
9
  onClick?: () => void;
9
10
  bottom_image?: string;
11
+ ctaTempStyles?: ICtaTempStylesType;
10
12
  }
11
13
  declare const _default: React.NamedExoticComponent<IMultiCommodityProps>;
12
14
  export default _default;
@@ -11,9 +11,10 @@ const index_module_less_1 = tslib_1.__importDefault(require("./index.module.less
11
11
  const hooks_1 = require("../../../../core/hooks");
12
12
  const MultiCommodity = (_a) => {
13
13
  var _b, _c;
14
- var { content, style, bgImg, recData, onClick, bottom_image } = _a, props = tslib_1.__rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image"]);
14
+ var { content, style, bgImg, recData, onClick, bottom_image, ctaTempStyles } = _a, props = tslib_1.__rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image", "ctaTempStyles"]);
15
15
  const { sxpParameter } = (0, hooks_1.useSxpDataSource)();
16
16
  const { ctaEvent, setPopupDetailData } = (0, hooks_1.useSxpDataSource)();
17
+ const { popupAni } = (0, hooks_1.useEditor)();
17
18
  const [products, setProducts] = (0, react_1.useState)((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
18
19
  const handleClick = (0, lodash_1.throttle)((item) => {
19
20
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
@@ -22,19 +23,11 @@ const MultiCommodity = (_a) => {
22
23
  }, recData, item);
23
24
  setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { video: Object.assign(Object.assign({}, recData === null || recData === void 0 ? void 0 : recData.video), { bindProduct: item }) }));
24
25
  onClick === null || onClick === void 0 ? void 0 : onClick();
25
- }, 1200);
26
+ }, popupAni === null || popupAni === void 0 ? void 0 : popupAni.duration);
26
27
  return (react_1.default.createElement(Scroll_1.default, null, products === null || products === void 0 ? void 0 : products.map((item) => {
27
28
  var _a, _b, _c, _d, _e, _f;
28
- return (react_1.default.createElement(react_2.SwiperSlide, Object.assign({ hidden: recData && !(item === null || item === void 0 ? void 0 : item.bindCta), key: item.itemId, className: (0, css_1.css)(Object.assign(Object.assign({}, style), { maxWidth: '236px', width: '100%', flexShrink: 0 })) }, props, { onClick: () => handleClick(item) }),
29
- react_1.default.createElement("div", { className: (0, css_1.css)({
30
- width: '60px',
31
- height: '60px',
32
- marginRight: '8px',
33
- borderRadius: '3px',
34
- overflow: 'hidden',
35
- flexShrink: 0,
36
- backgroundColor: '#f2f2f2'
37
- }) },
29
+ return (react_1.default.createElement(react_2.SwiperSlide, Object.assign({ hidden: recData && !(item === null || item === void 0 ? void 0 : item.bindCta), key: item.itemId, className: (0, css_1.css)(Object.assign({ flexShrink: 0 }, style)), style: { display: 'flex' } }, props, { onClick: () => handleClick(item) }),
30
+ react_1.default.createElement("div", { className: (0, css_1.css)(Object.assign({ overflow: 'hidden', flexShrink: 0, backgroundColor: '#f2f2f2' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img)) },
38
31
  react_1.default.createElement(Img_1.default, { src: (_c = (_b = (_a = item === null || item === void 0 ? void 0 : item.homePage) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _c !== void 0 ? _c : bottom_image, rec: recData, item: item })),
39
32
  react_1.default.createElement("div", { className: (0, css_1.css)({
40
33
  color: '#fff',
@@ -44,17 +37,8 @@ const MultiCommodity = (_a) => {
44
37
  width: '100%',
45
38
  overflow: 'hidden'
46
39
  }) },
47
- react_1.default.createElement("div", { className: index_module_less_1.default['two-line-ellipsis'] }, (_d = item === null || item === void 0 ? void 0 : item.title) !== null && _d !== void 0 ? _d : 'Product Name'),
48
- react_1.default.createElement("div", { className: (0, css_1.css)({
49
- background: 'rgba(0,0,0,.5)',
50
- fontSize: '10px',
51
- padding: '2px 7px',
52
- width: 'auto',
53
- textAlign: 'center',
54
- textOverflow: 'ellipsis',
55
- overflow: 'hidden',
56
- whiteSpace: 'nowrap'
57
- }) }, (_f = (_e = item === null || item === void 0 ? void 0 : item.bindCta) === null || _e === void 0 ? void 0 : _e.enTitle) !== null && _f !== void 0 ? _f : 'Shop Now'))));
40
+ react_1.default.createElement("div", { className: index_module_less_1.default['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title }, (_d = item === null || item === void 0 ? void 0 : item.title) !== null && _d !== void 0 ? _d : 'Product Name'),
41
+ react_1.default.createElement("div", { className: (0, css_1.css)(Object.assign({ padding: '2px 7px', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)) }, (_f = (_e = item === null || item === void 0 ? void 0 : item.bindCta) === null || _e === void 0 ? void 0 : _e.enTitle) !== null && _f !== void 0 ? _f : 'Shop Now'))));
58
42
  })));
59
43
  };
60
44
  exports.default = (0, react_1.memo)(MultiCommodity);
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MultiCommodity = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const settingRender_1 = tslib_1.__importDefault(require("../components/settingRender"));
5
6
  const interactionRender_1 = tslib_1.__importDefault(require("./interactionRender"));
6
7
  const _1 = tslib_1.__importDefault(require("."));
7
8
  const create_1 = require("../../../../core/create");
@@ -12,15 +13,39 @@ const MultiCommodity = (0, create_1.createMaterial)(_1.default, {
12
13
  type: 'MultiCommodity',
13
14
  related: {
14
15
  interactionRender: interactionRender_1.default,
16
+ settingRender: settingRender_1.default,
15
17
  bindableProps: []
16
18
  },
17
19
  defaulSetting: {
18
- props: {},
20
+ props: {
21
+ ctaTempStyles: {
22
+ img: {
23
+ borderRadius: 3,
24
+ width: 60,
25
+ height: 60,
26
+ marginRight: 8
27
+ },
28
+ title: {
29
+ fontSize: 12,
30
+ color: '#fff',
31
+ textAlign: 'left'
32
+ },
33
+ ctaTitle: {
34
+ fontSize: 10,
35
+ color: '#fff',
36
+ textAlign: 'center',
37
+ width: 130,
38
+ height: 20,
39
+ backgroundColor: 'rgba(0,0,0,.5)'
40
+ }
41
+ }
42
+ },
19
43
  style: {
20
- padding: '7px',
21
- display: 'flex',
22
- background: 'rgba(0,0,0,.3)',
23
- borderRadius: '3px'
44
+ padding: 7,
45
+ width: 236,
46
+ height: 74,
47
+ borderRadius: 3,
48
+ backgroundColor: 'rgba(0,0,0,.3)'
24
49
  }
25
50
  },
26
51
  w: 100,
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { ICtaTempStylesType } from '../components/typing';
2
3
  import { RecItemType } from '../../../../core/components/SxpPageRender/typing';
3
4
  export interface IMultiCommodityDiroProps {
4
5
  content?: string;
@@ -7,6 +8,7 @@ export interface IMultiCommodityDiroProps {
7
8
  recData?: RecItemType;
8
9
  onClick?: () => void;
9
10
  bottom_image?: string;
11
+ ctaTempStyles?: ICtaTempStylesType;
10
12
  }
11
13
  declare const _default: React.NamedExoticComponent<IMultiCommodityDiroProps>;
12
14
  export default _default;
@@ -11,8 +11,9 @@ const index_module_less_1 = tslib_1.__importDefault(require("./index.module.less
11
11
  const hooks_1 = require("../../../../core/hooks");
12
12
  const MultiCommodityDiro = (_a) => {
13
13
  var _b, _c;
14
- var { content, style, bgImg, recData, onClick, bottom_image } = _a, props = tslib_1.__rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image"]);
14
+ var { content, style, bgImg, recData, onClick, bottom_image, ctaTempStyles } = _a, props = tslib_1.__rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image", "ctaTempStyles"]);
15
15
  const { ctaEvent, setPopupDetailData, sxpParameter } = (0, hooks_1.useSxpDataSource)();
16
+ const { popupAni } = (0, hooks_1.useEditor)();
16
17
  const [products, setProducts] = (0, react_1.useState)((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
17
18
  const handleClick = (0, lodash_1.throttle)((item) => {
18
19
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
@@ -21,19 +22,11 @@ const MultiCommodityDiro = (_a) => {
21
22
  }, recData, item);
22
23
  setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { video: Object.assign(Object.assign({}, recData === null || recData === void 0 ? void 0 : recData.video), { bindProduct: item }) }));
23
24
  onClick === null || onClick === void 0 ? void 0 : onClick();
24
- }, 1200);
25
+ }, popupAni === null || popupAni === void 0 ? void 0 : popupAni.duration);
25
26
  return (react_1.default.createElement(Scroll_1.default, null, products === null || products === void 0 ? void 0 : products.map((item) => {
26
27
  var _a, _b, _c, _d, _e, _f;
27
- return (react_1.default.createElement(react_2.SwiperSlide, Object.assign({ hidden: recData && !(item === null || item === void 0 ? void 0 : item.bindCta), key: item === null || item === void 0 ? void 0 : item.itemId, className: (0, css_1.css)(Object.assign(Object.assign({}, style), { maxWidth: '236px', width: '100%', flexShrink: 0 })) }, props, { onClick: () => handleClick(item) }),
28
- react_1.default.createElement("div", { className: (0, css_1.css)({
29
- width: '60px',
30
- height: '60px',
31
- marginRight: '8px',
32
- borderRadius: '3px',
33
- overflow: 'hidden',
34
- flexShrink: 0,
35
- backgroundColor: '#f2f2f2'
36
- }) },
28
+ return (react_1.default.createElement(react_2.SwiperSlide, Object.assign({ hidden: recData && !(item === null || item === void 0 ? void 0 : item.bindCta), key: item === null || item === void 0 ? void 0 : item.itemId, className: (0, css_1.css)(Object.assign({ flexShrink: 0 }, style)), style: { display: 'flex' } }, props, { onClick: () => handleClick(item) }),
29
+ react_1.default.createElement("div", { className: (0, css_1.css)(Object.assign({ overflow: 'hidden', flexShrink: 0, backgroundColor: '#f2f2f2' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img)) },
37
30
  react_1.default.createElement(Img_1.default, { src: (_c = (_b = (_a = item === null || item === void 0 ? void 0 : item.homePage) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _c !== void 0 ? _c : bottom_image, rec: recData, item: item })),
38
31
  react_1.default.createElement("div", { className: (0, css_1.css)({
39
32
  color: '#000',
@@ -43,20 +36,8 @@ const MultiCommodityDiro = (_a) => {
43
36
  width: '100%',
44
37
  overflow: 'hidden'
45
38
  }) },
46
- react_1.default.createElement("div", { className: index_module_less_1.default['two-line-ellipsis'] }, (_d = item === null || item === void 0 ? void 0 : item.title) !== null && _d !== void 0 ? _d : 'Product Name'),
47
- react_1.default.createElement("div", { className: (0, css_1.css)({
48
- background: 'rgba(0,0,0,1)',
49
- fontSize: '10px',
50
- padding: '2px 7px',
51
- textAlign: 'center',
52
- textOverflow: 'ellipsis',
53
- overflow: 'hidden',
54
- borderRadius: '25px',
55
- width: 'fit-content',
56
- maxWidth: '100%',
57
- color: '#fff',
58
- whiteSpace: 'nowrap'
59
- }) }, (_f = (_e = item === null || item === void 0 ? void 0 : item.bindCta) === null || _e === void 0 ? void 0 : _e.enTitle) !== null && _f !== void 0 ? _f : 'Shop Now'))));
39
+ react_1.default.createElement("div", { className: index_module_less_1.default['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title }, (_d = item === null || item === void 0 ? void 0 : item.title) !== null && _d !== void 0 ? _d : 'Product Name'),
40
+ react_1.default.createElement("div", { className: (0, css_1.css)(Object.assign({ padding: '2px 7px', textOverflow: 'ellipsis', overflow: 'hidden', borderRadius: '25px', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)) }, (_f = (_e = item === null || item === void 0 ? void 0 : item.bindCta) === null || _e === void 0 ? void 0 : _e.enTitle) !== null && _f !== void 0 ? _f : 'Shop Now'))));
60
41
  })));
61
42
  };
62
43
  exports.default = (0, react_1.memo)(MultiCommodityDiro);
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MultiCommodityDiro = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const settingRender_1 = tslib_1.__importDefault(require("../components/settingRender"));
5
6
  const interactionRender_1 = tslib_1.__importDefault(require("./interactionRender"));
6
7
  const _1 = tslib_1.__importDefault(require("."));
7
8
  const create_1 = require("../../../../core/create");
@@ -12,15 +13,39 @@ const MultiCommodityDiro = (0, create_1.createMaterial)(_1.default, {
12
13
  type: 'MultiCommodityDiro',
13
14
  related: {
14
15
  interactionRender: interactionRender_1.default,
15
- bindableProps: []
16
+ bindableProps: [],
17
+ settingRender: settingRender_1.default
16
18
  },
17
19
  defaulSetting: {
18
- props: {},
20
+ props: {
21
+ ctaTempStyles: {
22
+ img: {
23
+ borderRadius: 3,
24
+ width: 60,
25
+ height: 60,
26
+ marginRight: 8
27
+ },
28
+ title: {
29
+ fontSize: 12,
30
+ color: '#000',
31
+ textAlign: 'left'
32
+ },
33
+ ctaTitle: {
34
+ fontSize: 10,
35
+ color: '#fff',
36
+ textAlign: 'center',
37
+ width: 80,
38
+ height: 20,
39
+ backgroundColor: 'rgba(0,0,0,1)'
40
+ }
41
+ }
42
+ },
19
43
  style: {
20
- padding: '7px',
21
- display: 'flex',
22
- background: '#fff',
23
- borderRadius: '3px'
44
+ padding: 7,
45
+ width: 236,
46
+ height: 74,
47
+ borderRadius: 3,
48
+ backgroundColor: '#fff'
24
49
  }
25
50
  },
26
51
  w: 100,
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { ICtaTempStylesType } from '../components/typing';
2
3
  import { RecItemType } from '../../../../core/components/SxpPageRender/typing';
3
4
  export interface IMultiCommodityDiroNewProps {
4
5
  content?: string;
@@ -7,6 +8,7 @@ export interface IMultiCommodityDiroNewProps {
7
8
  recData?: RecItemType;
8
9
  onClick?: () => void;
9
10
  bottom_image?: string;
11
+ ctaTempStyles?: ICtaTempStylesType;
10
12
  }
11
13
  declare const _default: React.NamedExoticComponent<IMultiCommodityDiroNewProps>;
12
14
  export default _default;
@@ -11,8 +11,9 @@ const index_module_less_1 = tslib_1.__importDefault(require("./index.module.less
11
11
  const hooks_1 = require("../../../../core/hooks");
12
12
  const MultiCommodityDiroNew = (_a) => {
13
13
  var _b, _c;
14
- var { content, style, bgImg, recData, onClick, bottom_image } = _a, props = tslib_1.__rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image"]);
14
+ var { content, style, bgImg, recData, onClick, bottom_image, ctaTempStyles } = _a, props = tslib_1.__rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image", "ctaTempStyles"]);
15
15
  const { ctaEvent, setPopupDetailData, sxpParameter } = (0, hooks_1.useSxpDataSource)();
16
+ const { popupAni } = (0, hooks_1.useEditor)();
16
17
  const [products, setProducts] = (0, react_1.useState)((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
17
18
  const handleClick = (0, lodash_1.throttle)((item) => {
18
19
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
@@ -21,19 +22,11 @@ const MultiCommodityDiroNew = (_a) => {
21
22
  }, recData, item);
22
23
  setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { video: Object.assign(Object.assign({}, recData === null || recData === void 0 ? void 0 : recData.video), { bindProduct: item }) }));
23
24
  onClick === null || onClick === void 0 ? void 0 : onClick();
24
- }, 1200);
25
+ }, popupAni === null || popupAni === void 0 ? void 0 : popupAni.duration);
25
26
  return (react_1.default.createElement(Scroll_1.default, null, products === null || products === void 0 ? void 0 : products.map((item) => {
26
27
  var _a, _b, _c, _d, _e, _f;
27
- return (react_1.default.createElement(react_2.SwiperSlide, Object.assign({ hidden: recData && !(item === null || item === void 0 ? void 0 : item.bindCta), key: item === null || item === void 0 ? void 0 : item.itemId, className: (0, css_1.css)(Object.assign(Object.assign({}, style), { maxWidth: '260px', width: '100%', flexShrink: 0, padding: '4px', background: 'rgba(255,255,255,0.75)' })) }, props, { onClick: () => handleClick(item) }),
28
- react_1.default.createElement("div", { className: (0, css_1.css)({
29
- width: '78px',
30
- height: '78px',
31
- marginRight: '16px',
32
- borderRadius: '8px',
33
- overflow: 'hidden',
34
- flexShrink: 0,
35
- backgroundColor: '#f2f2f2'
36
- }) },
28
+ return (react_1.default.createElement(react_2.SwiperSlide, Object.assign({ hidden: recData && !(item === null || item === void 0 ? void 0 : item.bindCta), key: item === null || item === void 0 ? void 0 : item.itemId, className: (0, css_1.css)(Object.assign({ flexShrink: 0 }, style)), style: { display: 'flex' } }, props, { onClick: () => handleClick(item) }),
29
+ react_1.default.createElement("div", { className: (0, css_1.css)(Object.assign({ overflow: 'hidden', flexShrink: 0, backgroundColor: '#f2f2f2' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img)) },
37
30
  react_1.default.createElement(Img_1.default, { src: (_c = (_b = (_a = item === null || item === void 0 ? void 0 : item.homePage) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _c !== void 0 ? _c : bottom_image, rec: recData, item: item })),
38
31
  react_1.default.createElement("div", { className: (0, css_1.css)({
39
32
  color: '#fff',
@@ -44,18 +37,8 @@ const MultiCommodityDiroNew = (_a) => {
44
37
  overflow: 'hidden',
45
38
  lineHeight: '20px'
46
39
  }) },
47
- react_1.default.createElement("div", { className: index_module_less_1.default['tow-line-ellipsis'] }, (_d = item === null || item === void 0 ? void 0 : item.title) !== null && _d !== void 0 ? _d : 'Product Name'),
48
- react_1.default.createElement("div", { className: (0, css_1.css)({
49
- fontSize: '13px',
50
- fontWeight: 'bold',
51
- textOverflow: 'ellipsis',
52
- overflow: 'hidden',
53
- width: 'fit-content',
54
- maxWidth: '100%',
55
- whiteSpace: 'nowrap',
56
- textDecoration: 'underline',
57
- color: '#000'
58
- }) }, (_f = (_e = item === null || item === void 0 ? void 0 : item.bindCta) === null || _e === void 0 ? void 0 : _e.enTitle) !== null && _f !== void 0 ? _f : 'Shop now'))));
40
+ react_1.default.createElement("div", { className: index_module_less_1.default['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title }, (_d = item === null || item === void 0 ? void 0 : item.title) !== null && _d !== void 0 ? _d : 'Product Name'),
41
+ react_1.default.createElement("div", { className: (0, css_1.css)(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)) }, (_f = (_e = item === null || item === void 0 ? void 0 : item.bindCta) === null || _e === void 0 ? void 0 : _e.enTitle) !== null && _f !== void 0 ? _f : 'Shop now'))));
59
42
  })));
60
43
  };
61
44
  exports.default = (0, react_1.memo)(MultiCommodityDiroNew);
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MultiCommodityDiroNew = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const settingRender_1 = tslib_1.__importDefault(require("../components/settingRender"));
5
6
  const interactionRender_1 = tslib_1.__importDefault(require("./interactionRender"));
6
7
  const _1 = tslib_1.__importDefault(require("."));
7
8
  const create_1 = require("../../../../core/create");
@@ -12,15 +13,40 @@ const MultiCommodityDiroNew = (0, create_1.createMaterial)(_1.default, {
12
13
  type: 'MultiCommodityDiroNew',
13
14
  related: {
14
15
  interactionRender: interactionRender_1.default,
15
- bindableProps: []
16
+ bindableProps: [],
17
+ settingRender: settingRender_1.default
16
18
  },
17
19
  defaulSetting: {
18
- props: {},
20
+ props: {
21
+ ctaTempStyles: {
22
+ img: {
23
+ borderRadius: 8,
24
+ width: 78,
25
+ height: 78,
26
+ marginRight: 16
27
+ },
28
+ title: {
29
+ fontSize: 12,
30
+ color: '#000',
31
+ textAlign: 'left'
32
+ },
33
+ ctaTitle: {
34
+ textDecoration: 'underline',
35
+ fontSize: 12,
36
+ fontWeight: 'bold',
37
+ color: '#000',
38
+ textAlign: 'left',
39
+ width: 150,
40
+ height: 20
41
+ }
42
+ }
43
+ },
19
44
  style: {
20
- padding: '7px',
21
- display: 'flex',
22
- background: '#fff',
23
- borderRadius: '3px'
45
+ borderRadius: 4,
46
+ width: 260,
47
+ height: 86,
48
+ padding: 4,
49
+ backgroundColor: 'rgba(255,255,255,0.75)'
24
50
  }
25
51
  },
26
52
  w: 100,
@@ -1,10 +1,11 @@
1
- import React from 'react';
1
+ import React, { CSSProperties } from 'react';
2
2
  import { RecItemType } from '../../../../core/components/SxpPageRender/typing';
3
3
  export interface IImgProps {
4
4
  rec?: RecItemType;
5
5
  children: any;
6
6
  className?: any;
7
7
  onClick?: any;
8
+ style?: CSSProperties;
8
9
  }
9
10
  declare const _default: React.NamedExoticComponent<IImgProps>;
10
11
  export default _default;
@@ -6,9 +6,10 @@ const lodash_1 = require("lodash");
6
6
  const useOnScreen_1 = tslib_1.__importDefault(require("../../../../core/hooks/useOnScreen"));
7
7
  const hooks_1 = require("../../../../core/hooks");
8
8
  const EventProvider = (_a) => {
9
- var { rec, children, className, onClick } = _a, props = tslib_1.__rest(_a, ["rec", "children", "className", "onClick"]);
9
+ var { rec, children, className, onClick, style } = _a, props = tslib_1.__rest(_a, ["rec", "children", "className", "onClick", "style"]);
10
10
  const ref = (0, react_1.useRef)(null);
11
11
  const isOnScreen = (0, useOnScreen_1.default)(ref);
12
+ const { popupAni } = (0, hooks_1.useEditor)();
12
13
  const { setPopupDetailData, ctaEvent } = (0, hooks_1.useSxpDataSource)();
13
14
  (0, react_1.useEffect)(() => {
14
15
  var _a, _b;
@@ -29,7 +30,7 @@ const EventProvider = (_a) => {
29
30
  }, rec, item);
30
31
  setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(rec);
31
32
  onClick === null || onClick === void 0 ? void 0 : onClick();
32
- }, 1200);
33
- return (react_1.default.createElement("div", { ref: ref, className: className, onClick: handleClick }, children));
33
+ }, popupAni === null || popupAni === void 0 ? void 0 : popupAni.duration);
34
+ return (react_1.default.createElement("div", { ref: ref, className: className, style: style, onClick: handleClick }, children));
34
35
  };
35
36
  exports.default = (0, react_1.memo)(EventProvider);
@@ -0,0 +1,108 @@
1
+ declare const _default: ({
2
+ title: string;
3
+ child: ({
4
+ type: string;
5
+ label: string;
6
+ child: {
7
+ type: string;
8
+ name: string[];
9
+ addonAfter: string;
10
+ }[];
11
+ name?: undefined;
12
+ addonAfter?: undefined;
13
+ } | {
14
+ type: string;
15
+ label: string;
16
+ child: ({
17
+ type: string;
18
+ name: string[];
19
+ max: number;
20
+ addonAfter?: undefined;
21
+ } | {
22
+ type: string;
23
+ name: string[];
24
+ addonAfter: string;
25
+ max: number;
26
+ })[];
27
+ name?: undefined;
28
+ addonAfter?: undefined;
29
+ } | {
30
+ type: string;
31
+ label: string;
32
+ name: string[];
33
+ child?: undefined;
34
+ addonAfter?: undefined;
35
+ } | {
36
+ label: string;
37
+ type: string;
38
+ name: string[];
39
+ addonAfter: string;
40
+ child?: undefined;
41
+ })[];
42
+ type?: undefined;
43
+ } | {
44
+ title: string;
45
+ type: string;
46
+ child: ({
47
+ type: string;
48
+ label: string;
49
+ child: ({
50
+ type: string;
51
+ name: string[];
52
+ options?: undefined;
53
+ addonAfter?: undefined;
54
+ } | {
55
+ type: string;
56
+ options: {
57
+ label: string;
58
+ value: string;
59
+ }[];
60
+ name: string[];
61
+ addonAfter?: undefined;
62
+ } | {
63
+ type: string;
64
+ addonAfter: string;
65
+ name: string[];
66
+ options?: undefined;
67
+ })[];
68
+ name?: undefined;
69
+ } | {
70
+ label: string;
71
+ type: string;
72
+ name: string[];
73
+ child?: undefined;
74
+ })[];
75
+ } | {
76
+ title: string;
77
+ child: ({
78
+ type: string;
79
+ label: string;
80
+ name: string[];
81
+ child?: undefined;
82
+ } | {
83
+ type: string;
84
+ label: string;
85
+ child: ({
86
+ type: string;
87
+ name: string[];
88
+ options?: undefined;
89
+ addonAfter?: undefined;
90
+ } | {
91
+ type: string;
92
+ options: {
93
+ label: string;
94
+ value: string;
95
+ }[];
96
+ name: string[];
97
+ addonAfter?: undefined;
98
+ } | {
99
+ type: string;
100
+ addonAfter: string;
101
+ name: string[];
102
+ options?: undefined;
103
+ })[];
104
+ name?: undefined;
105
+ })[];
106
+ type?: undefined;
107
+ })[];
108
+ export default _default;