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

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 (182) hide show
  1. package/dist/index.cjs +3624 -1460
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +143 -245
  4. package/dist/index.js +3625 -1461
  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 +3624 -1460
  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.d.ts +2 -1
  19. package/es/core/components/SxpPageRender/Hashtag/index.js +3 -3
  20. package/es/core/components/SxpPageRender/Modal/index.d.ts +2 -0
  21. package/es/core/components/SxpPageRender/Modal/index.js +7 -4
  22. package/es/core/components/SxpPageRender/Navbar.d.ts +1 -0
  23. package/es/core/components/SxpPageRender/Navbar.js +3 -2
  24. package/es/core/components/SxpPageRender/Nudge/index.d.ts +24 -0
  25. package/es/core/components/SxpPageRender/Nudge/index.js +13 -0
  26. package/es/core/components/SxpPageRender/PictureGroup/index.js +11 -7
  27. package/es/core/components/SxpPageRender/Popup/index.js +3 -3
  28. package/es/core/components/SxpPageRender/VideoWidget/index.js +30 -21
  29. package/es/core/components/SxpPageRender/WaterFall/List.d.ts +2 -1
  30. package/es/core/components/SxpPageRender/WaterFall/List.js +24 -14
  31. package/es/core/components/SxpPageRender/WaterFall/WaterfallList.d.ts +2 -1
  32. package/es/core/components/SxpPageRender/WaterFall/WaterfallList.js +17 -14
  33. package/es/core/components/SxpPageRender/WaterFall/index.d.ts +2 -1
  34. package/es/core/components/SxpPageRender/WaterFall/index.js +4 -3
  35. package/es/core/components/SxpPageRender/WaterFall/preview.json +1242 -0
  36. package/es/core/components/SxpPageRender/index.d.ts +22 -1
  37. package/es/core/components/SxpPageRender/index.js +22 -19
  38. package/es/core/components/SxpPageRender/typing.d.ts +1 -0
  39. package/es/core/components/SxpPageRender/useIconLink.d.ts +1 -1
  40. package/es/core/components/SxpPageRender/useIconLink.js +8 -3
  41. package/es/core/context/EditorContext.d.ts +5 -0
  42. package/es/core/context/EditorContext.js +21 -3
  43. package/es/core/context/EditorDataProvider.d.ts +3 -1
  44. package/es/core/context/EditorDataProvider.js +5 -2
  45. package/es/core/context/SxpDataSourceProvider.d.ts +2 -0
  46. package/es/core/context/SxpDataSourceProvider.js +8 -4
  47. package/es/core/create.d.ts +1 -1
  48. package/es/materials/sxp/HashTag/index.d.ts +14 -0
  49. package/es/materials/sxp/HashTag/index.js +6 -0
  50. package/es/materials/sxp/HashTag/material.d.ts +2 -0
  51. package/es/materials/sxp/HashTag/material.js +52 -0
  52. package/es/materials/sxp/HashTag/settingRender.d.ts +122 -0
  53. package/es/materials/sxp/HashTag/settingRender.js +153 -0
  54. package/es/materials/sxp/index.d.ts +1 -0
  55. package/es/materials/sxp/index.js +1 -0
  56. package/es/materials/sxp/popup/CommodityDetail/index.d.ts +20 -1
  57. package/es/materials/sxp/popup/CommodityDetail/index.js +44 -21
  58. package/es/materials/sxp/popup/CommodityDetail/material.js +36 -1
  59. package/es/materials/sxp/popup/CommodityDetail/settingRender.d.ts +134 -0
  60. package/es/materials/sxp/popup/CommodityDetail/settingRender.js +167 -0
  61. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +13 -1
  62. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +20 -17
  63. package/es/materials/sxp/popup/CommodityDetailDiroNew/material.js +46 -1
  64. package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +134 -0
  65. package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +171 -0
  66. package/es/materials/sxp/popup/index.d.ts +0 -1
  67. package/es/materials/sxp/popup/index.js +0 -1
  68. package/es/materials/sxp/template/Appoint/index.d.ts +2 -0
  69. package/es/materials/sxp/template/Appoint/index.js +4 -18
  70. package/es/materials/sxp/template/Appoint/material.js +22 -6
  71. package/es/materials/sxp/template/Commodity/index.d.ts +2 -0
  72. package/es/materials/sxp/template/Commodity/index.js +5 -22
  73. package/es/materials/sxp/template/Commodity/material.js +31 -6
  74. package/es/materials/sxp/template/CommodityDiro/index.d.ts +2 -0
  75. package/es/materials/sxp/template/CommodityDiro/index.js +5 -24
  76. package/es/materials/sxp/template/CommodityDiro/material.js +30 -5
  77. package/es/materials/sxp/template/CommodityDiroNew/index.d.ts +2 -0
  78. package/es/materials/sxp/template/CommodityDiroNew/index.js +5 -24
  79. package/es/materials/sxp/template/CommodityDiroNew/material.js +32 -6
  80. package/es/materials/sxp/template/Link/index.d.ts +2 -0
  81. package/es/materials/sxp/template/Link/index.js +4 -13
  82. package/es/materials/sxp/template/Link/material.js +22 -5
  83. package/es/materials/sxp/template/MultiCommodity/index.d.ts +2 -0
  84. package/es/materials/sxp/template/MultiCommodity/index.js +8 -24
  85. package/es/materials/sxp/template/MultiCommodity/material.js +30 -5
  86. package/es/materials/sxp/template/MultiCommodityDiro/index.d.ts +2 -0
  87. package/es/materials/sxp/template/MultiCommodityDiro/index.js +8 -27
  88. package/es/materials/sxp/template/MultiCommodityDiro/material.js +31 -6
  89. package/es/materials/sxp/template/MultiCommodityDiroNew/index.d.ts +2 -0
  90. package/es/materials/sxp/template/MultiCommodityDiroNew/index.js +8 -25
  91. package/es/materials/sxp/template/MultiCommodityDiroNew/material.js +32 -6
  92. package/es/materials/sxp/template/components/EventProvider.d.ts +2 -1
  93. package/es/materials/sxp/template/components/EventProvider.js +5 -4
  94. package/es/materials/sxp/template/components/settingRender.d.ts +123 -0
  95. package/es/materials/sxp/template/components/settingRender.js +215 -0
  96. package/es/materials/sxp/template/components/typing.d.ts +6 -0
  97. package/es/materials/sxp/template/components/typing.js +1 -0
  98. package/lib/core/components/SxpPageCore/index.d.ts +1 -0
  99. package/lib/core/components/SxpPageCore/index.js +2 -2
  100. package/lib/core/components/SxpPageRender/ExpandableText.d.ts +1 -0
  101. package/lib/core/components/SxpPageRender/ExpandableText.js +17 -10
  102. package/lib/core/components/SxpPageRender/Hashtag/index.d.ts +2 -1
  103. package/lib/core/components/SxpPageRender/Hashtag/index.js +3 -3
  104. package/lib/core/components/SxpPageRender/Modal/index.d.ts +2 -0
  105. package/lib/core/components/SxpPageRender/Modal/index.js +7 -4
  106. package/lib/core/components/SxpPageRender/Navbar.d.ts +1 -0
  107. package/lib/core/components/SxpPageRender/Navbar.js +3 -2
  108. package/lib/core/components/SxpPageRender/Nudge/index.d.ts +24 -0
  109. package/lib/core/components/SxpPageRender/Nudge/index.js +16 -0
  110. package/lib/core/components/SxpPageRender/PictureGroup/index.js +10 -6
  111. package/lib/core/components/SxpPageRender/Popup/index.js +3 -3
  112. package/lib/core/components/SxpPageRender/VideoWidget/index.js +30 -21
  113. package/lib/core/components/SxpPageRender/WaterFall/List.d.ts +2 -1
  114. package/lib/core/components/SxpPageRender/WaterFall/List.js +23 -14
  115. package/lib/core/components/SxpPageRender/WaterFall/WaterfallList.d.ts +2 -1
  116. package/lib/core/components/SxpPageRender/WaterFall/WaterfallList.js +15 -13
  117. package/lib/core/components/SxpPageRender/WaterFall/index.d.ts +2 -1
  118. package/lib/core/components/SxpPageRender/WaterFall/index.js +4 -3
  119. package/lib/core/components/SxpPageRender/WaterFall/preview.json +1242 -0
  120. package/lib/core/components/SxpPageRender/index.d.ts +22 -1
  121. package/lib/core/components/SxpPageRender/index.js +22 -19
  122. package/lib/core/components/SxpPageRender/typing.d.ts +1 -0
  123. package/lib/core/components/SxpPageRender/useIconLink.d.ts +1 -1
  124. package/lib/core/components/SxpPageRender/useIconLink.js +8 -3
  125. package/lib/core/context/EditorContext.d.ts +5 -0
  126. package/lib/core/context/EditorContext.js +21 -3
  127. package/lib/core/context/EditorDataProvider.d.ts +3 -1
  128. package/lib/core/context/EditorDataProvider.js +4 -1
  129. package/lib/core/context/SxpDataSourceProvider.d.ts +2 -0
  130. package/lib/core/context/SxpDataSourceProvider.js +8 -4
  131. package/lib/core/create.d.ts +1 -1
  132. package/lib/materials/sxp/HashTag/index.d.ts +14 -0
  133. package/lib/materials/sxp/HashTag/index.js +9 -0
  134. package/lib/materials/sxp/HashTag/material.d.ts +2 -0
  135. package/lib/materials/sxp/HashTag/material.js +56 -0
  136. package/lib/materials/sxp/HashTag/settingRender.d.ts +122 -0
  137. package/lib/materials/sxp/HashTag/settingRender.js +155 -0
  138. package/lib/materials/sxp/index.d.ts +1 -0
  139. package/lib/materials/sxp/index.js +1 -0
  140. package/lib/materials/sxp/popup/CommodityDetail/index.d.ts +20 -1
  141. package/lib/materials/sxp/popup/CommodityDetail/index.js +43 -20
  142. package/lib/materials/sxp/popup/CommodityDetail/material.js +36 -1
  143. package/lib/materials/sxp/popup/CommodityDetail/settingRender.d.ts +134 -0
  144. package/lib/materials/sxp/popup/CommodityDetail/settingRender.js +169 -0
  145. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +13 -1
  146. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +20 -17
  147. package/lib/materials/sxp/popup/CommodityDetailDiroNew/material.js +46 -1
  148. package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +134 -0
  149. package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +173 -0
  150. package/lib/materials/sxp/popup/index.d.ts +0 -1
  151. package/lib/materials/sxp/popup/index.js +0 -1
  152. package/lib/materials/sxp/template/Appoint/index.d.ts +2 -0
  153. package/lib/materials/sxp/template/Appoint/index.js +4 -18
  154. package/lib/materials/sxp/template/Appoint/material.js +22 -6
  155. package/lib/materials/sxp/template/Commodity/index.d.ts +2 -0
  156. package/lib/materials/sxp/template/Commodity/index.js +5 -22
  157. package/lib/materials/sxp/template/Commodity/material.js +31 -6
  158. package/lib/materials/sxp/template/CommodityDiro/index.d.ts +2 -0
  159. package/lib/materials/sxp/template/CommodityDiro/index.js +5 -24
  160. package/lib/materials/sxp/template/CommodityDiro/material.js +30 -5
  161. package/lib/materials/sxp/template/CommodityDiroNew/index.d.ts +2 -0
  162. package/lib/materials/sxp/template/CommodityDiroNew/index.js +5 -24
  163. package/lib/materials/sxp/template/CommodityDiroNew/material.js +32 -6
  164. package/lib/materials/sxp/template/Link/index.d.ts +2 -0
  165. package/lib/materials/sxp/template/Link/index.js +4 -13
  166. package/lib/materials/sxp/template/Link/material.js +22 -5
  167. package/lib/materials/sxp/template/MultiCommodity/index.d.ts +2 -0
  168. package/lib/materials/sxp/template/MultiCommodity/index.js +7 -23
  169. package/lib/materials/sxp/template/MultiCommodity/material.js +30 -5
  170. package/lib/materials/sxp/template/MultiCommodityDiro/index.d.ts +2 -0
  171. package/lib/materials/sxp/template/MultiCommodityDiro/index.js +7 -26
  172. package/lib/materials/sxp/template/MultiCommodityDiro/material.js +31 -6
  173. package/lib/materials/sxp/template/MultiCommodityDiroNew/index.d.ts +2 -0
  174. package/lib/materials/sxp/template/MultiCommodityDiroNew/index.js +7 -24
  175. package/lib/materials/sxp/template/MultiCommodityDiroNew/material.js +32 -6
  176. package/lib/materials/sxp/template/components/EventProvider.d.ts +2 -1
  177. package/lib/materials/sxp/template/components/EventProvider.js +4 -3
  178. package/lib/materials/sxp/template/components/settingRender.d.ts +123 -0
  179. package/lib/materials/sxp/template/components/settingRender.js +217 -0
  180. package/lib/materials/sxp/template/components/typing.d.ts +6 -0
  181. package/lib/materials/sxp/template/components/typing.js +2 -0
  182. package/package.json +1 -1
@@ -0,0 +1,153 @@
1
+ export default [
2
+ {
3
+ title: '卡片样式',
4
+ child: [
5
+ {
6
+ type: 'Number',
7
+ label: '文本行数',
8
+ name: ['props', 'lineClamp']
9
+ },
10
+ {
11
+ type: 'Number',
12
+ label: '上下边距',
13
+ name: ['props', 'space'],
14
+ addonAfter: 'px'
15
+ }
16
+ ]
17
+ },
18
+ {
19
+ title: '文本设置',
20
+ child: [
21
+ {
22
+ name: ['props', 'textStyles'],
23
+ type: 'SelectLinkage',
24
+ child: [
25
+ {
26
+ label: '字段',
27
+ type: 'Select',
28
+ options: [
29
+ {
30
+ label: 'hashtag标题',
31
+ value: 'hashTagTitle'
32
+ },
33
+ {
34
+ label: 'hashtag描述',
35
+ value: 'hashTagDesc'
36
+ },
37
+ {
38
+ label: '标题',
39
+ value: 'title'
40
+ },
41
+ {
42
+ label: '价格',
43
+ value: 'price'
44
+ }
45
+ ],
46
+ name: ['props', 'textStyles', 'field'],
47
+ initialValue: 'title'
48
+ },
49
+ {
50
+ type: 'Group',
51
+ label: '标题字体',
52
+ child: [
53
+ {
54
+ type: 'Color',
55
+ name: ['color']
56
+ },
57
+ {
58
+ type: 'Select',
59
+ options: [{ label: '黑体', value: '黑体' }],
60
+ name: ['fontFamily']
61
+ },
62
+ {
63
+ type: 'Number',
64
+ addonAfter: 'px',
65
+ name: ['fontSize']
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ label: '标题样式',
71
+ type: 'TextStyle'
72
+ },
73
+ {
74
+ label: '标题对齐',
75
+ type: 'TextAlign'
76
+ }
77
+ ]
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ title: '按钮样式',
83
+ child: [
84
+ {
85
+ type: 'Color',
86
+ label: '背景色',
87
+ name: ['props', 'buttonStyle', 'backgroundColor'],
88
+ initialValue: '#000'
89
+ },
90
+ {
91
+ type: 'Group',
92
+ label: '尺寸',
93
+ child: [
94
+ {
95
+ type: 'Number',
96
+ name: ['props', 'buttonStyle', 'height'],
97
+ addonAfter: 'H'
98
+ }
99
+ ]
100
+ },
101
+ {
102
+ type: 'Group',
103
+ label: '圆角',
104
+ child: [
105
+ {
106
+ type: 'Slider',
107
+ name: ['props', 'buttonStyle', 'borderRadius'],
108
+ max: 100
109
+ },
110
+ {
111
+ type: 'Number',
112
+ name: ['props', 'buttonStyle', 'borderRadius'],
113
+ addonAfter: 'px',
114
+ max: 100
115
+ }
116
+ ]
117
+ },
118
+ {
119
+ type: 'TextMargin',
120
+ name: ['props', 'buttonStyle']
121
+ },
122
+ {
123
+ type: 'Group',
124
+ label: '字体',
125
+ child: [
126
+ {
127
+ type: 'Color',
128
+ name: ['props', 'buttonStyle', 'color'],
129
+ initialValue: '#fff'
130
+ },
131
+ {
132
+ type: 'Select',
133
+ name: ['props', 'buttonStyle', 'fontFamily'],
134
+ options: [{ label: '黑体', value: '黑体' }]
135
+ },
136
+ {
137
+ type: 'Number',
138
+ name: ['props', 'buttonStyle', 'fontSize'],
139
+ addonAfter: 'px'
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ type: 'TextStyle',
145
+ name: ['props', 'buttonStyle']
146
+ },
147
+ {
148
+ type: 'TextAlign',
149
+ name: ['props', 'buttonStyle']
150
+ }
151
+ ]
152
+ }
153
+ ];
@@ -1,2 +1,3 @@
1
1
  export * from './popup';
2
2
  export * from './template';
3
+ export * from './HashTag/material';
@@ -1,2 +1,3 @@
1
1
  export * from './popup';
2
2
  export * from './template';
3
+ export * from './HashTag/material';
@@ -1,5 +1,6 @@
1
- import React from 'react';
1
+ import React, { CSSProperties } from 'react';
2
2
  import { IEditorContext } from '../../../../core/context/EditorContext';
3
+ import { RecItemType } from '../../../../core/components/SxpPageRender/typing';
3
4
  import './index.less';
4
5
  export interface ICommodityDetailProps {
5
6
  content?: string;
@@ -9,6 +10,24 @@ export interface ICommodityDetailProps {
9
10
  schema?: IEditorContext['schema'];
10
11
  isDefault?: boolean;
11
12
  bottom_image?: string;
13
+ tipText?: {
14
+ foldText?: string;
15
+ unfoldText?: string;
16
+ };
17
+ isPost?: boolean;
18
+ viewTime?: any;
19
+ rec?: RecItemType;
20
+ swiper: {
21
+ dotsAlign: 'left' | 'center';
22
+ delay: number;
23
+ };
24
+ commodityStyles?: {
25
+ title: CSSProperties;
26
+ collection: CSSProperties;
27
+ price: CSSProperties;
28
+ info: CSSProperties;
29
+ };
30
+ buttonStyle?: CSSProperties;
12
31
  }
13
32
  declare const _default: React.NamedExoticComponent<ICommodityDetailProps>;
14
33
  export default _default;
@@ -1,24 +1,30 @@
1
1
  import { __rest } from "tslib";
2
2
  import { css } from '@emotion/css';
3
- import React, { memo, useEffect, useMemo, useRef } from 'react';
3
+ import React, { memo, useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { useSxpDataSource } from '../../../../core/hooks';
5
5
  import './index.less';
6
6
  import { Autoplay, Pagination } from 'swiper/modules';
7
7
  import { Swiper, SwiperSlide } from 'swiper/react';
8
8
  import { useEventReport } from '../../../../core/hooks/useEventReport';
9
+ import Modal from '../../../../core/components/SxpPageRender/Modal';
10
+ import ExpandableText from '../../../../core/components/SxpPageRender/ExpandableText';
9
11
  const CommodityDetail = (_a) => {
10
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
11
- var { content, style, bgImg, onClick, schema, isDefault, bottom_image } = _a, props = __rest(_a, ["content", "style", "bgImg", "onClick", "schema", "isDefault", "bottom_image"]);
12
+ var _b, _c, _d, _e, _f, _g, _h, _j;
13
+ var { content, style, bgImg, onClick, schema, isDefault, bottom_image, tipText, isPost, viewTime, rec, swiper, commodityStyles, buttonStyle } = _a, props = __rest(_a, ["content", "style", "bgImg", "onClick", "schema", "isDefault", "bottom_image", "tipText", "isPost", "viewTime", "rec", "swiper", "commodityStyles", "buttonStyle"]);
12
14
  const { sxpParameter } = useSxpDataSource();
13
15
  const { popupDetailData, bffEventReport, isPreview, waterFallData } = useSxpDataSource();
14
16
  const { jumpToWeb, productView } = useEventReport();
15
17
  const curTimeRef = useRef(null);
16
- const product = (_b = popupDetailData === null || popupDetailData === void 0 ? void 0 : popupDetailData.video) === null || _b === void 0 ? void 0 : _b.bindProduct;
17
- const cta = (_d = (_c = popupDetailData === null || popupDetailData === void 0 ? void 0 : popupDetailData.video) === null || _c === void 0 ? void 0 : _c.bindProduct) === null || _d === void 0 ? void 0 : _d.bindCta;
18
+ const [showModal, setShowModal] = useState(false);
19
+ const data = isPost ? rec : popupDetailData;
20
+ const product = isPost ? data === null || data === void 0 ? void 0 : data.product : (_b = data === null || data === void 0 ? void 0 : data.video) === null || _b === void 0 ? void 0 : _b.bindProduct;
21
+ const cta = isPost ? (_c = data === null || data === void 0 ? void 0 : data.product) === null || _c === void 0 ? void 0 : _c.bindCta : (_e = (_d = data === null || data === void 0 ? void 0 : data.video) === null || _d === void 0 ? void 0 : _d.bindProduct) === null || _e === void 0 ? void 0 : _e.bindCta;
18
22
  const handleLink = () => {
19
23
  if (product === null || product === void 0 ? void 0 : product.link) {
20
24
  jumpToWeb(popupDetailData, product, cta);
21
- productView(popupDetailData, product, cta, curTimeRef.current);
25
+ if (!isPost) {
26
+ productView(data, product, cta, viewTime || curTimeRef.current);
27
+ }
22
28
  window.location.href = window.getJointUtmLink(product.link);
23
29
  }
24
30
  };
@@ -44,11 +50,33 @@ const CommodityDetail = (_a) => {
44
50
  }
45
51
  }, [product === null || product === void 0 ? void 0 : product.price, product === null || product === void 0 ? void 0 : product.currency]);
46
52
  const width = isPreview ? 375 : window.innerWidth;
53
+ const renderContent = ({ isPost }) => {
54
+ var _a, _b, _c;
55
+ return (React.createElement("div", { className: 'pb-commondity-content' },
56
+ React.createElement("div", { className: 'pb-commondity-content-collection', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection }, (_a = product === null || product === void 0 ? void 0 : product.collection) !== null && _a !== void 0 ? _a : 'Tiffany Lock'),
57
+ React.createElement("div", { className: 'pb-commondity-content-title', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title }, (_b = product === null || product === void 0 ? void 0 : product.title) !== null && _b !== void 0 ? _b : 'Pendant in Yellow Gold with Diamonds, Medium'),
58
+ React.createElement("div", { className: 'pb-commondity-content-price', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price }, priceText),
59
+ React.createElement(ExpandableText, { foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, onClick: () => setShowModal(true), isPost: isPost, text: (_c = product === null || product === void 0 ? void 0 : product.info) !== null && _c !== void 0 ? _c : `The design inspiration of Tiffany Lock series comes from the power of connection and inclusiveness, and the
60
+ bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
61
+ collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
62
+ necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
63
+ 18-karat gold, this necklace is embellished with hand-set diamonds.`, maxStr: 79, className: 'pb-commondity-content-info', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.info })));
64
+ };
65
+ const renderBtn = () => {
66
+ var _a;
67
+ return (React.createElement(React.Fragment, null, (isDefault || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("button", { onClick: handleLink, className: 'pb-commondity-btn', style: buttonStyle }, (_a = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _a !== void 0 ? _a : 'Purchase on Website'))));
68
+ };
47
69
  return (React.createElement("div", { className: 'pb-commondity' },
48
70
  React.createElement("div", Object.assign({ className: css(Object.assign({}, style)) }, props),
49
- product && ((_e = product === null || product === void 0 ? void 0 : product.homePage) === null || _e === void 0 ? void 0 : _e.length) > 0 && (React.createElement(Swiper, { height: width, modules: [Pagination, Autoplay], pagination: { clickable: true, bulletActiveClass: 'swipe-item-active-bullet' }, loop: true, autoplay: {
50
- delay: 3000
51
- } }, (_f = product === null || product === void 0 ? void 0 : product.homePage) === null || _f === void 0 ? void 0 : _f.map((src) => {
71
+ product && ((_f = product === null || product === void 0 ? void 0 : product.homePage) === null || _f === void 0 ? void 0 : _f.length) > 0 && (React.createElement(Swiper, { height: width, modules: [Pagination, Autoplay], pagination: {
72
+ clickable: true,
73
+ bulletActiveClass: 'swipe-item-active-bullet',
74
+ clickableClass: (swiper === null || swiper === void 0 ? void 0 : swiper.dotsAlign) === 'left'
75
+ ? 'commondityDetail-swiper-clickable-left'
76
+ : 'commondityDetail-swiper-clickable-center'
77
+ }, loop: true, autoplay: {
78
+ delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
79
+ } }, (_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.map((src) => {
52
80
  return (React.createElement(SwiperSlide, { key: src },
53
81
  React.createElement("div", { style: {
54
82
  overflow: 'hidden',
@@ -57,7 +85,7 @@ const CommodityDetail = (_a) => {
57
85
  } },
58
86
  React.createElement("img", { src: src, style: { height: '100%', width: '100%', objectFit: 'cover' } }))));
59
87
  }))),
60
- !((_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.length) && (React.createElement("div", { className: css({
88
+ !((_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.length) && (React.createElement("div", { className: css({
61
89
  position: 'relative',
62
90
  height: 0,
63
91
  width: '100%',
@@ -70,16 +98,11 @@ const CommodityDetail = (_a) => {
70
98
  top: 0,
71
99
  objectFit: 'cover',
72
100
  width: '100%'
73
- }), src: (_h = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _h !== void 0 ? _h : bottom_image, alt: '' }))),
74
- React.createElement("div", { className: 'pb-commondity-content' },
75
- React.createElement("div", { className: 'pb-commondity-content-collection' }, (_j = product === null || product === void 0 ? void 0 : product.collection) !== null && _j !== void 0 ? _j : 'Tiffany Lock'),
76
- React.createElement("div", { className: 'pb-commondity-content-title' }, (_k = product === null || product === void 0 ? void 0 : product.title) !== null && _k !== void 0 ? _k : 'Pendant in Yellow Gold with Diamonds, Medium'),
77
- React.createElement("div", { className: 'pb-commondity-content-price' }, priceText),
78
- React.createElement("div", { className: 'pb-commondity-content-info' }, (_l = product === null || product === void 0 ? void 0 : product.info) !== null && _l !== void 0 ? _l : `The design inspiration of Tiffany Lock series comes from the power of connection and inclusiveness, and the
79
- bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
80
- collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
81
- necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
82
- 18-karat gold, this necklace is embellished with hand-set diamonds.`))),
83
- (isDefault || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("button", { onClick: handleLink, className: 'pb-commondity-btn' }, (_m = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _m !== void 0 ? _m : 'Purchase on Website'))));
101
+ }), src: (_j = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _j !== void 0 ? _j : bottom_image, alt: '' }))),
102
+ renderContent({ isPost })),
103
+ renderBtn(),
104
+ React.createElement(Modal, { visible: showModal, onClose: () => setShowModal(false) },
105
+ renderContent({ isPost: false }),
106
+ renderBtn())));
84
107
  };
85
108
  export default memo(CommodityDetail);
@@ -1,3 +1,4 @@
1
+ import settingRender from './settingRender';
1
2
  import CommodityDetailComponent from '.';
2
3
  import { createMaterial } from '../../../../core/create';
3
4
  const CommodityDetail = createMaterial(CommodityDetailComponent, {
@@ -5,8 +6,42 @@ const CommodityDetail = createMaterial(CommodityDetailComponent, {
5
6
  icon: '',
6
7
  category: 'popup',
7
8
  type: 'CommodityDetail',
9
+ related: {
10
+ settingRender
11
+ },
8
12
  defaulSetting: {
9
- props: {},
13
+ props: {
14
+ swiper: {
15
+ dotsAlign: 'center',
16
+ delay: 3
17
+ },
18
+ commodityStyles: {
19
+ price: {
20
+ color: '#000',
21
+ fontSize: 18
22
+ },
23
+ title: {
24
+ color: '#000',
25
+ fontSize: 23
26
+ },
27
+ collection: {
28
+ fontSize: 12,
29
+ color: '#000'
30
+ },
31
+ info: {
32
+ color: 'gray',
33
+ fontSize: 12
34
+ }
35
+ },
36
+ buttonStyle: {
37
+ backgroundColor: '#000',
38
+ fontSize: 12,
39
+ height: 45,
40
+ fontWeight: 'bold',
41
+ textAlign: 'center',
42
+ color: 'rgba(255, 255, 255, 0.9)'
43
+ }
44
+ },
10
45
  style: {}
11
46
  },
12
47
  w: 100,
@@ -0,0 +1,134 @@
1
+ declare const _default: ({
2
+ title: string;
3
+ child: ({
4
+ type: string;
5
+ label: string;
6
+ options: {
7
+ label: string;
8
+ value: string;
9
+ }[];
10
+ name: string[];
11
+ addonAfter?: undefined;
12
+ } | {
13
+ type: string;
14
+ name: string[];
15
+ addonAfter: string;
16
+ label?: undefined;
17
+ options?: undefined;
18
+ })[];
19
+ } | {
20
+ title: string;
21
+ child: {
22
+ name: string[];
23
+ type: string;
24
+ child: ({
25
+ label: string;
26
+ type: string;
27
+ options: {
28
+ label: string;
29
+ value: string;
30
+ }[];
31
+ name: string[];
32
+ initialValue: string;
33
+ child?: undefined;
34
+ } | {
35
+ type: string;
36
+ label: string;
37
+ child: ({
38
+ type: string;
39
+ name: string[];
40
+ options?: undefined;
41
+ addonAfter?: undefined;
42
+ } | {
43
+ type: string;
44
+ options: {
45
+ label: string;
46
+ value: string;
47
+ }[];
48
+ name: string[];
49
+ addonAfter?: undefined;
50
+ } | {
51
+ type: string;
52
+ addonAfter: string;
53
+ name: string[];
54
+ options?: undefined;
55
+ })[];
56
+ options?: undefined;
57
+ name?: undefined;
58
+ initialValue?: undefined;
59
+ } | {
60
+ label: string;
61
+ type: string;
62
+ options?: undefined;
63
+ name?: undefined;
64
+ initialValue?: undefined;
65
+ child?: undefined;
66
+ } | {
67
+ label: string;
68
+ type: string;
69
+ name: string[];
70
+ options?: undefined;
71
+ initialValue?: undefined;
72
+ child?: undefined;
73
+ })[];
74
+ }[];
75
+ } | {
76
+ title: string;
77
+ child: ({
78
+ type: string;
79
+ label: string;
80
+ name: string[];
81
+ initialValue: string;
82
+ child?: undefined;
83
+ } | {
84
+ type: string;
85
+ label: string;
86
+ child: ({
87
+ type: string;
88
+ name: string[];
89
+ max: number;
90
+ addonAfter?: undefined;
91
+ } | {
92
+ type: string;
93
+ name: string[];
94
+ addonAfter: string;
95
+ max: number;
96
+ })[];
97
+ name?: undefined;
98
+ initialValue?: undefined;
99
+ } | {
100
+ type: string;
101
+ name: string[];
102
+ label?: undefined;
103
+ initialValue?: undefined;
104
+ child?: undefined;
105
+ } | {
106
+ type: string;
107
+ label: string;
108
+ child: ({
109
+ type: string;
110
+ name: string[];
111
+ initialValue: string;
112
+ options?: undefined;
113
+ addonAfter?: undefined;
114
+ } | {
115
+ type: string;
116
+ name: string[];
117
+ options: {
118
+ label: string;
119
+ value: string;
120
+ }[];
121
+ initialValue?: undefined;
122
+ addonAfter?: undefined;
123
+ } | {
124
+ type: string;
125
+ name: string[];
126
+ addonAfter: string;
127
+ initialValue?: undefined;
128
+ options?: undefined;
129
+ })[];
130
+ name?: undefined;
131
+ initialValue?: undefined;
132
+ })[];
133
+ })[];
134
+ export default _default;
@@ -0,0 +1,167 @@
1
+ export default [
2
+ {
3
+ title: '商品图片',
4
+ child: [
5
+ {
6
+ type: 'Radius',
7
+ label: '轮播指示器',
8
+ options: [
9
+ {
10
+ label: '居左',
11
+ value: 'left'
12
+ },
13
+ {
14
+ label: '居中',
15
+ value: 'center'
16
+ }
17
+ ],
18
+ name: ['props', 'swiper', 'dotsAlign']
19
+ },
20
+ {
21
+ type: 'Number',
22
+ name: ['props', 'swiper', 'delay'],
23
+ addonAfter: 's'
24
+ }
25
+ ]
26
+ },
27
+ {
28
+ title: '商品文本',
29
+ child: [
30
+ {
31
+ name: ['props', 'commodityStyles'],
32
+ type: 'SelectLinkage',
33
+ child: [
34
+ {
35
+ label: '字段',
36
+ type: 'Select',
37
+ options: [
38
+ {
39
+ label: '商品名称',
40
+ value: 'title'
41
+ },
42
+ {
43
+ label: '系列名称',
44
+ value: 'collection'
45
+ },
46
+ {
47
+ label: '价格',
48
+ value: 'price'
49
+ },
50
+ {
51
+ label: '商品描述',
52
+ value: 'info'
53
+ }
54
+ ],
55
+ name: ['props', 'commodityStyles', 'field'],
56
+ initialValue: 'title'
57
+ },
58
+ {
59
+ type: 'Group',
60
+ label: '标题字体',
61
+ child: [
62
+ {
63
+ type: 'Color',
64
+ name: ['color']
65
+ },
66
+ {
67
+ type: 'Select',
68
+ options: [{ label: '黑体', value: '黑体' }],
69
+ name: ['fontFamily']
70
+ },
71
+ {
72
+ type: 'Number',
73
+ addonAfter: 'px',
74
+ name: ['fontSize']
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ label: '标题样式',
80
+ type: 'TextStyle'
81
+ },
82
+ {
83
+ label: '标题对齐',
84
+ type: 'TextAlign'
85
+ },
86
+ {
87
+ label: '默认行数',
88
+ type: 'Number',
89
+ name: ['lineClamp']
90
+ }
91
+ ]
92
+ }
93
+ ]
94
+ },
95
+ {
96
+ title: '购买按钮样式',
97
+ child: [
98
+ {
99
+ type: 'Color',
100
+ label: '背景色',
101
+ name: ['props', 'buttonStyle', 'backgroundColor'],
102
+ initialValue: '#000'
103
+ },
104
+ {
105
+ type: 'Group',
106
+ label: '尺寸',
107
+ child: [
108
+ {
109
+ type: 'Number',
110
+ name: ['props', 'buttonStyle', 'height'],
111
+ addonAfter: 'H'
112
+ }
113
+ ]
114
+ },
115
+ {
116
+ type: 'Group',
117
+ label: '圆角',
118
+ child: [
119
+ {
120
+ type: 'Slider',
121
+ name: ['props', 'buttonStyle', 'borderRadius'],
122
+ max: 100
123
+ },
124
+ {
125
+ type: 'Number',
126
+ name: ['props', 'buttonStyle', 'borderRadius'],
127
+ addonAfter: 'px',
128
+ max: 100
129
+ }
130
+ ]
131
+ },
132
+ {
133
+ type: 'TextMargin',
134
+ name: ['props', 'buttonStyle']
135
+ },
136
+ {
137
+ type: 'Group',
138
+ label: '字体',
139
+ child: [
140
+ {
141
+ type: 'Color',
142
+ name: ['props', 'buttonStyle', 'color'],
143
+ initialValue: '#fff'
144
+ },
145
+ {
146
+ type: 'Select',
147
+ name: ['props', 'buttonStyle', 'fontFamily'],
148
+ options: [{ label: '黑体', value: '黑体' }]
149
+ },
150
+ {
151
+ type: 'Number',
152
+ name: ['props', 'buttonStyle', 'fontSize'],
153
+ addonAfter: 'px'
154
+ }
155
+ ]
156
+ },
157
+ {
158
+ type: 'TextStyle',
159
+ name: ['props', 'buttonStyle']
160
+ },
161
+ {
162
+ type: 'TextAlign',
163
+ name: ['props', 'buttonStyle']
164
+ }
165
+ ]
166
+ }
167
+ ];
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { CSSProperties } from 'react';
2
2
  import { IEditorContext } from '../../../../core/context/EditorContext';
3
3
  import { RecItemType } from '../../../../core/components/SxpPageRender/typing';
4
4
  import './index.less';
@@ -17,6 +17,18 @@ export interface ICommodityDetailDiroNewProps {
17
17
  foldText?: string;
18
18
  unfoldText?: string;
19
19
  };
20
+ swiper: {
21
+ dotsAlign: 'left' | 'center';
22
+ delay: number;
23
+ };
24
+ commodityStyles?: {
25
+ title: CSSProperties;
26
+ collection: CSSProperties;
27
+ price: CSSProperties;
28
+ taxInfo: CSSProperties;
29
+ info: CSSProperties;
30
+ };
31
+ buttonStyle?: CSSProperties;
20
32
  }
21
33
  declare const _default: React.NamedExoticComponent<ICommodityDetailDiroNewProps>;
22
34
  export default _default;