pb-sxp-ui 1.1.2 → 1.2.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.
- package/dist/index.cjs +2264 -864
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +356 -175
- package/dist/index.js +2264 -864
- package/dist/index.js.map +1 -1
- package/dist/index.min.cjs +3 -3
- package/dist/index.min.cjs.map +1 -1
- package/dist/index.min.js +3 -3
- package/dist/index.min.js.map +1 -1
- package/dist/pb-ui.js +2264 -864
- package/dist/pb-ui.js.map +1 -1
- package/dist/pb-ui.min.js +3 -3
- package/dist/pb-ui.min.js.map +1 -1
- package/es/core/Pagebuilder/type.d.ts +1 -0
- package/es/core/components/SxpPageRender/FingerSwipeTip/index.d.ts +0 -1
- package/es/core/components/SxpPageRender/FingerSwipeTip/index.js +3 -3
- package/es/core/components/SxpPageRender/Hashtag/index.js +1 -3
- package/es/core/components/SxpPageRender/Modal/index.d.ts +3 -0
- package/es/core/components/SxpPageRender/Modal/index.js +70 -6
- package/es/core/components/SxpPageRender/Navbar.js +1 -1
- package/es/core/components/SxpPageRender/Popup/index.js +1 -1
- package/es/core/components/SxpPageRender/RenderCard.d.ts +1 -0
- package/es/core/components/SxpPageRender/RenderCard.js +16 -12
- package/es/core/components/SxpPageRender/VideoWidget/index.js +10 -13
- package/es/core/components/SxpPageRender/WaterFall/List.js +1 -1
- package/es/core/components/SxpPageRender/WaterFall/WaterfallList.js +1 -1
- package/es/core/components/SxpPageRender/index.d.ts +3 -3
- package/es/core/components/SxpPageRender/index.js +51 -17
- package/es/core/components/SxpPageRender/typing.d.ts +1 -0
- package/es/core/context/SxpDataSourceProvider.d.ts +1 -0
- package/es/core/context/SxpDataSourceProvider.js +6 -4
- package/es/core/utils/localStore.d.ts +3 -0
- package/es/core/utils/localStore.js +8 -0
- package/es/materials/sxp/HashTag/material.js +1 -2
- package/es/materials/sxp/cta/AniLink/index.d.ts +14 -0
- package/es/materials/sxp/cta/AniLink/index.js +59 -0
- package/es/materials/sxp/cta/AniLink/interactionRender.d.ts +42 -0
- package/es/materials/sxp/cta/AniLink/interactionRender.js +50 -0
- package/es/materials/sxp/cta/AniLink/material.d.ts +2 -0
- package/es/materials/sxp/cta/AniLink/material.js +38 -0
- package/es/materials/sxp/cta/AniLink/settingRender.d.ts +73 -0
- package/es/materials/sxp/cta/AniLink/settingRender.js +103 -0
- package/es/materials/sxp/cta/AniLinkPopup/index.d.ts +17 -0
- package/es/materials/sxp/cta/AniLinkPopup/index.js +66 -0
- package/es/materials/sxp/cta/AniLinkPopup/interactionRender.d.ts +42 -0
- package/es/materials/sxp/cta/AniLinkPopup/interactionRender.js +50 -0
- package/es/materials/sxp/cta/AniLinkPopup/material.d.ts +2 -0
- package/es/materials/sxp/cta/AniLinkPopup/material.js +52 -0
- package/es/materials/sxp/cta/AniLinkPopup/settingRender.d.ts +176 -0
- package/es/materials/sxp/cta/AniLinkPopup/settingRender.js +249 -0
- package/es/materials/sxp/cta/index.d.ts +2 -0
- package/es/materials/sxp/cta/index.js +2 -0
- package/es/materials/sxp/index.d.ts +1 -0
- package/es/materials/sxp/index.js +1 -0
- package/es/materials/sxp/popup/AppointForm/Form.js +1 -1
- package/es/materials/sxp/popup/CommodityDetail/index.d.ts +5 -0
- package/es/materials/sxp/popup/CommodityDetail/index.js +43 -26
- package/es/materials/sxp/popup/CommodityDetail/interactionRender.d.ts +9 -0
- package/es/materials/sxp/popup/CommodityDetail/interactionRender.js +12 -0
- package/es/materials/sxp/popup/CommodityDetail/material.js +3 -1
- package/es/materials/sxp/popup/CommodityDetail/settingRender.d.ts +37 -0
- package/es/materials/sxp/popup/CommodityDetail/settingRender.js +41 -0
- package/es/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +5 -0
- package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +11 -25
- package/es/materials/sxp/popup/CommodityDetailDiroNew/interactionRender.d.ts +9 -0
- package/es/materials/sxp/popup/CommodityDetailDiroNew/interactionRender.js +12 -0
- package/es/materials/sxp/popup/CommodityDetailDiroNew/material.js +3 -1
- package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +37 -0
- package/es/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +41 -0
- package/es/materials/sxp/popup/CommodityList/index.d.ts +28 -0
- package/es/materials/sxp/popup/CommodityList/index.js +56 -0
- package/es/materials/sxp/popup/CommodityList/interactionRender.d.ts +8 -0
- package/es/materials/sxp/popup/CommodityList/interactionRender.js +11 -0
- package/es/materials/sxp/popup/CommodityList/material.d.ts +2 -0
- package/es/materials/sxp/popup/CommodityList/material.js +51 -0
- package/es/materials/sxp/popup/CommodityList/settingRender.d.ts +151 -0
- package/es/materials/sxp/popup/CommodityList/settingRender.js +207 -0
- package/es/materials/sxp/popup/index.d.ts +1 -0
- package/es/materials/sxp/popup/index.js +1 -0
- package/es/materials/sxp/template/Link/index.js +2 -2
- package/es/materials/sxp/template/MultiCommodity/index.js +2 -2
- package/es/materials/sxp/template/MultiCommodityDiro/index.js +2 -2
- package/es/materials/sxp/template/MultiCommodityDiroNew/index.js +5 -4
- package/es/materials/sxp/template/components/CommodityGroup.d.ts +14 -0
- package/es/materials/sxp/template/components/CommodityGroup.js +31 -0
- package/es/materials/sxp/template/components/Img.js +1 -1
- package/es/materials/sxp/template/components/Scroll.d.ts +2 -1
- package/es/materials/sxp/template/components/Scroll.js +10 -3
- package/es/materials/sxp/template/components/settingRender.js +0 -5
- package/lib/core/Pagebuilder/type.d.ts +1 -0
- package/lib/core/components/SxpPageRender/FingerSwipeTip/index.d.ts +0 -1
- package/lib/core/components/SxpPageRender/FingerSwipeTip/index.js +3 -3
- package/lib/core/components/SxpPageRender/Hashtag/index.js +1 -3
- package/lib/core/components/SxpPageRender/Modal/index.d.ts +3 -0
- package/lib/core/components/SxpPageRender/Modal/index.js +70 -6
- package/lib/core/components/SxpPageRender/Navbar.js +1 -1
- package/lib/core/components/SxpPageRender/Popup/index.js +1 -1
- package/lib/core/components/SxpPageRender/RenderCard.d.ts +1 -0
- package/lib/core/components/SxpPageRender/RenderCard.js +16 -12
- package/lib/core/components/SxpPageRender/VideoWidget/index.js +10 -13
- package/lib/core/components/SxpPageRender/WaterFall/List.js +1 -1
- package/lib/core/components/SxpPageRender/WaterFall/WaterfallList.js +1 -1
- package/lib/core/components/SxpPageRender/index.d.ts +3 -3
- package/lib/core/components/SxpPageRender/index.js +50 -16
- package/lib/core/components/SxpPageRender/typing.d.ts +1 -0
- package/lib/core/context/SxpDataSourceProvider.d.ts +1 -0
- package/lib/core/context/SxpDataSourceProvider.js +6 -4
- package/lib/core/utils/localStore.d.ts +3 -0
- package/lib/core/utils/localStore.js +11 -1
- package/lib/materials/sxp/HashTag/material.js +1 -2
- package/lib/materials/sxp/cta/AniLink/index.d.ts +14 -0
- package/lib/materials/sxp/cta/AniLink/index.js +61 -0
- package/lib/materials/sxp/cta/AniLink/interactionRender.d.ts +42 -0
- package/lib/materials/sxp/cta/AniLink/interactionRender.js +52 -0
- package/lib/materials/sxp/cta/AniLink/material.d.ts +2 -0
- package/lib/materials/sxp/cta/AniLink/material.js +42 -0
- package/lib/materials/sxp/cta/AniLink/settingRender.d.ts +73 -0
- package/lib/materials/sxp/cta/AniLink/settingRender.js +105 -0
- package/lib/materials/sxp/cta/AniLinkPopup/index.d.ts +17 -0
- package/lib/materials/sxp/cta/AniLinkPopup/index.js +68 -0
- package/lib/materials/sxp/cta/AniLinkPopup/interactionRender.d.ts +42 -0
- package/lib/materials/sxp/cta/AniLinkPopup/interactionRender.js +52 -0
- package/lib/materials/sxp/cta/AniLinkPopup/material.d.ts +2 -0
- package/lib/materials/sxp/cta/AniLinkPopup/material.js +56 -0
- package/lib/materials/sxp/cta/AniLinkPopup/settingRender.d.ts +176 -0
- package/lib/materials/sxp/cta/AniLinkPopup/settingRender.js +251 -0
- package/lib/materials/sxp/cta/index.d.ts +2 -0
- package/lib/materials/sxp/cta/index.js +5 -0
- package/lib/materials/sxp/index.d.ts +1 -0
- package/lib/materials/sxp/index.js +1 -0
- package/lib/materials/sxp/popup/AppointForm/Form.js +1 -1
- package/lib/materials/sxp/popup/CommodityDetail/index.d.ts +5 -0
- package/lib/materials/sxp/popup/CommodityDetail/index.js +43 -26
- package/lib/materials/sxp/popup/CommodityDetail/interactionRender.d.ts +9 -0
- package/lib/materials/sxp/popup/CommodityDetail/interactionRender.js +14 -0
- package/lib/materials/sxp/popup/CommodityDetail/material.js +3 -1
- package/lib/materials/sxp/popup/CommodityDetail/settingRender.d.ts +37 -0
- package/lib/materials/sxp/popup/CommodityDetail/settingRender.js +41 -0
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.d.ts +5 -0
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +11 -25
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/interactionRender.d.ts +9 -0
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/interactionRender.js +14 -0
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/material.js +3 -1
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.d.ts +37 -0
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/settingRender.js +41 -0
- package/lib/materials/sxp/popup/CommodityList/index.d.ts +28 -0
- package/lib/materials/sxp/popup/CommodityList/index.js +58 -0
- package/lib/materials/sxp/popup/CommodityList/interactionRender.d.ts +8 -0
- package/lib/materials/sxp/popup/CommodityList/interactionRender.js +13 -0
- package/lib/materials/sxp/popup/CommodityList/material.d.ts +2 -0
- package/lib/materials/sxp/popup/CommodityList/material.js +55 -0
- package/lib/materials/sxp/popup/CommodityList/settingRender.d.ts +151 -0
- package/lib/materials/sxp/popup/CommodityList/settingRender.js +209 -0
- package/lib/materials/sxp/popup/index.d.ts +1 -0
- package/lib/materials/sxp/popup/index.js +1 -0
- package/lib/materials/sxp/template/Link/index.js +2 -2
- package/lib/materials/sxp/template/MultiCommodity/index.js +2 -2
- package/lib/materials/sxp/template/MultiCommodityDiro/index.js +2 -2
- package/lib/materials/sxp/template/MultiCommodityDiroNew/index.js +5 -4
- package/lib/materials/sxp/template/components/CommodityGroup.d.ts +14 -0
- package/lib/materials/sxp/template/components/CommodityGroup.js +34 -0
- package/lib/materials/sxp/template/components/Img.js +1 -1
- package/lib/materials/sxp/template/components/Scroll.d.ts +2 -1
- package/lib/materials/sxp/template/components/Scroll.js +9 -2
- package/lib/materials/sxp/template/components/settingRender.js +0 -5
- package/package.json +1 -1
@@ -0,0 +1,207 @@
|
|
1
|
+
export default [
|
2
|
+
{
|
3
|
+
title: '商品图片',
|
4
|
+
child: [
|
5
|
+
{
|
6
|
+
type: 'Group',
|
7
|
+
label: '尺寸',
|
8
|
+
child: [
|
9
|
+
{
|
10
|
+
type: 'Number',
|
11
|
+
name: ['props', 'commodityPicture', 'width'],
|
12
|
+
addonAfter: 'W'
|
13
|
+
},
|
14
|
+
{
|
15
|
+
type: 'Number',
|
16
|
+
name: ['props', 'commodityPicture', 'height'],
|
17
|
+
addonAfter: 'H'
|
18
|
+
}
|
19
|
+
]
|
20
|
+
},
|
21
|
+
{
|
22
|
+
type: 'Group',
|
23
|
+
label: '圆角',
|
24
|
+
child: [
|
25
|
+
{
|
26
|
+
type: 'Slider',
|
27
|
+
name: ['props', 'commodityPicture', 'borderRadius'],
|
28
|
+
max: 100
|
29
|
+
},
|
30
|
+
{
|
31
|
+
type: 'Number',
|
32
|
+
name: ['props', 'commodityPicture', 'borderRadius'],
|
33
|
+
addonAfter: 'px',
|
34
|
+
max: 100
|
35
|
+
}
|
36
|
+
]
|
37
|
+
},
|
38
|
+
{
|
39
|
+
type: 'Number',
|
40
|
+
label: '与右侧边距',
|
41
|
+
addonAfter: 'px',
|
42
|
+
name: ['props', 'commodityPicture', 'marginRight']
|
43
|
+
},
|
44
|
+
{
|
45
|
+
label: '居中垂直偏移',
|
46
|
+
type: 'Number',
|
47
|
+
name: ['props', 'translateY'],
|
48
|
+
min: -1000,
|
49
|
+
addonAfter: '%',
|
50
|
+
initialValue: 0
|
51
|
+
}
|
52
|
+
]
|
53
|
+
},
|
54
|
+
{
|
55
|
+
title: '商品文本',
|
56
|
+
child: [
|
57
|
+
{
|
58
|
+
name: ['props', 'commodityStyles'],
|
59
|
+
type: 'SelectLinkage',
|
60
|
+
child: [
|
61
|
+
{
|
62
|
+
label: '字段',
|
63
|
+
type: 'Select',
|
64
|
+
options: [
|
65
|
+
{
|
66
|
+
label: '商品名称',
|
67
|
+
value: 'title'
|
68
|
+
},
|
69
|
+
{
|
70
|
+
label: '系列名称',
|
71
|
+
value: 'collection'
|
72
|
+
},
|
73
|
+
{
|
74
|
+
label: '价格',
|
75
|
+
value: 'price'
|
76
|
+
}
|
77
|
+
],
|
78
|
+
name: ['props', 'commodityStyles', 'field'],
|
79
|
+
initialValue: 'title'
|
80
|
+
},
|
81
|
+
{
|
82
|
+
type: 'Group',
|
83
|
+
label: '标题字体',
|
84
|
+
child: [
|
85
|
+
{
|
86
|
+
type: 'Select',
|
87
|
+
name: ['fontFamily-cn'],
|
88
|
+
bottomText: '中文字体'
|
89
|
+
},
|
90
|
+
{
|
91
|
+
type: 'Select',
|
92
|
+
name: ['fontFamily-en'],
|
93
|
+
bottomText: '英文/其他字体'
|
94
|
+
}
|
95
|
+
]
|
96
|
+
},
|
97
|
+
{
|
98
|
+
type: 'Group',
|
99
|
+
label: '',
|
100
|
+
child: [
|
101
|
+
{
|
102
|
+
type: 'Color',
|
103
|
+
name: ['color']
|
104
|
+
},
|
105
|
+
{
|
106
|
+
type: 'Number',
|
107
|
+
addonAfter: 'px',
|
108
|
+
name: ['fontSize']
|
109
|
+
}
|
110
|
+
]
|
111
|
+
},
|
112
|
+
{
|
113
|
+
label: '标题样式',
|
114
|
+
type: 'TextStyle'
|
115
|
+
},
|
116
|
+
{
|
117
|
+
label: '标题对齐',
|
118
|
+
type: 'TextAlign'
|
119
|
+
}
|
120
|
+
]
|
121
|
+
}
|
122
|
+
]
|
123
|
+
},
|
124
|
+
{
|
125
|
+
title: '按钮样式',
|
126
|
+
child: [
|
127
|
+
{
|
128
|
+
type: 'Color',
|
129
|
+
label: '背景色',
|
130
|
+
name: ['props', 'buttonStyle', 'backgroundColor']
|
131
|
+
},
|
132
|
+
{
|
133
|
+
type: 'Group',
|
134
|
+
label: '尺寸',
|
135
|
+
child: [
|
136
|
+
{
|
137
|
+
type: 'Number',
|
138
|
+
name: ['props', 'buttonStyle', 'height'],
|
139
|
+
addonAfter: 'H'
|
140
|
+
}
|
141
|
+
]
|
142
|
+
},
|
143
|
+
{
|
144
|
+
type: 'Group',
|
145
|
+
label: '圆角',
|
146
|
+
child: [
|
147
|
+
{
|
148
|
+
type: 'Slider',
|
149
|
+
name: ['props', 'buttonStyle', 'borderRadius'],
|
150
|
+
max: 100
|
151
|
+
},
|
152
|
+
{
|
153
|
+
type: 'Number',
|
154
|
+
name: ['props', 'buttonStyle', 'borderRadius'],
|
155
|
+
addonAfter: 'px',
|
156
|
+
max: 100
|
157
|
+
}
|
158
|
+
]
|
159
|
+
},
|
160
|
+
{
|
161
|
+
type: 'TextSpace',
|
162
|
+
name: ['props', 'buttonStyle']
|
163
|
+
},
|
164
|
+
{
|
165
|
+
type: 'Group',
|
166
|
+
label: '字体',
|
167
|
+
child: [
|
168
|
+
{
|
169
|
+
type: 'Select',
|
170
|
+
name: ['props', 'buttonStyle', 'fontFamily-cn'],
|
171
|
+
bottomText: '中文字体'
|
172
|
+
},
|
173
|
+
{
|
174
|
+
type: 'Select',
|
175
|
+
name: ['props', 'buttonStyle', 'fontFamily-en'],
|
176
|
+
bottomText: '英文/其他字体'
|
177
|
+
}
|
178
|
+
]
|
179
|
+
},
|
180
|
+
{
|
181
|
+
type: 'Group',
|
182
|
+
label: '',
|
183
|
+
child: [
|
184
|
+
{
|
185
|
+
type: 'Color',
|
186
|
+
name: ['props', 'buttonStyle', 'color']
|
187
|
+
},
|
188
|
+
{
|
189
|
+
type: 'Number',
|
190
|
+
addonAfter: 'px',
|
191
|
+
name: ['props', 'buttonStyle', 'fontSize']
|
192
|
+
}
|
193
|
+
]
|
194
|
+
},
|
195
|
+
{
|
196
|
+
label: '样式',
|
197
|
+
type: 'TextStyle',
|
198
|
+
name: ['props', 'buttonStyle']
|
199
|
+
},
|
200
|
+
{
|
201
|
+
label: '对齐',
|
202
|
+
type: 'TextAlign',
|
203
|
+
name: ['props', 'buttonStyle']
|
204
|
+
}
|
205
|
+
]
|
206
|
+
}
|
207
|
+
];
|
@@ -2,11 +2,11 @@ import { __rest } from "tslib";
|
|
2
2
|
import { css } from '@emotion/css';
|
3
3
|
import React, { memo } from 'react';
|
4
4
|
import EventProvider from '../components/EventProvider';
|
5
|
+
import styles from './index.module.less';
|
5
6
|
import { useSxpDataSource } from '../../../../core/hooks';
|
6
7
|
import { useEventReport } from '../../../../core/hooks/useEventReport';
|
7
8
|
import Img from '../components/Img';
|
8
9
|
import { setFontForText } from '../../../../core/utils/tool';
|
9
|
-
import styles from './index.module.less';
|
10
10
|
const Link = (_a) => {
|
11
11
|
var _b, _c, _d, _e, _f, _g, _h, _j;
|
12
12
|
var { content, style, bgImg, recData, bottom_image, ctaTempStyles, index, customTitle } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "index", "customTitle"]);
|
@@ -30,7 +30,7 @@ const Link = (_a) => {
|
|
30
30
|
overflow: 'hidden'
|
31
31
|
}) },
|
32
32
|
React.createElement("div", null,
|
33
|
-
React.createElement("div", { className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle, dangerouslySetInnerHTML: {
|
33
|
+
React.createElement("div", { className: (customTitle === null || customTitle === void 0 ? void 0 : customTitle.display) ? styles['one-line-ellipsis'] : styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle, dangerouslySetInnerHTML: {
|
34
34
|
__html: setFontForText((_h = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _h !== void 0 ? _h : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
|
35
35
|
} }),
|
36
36
|
(customTitle === null || customTitle === void 0 ? void 0 : customTitle.display) && (React.createElement("div", { style: Object.assign(Object.assign({}, customTitle === null || customTitle === void 0 ? void 0 : customTitle.style), { lineHeight: ((_j = customTitle === null || customTitle === void 0 ? void 0 : customTitle.style) === null || _j === void 0 ? void 0 : _j.height) + 'px' }), className: styles['one-line-ellipsis'], dangerouslySetInnerHTML: {
|
@@ -33,9 +33,9 @@ const MultiCommodity = (_a) => {
|
|
33
33
|
onClick === null || onClick === void 0 ? void 0 : onClick();
|
34
34
|
}
|
35
35
|
}, popup === null || popup === void 0 ? void 0 : popup.duration);
|
36
|
-
return (React.createElement(Scroll, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item) => {
|
36
|
+
return (React.createElement(Scroll, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, index) => {
|
37
37
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
38
|
-
return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key:
|
38
|
+
return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key: index, className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item) }),
|
39
39
|
React.createElement(Img, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img }),
|
40
40
|
React.createElement("div", { className: css({
|
41
41
|
color: '#fff',
|
@@ -32,9 +32,9 @@ const MultiCommodityDiro = (_a) => {
|
|
32
32
|
onClick === null || onClick === void 0 ? void 0 : onClick();
|
33
33
|
}
|
34
34
|
}, popup === null || popup === void 0 ? void 0 : popup.duration);
|
35
|
-
return (React.createElement(Scroll, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item) => {
|
35
|
+
return (React.createElement(Scroll, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, index) => {
|
36
36
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
37
|
-
return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key:
|
37
|
+
return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key: index, className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item) }),
|
38
38
|
React.createElement(Img, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img }),
|
39
39
|
React.createElement("div", { className: css({
|
40
40
|
color: '#000',
|
@@ -16,12 +16,13 @@ const MultiCommodityDiroNew = (_a) => {
|
|
16
16
|
const { popup } = useEditor();
|
17
17
|
const { jumpToWeb } = useEventReport();
|
18
18
|
const [products, setProducts] = 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]);
|
19
|
-
const handleClick = throttle((item) => {
|
19
|
+
const handleClick = throttle((item, multiCheckIndex) => {
|
20
20
|
ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
|
21
21
|
eventSubject: 'clickCta',
|
22
22
|
eventDescription: 'User clicked the CTA'
|
23
23
|
}, recData, item, index);
|
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 }), index
|
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 }), index,
|
25
|
+
multiCheckIndex }));
|
25
26
|
if (isExternalLink) {
|
26
27
|
if (item === null || item === void 0 ? void 0 : item.link) {
|
27
28
|
jumpToWeb(recData, item, item.bindCta, index);
|
@@ -32,9 +33,9 @@ const MultiCommodityDiroNew = (_a) => {
|
|
32
33
|
onClick === null || onClick === void 0 ? void 0 : onClick();
|
33
34
|
}
|
34
35
|
}, popup === null || popup === void 0 ? void 0 : popup.duration);
|
35
|
-
return (React.createElement(Scroll, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item) => {
|
36
|
+
return (React.createElement(Scroll, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, index) => {
|
36
37
|
var _a, _b, _c, _d, _e, _f, _g;
|
37
|
-
return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key:
|
38
|
+
return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key: index, className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item, index) }),
|
38
39
|
React.createElement(Img, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img }),
|
39
40
|
React.createElement("div", { className: css({
|
40
41
|
color: '#fff',
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { VideoInfoType } from '../../../../core/components/SxpPageRender/typing';
|
2
|
+
import React, { CSSProperties } from 'react';
|
3
|
+
interface ICommodityGroupProps {
|
4
|
+
products?: VideoInfoType['bindProducts'];
|
5
|
+
data?: {
|
6
|
+
open?: boolean;
|
7
|
+
translateY?: number;
|
8
|
+
style?: CSSProperties;
|
9
|
+
};
|
10
|
+
defImg: string;
|
11
|
+
style?: CSSProperties;
|
12
|
+
}
|
13
|
+
declare const _default: React.NamedExoticComponent<ICommodityGroupProps>;
|
14
|
+
export default _default;
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import React, { memo, useState, useCallback } from 'react';
|
2
|
+
import Scroll from './Scroll';
|
3
|
+
import FormatImage from '../../../../core/components/SxpPageRender/FormatImage';
|
4
|
+
import { useSxpDataSource } from '../../../../core/hooks';
|
5
|
+
import { SwiperSlide } from 'swiper/react';
|
6
|
+
import { css } from '@emotion/css';
|
7
|
+
const CommodityGroup = ({ products, data, defImg, style }) => {
|
8
|
+
var _a, _b;
|
9
|
+
const { setPopupDetailData, popupDetailData } = useSxpDataSource();
|
10
|
+
const [check, setCheck] = useState((_a = popupDetailData === null || popupDetailData === void 0 ? void 0 : popupDetailData.multiCheckIndex) !== null && _a !== void 0 ? _a : 0);
|
11
|
+
const handleClick = useCallback((index) => {
|
12
|
+
setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData((val) => (Object.assign(Object.assign({}, val), { video: Object.assign(Object.assign({}, val === null || val === void 0 ? void 0 : val.video), { bindProduct: products === null || products === void 0 ? void 0 : products[index] }), multiCheckIndex: index })));
|
13
|
+
}, []);
|
14
|
+
return (React.createElement(React.Fragment, null, (data === null || data === void 0 ? void 0 : data.open) && ((products && (products === null || products === void 0 ? void 0 : products.length) > 0) || !popupDetailData) && (React.createElement(Scroll, { isPadding: false, style: Object.assign(Object.assign({}, style), data === null || data === void 0 ? void 0 : data.style) }, (_b = (popupDetailData ? products : [0, 1, 2, 3])) === null || _b === void 0 ? void 0 : _b.map((item, index) => {
|
15
|
+
var _a, _b, _c;
|
16
|
+
return (React.createElement(SwiperSlide, { className: css({
|
17
|
+
width: '50px',
|
18
|
+
height: '50px',
|
19
|
+
marginRight: '10px'
|
20
|
+
}), onClick: () => handleClick(index), key: index },
|
21
|
+
React.createElement(FormatImage, { style: {
|
22
|
+
height: '100%',
|
23
|
+
width: '100%',
|
24
|
+
objectFit: 'cover',
|
25
|
+
display: 'block',
|
26
|
+
objectPosition: `50% ${(data === null || data === void 0 ? void 0 : data.translateY) ? -(data === null || data === void 0 ? void 0 : data.translateY) + 50 : 50}%`,
|
27
|
+
border: check === index ? '1px solid #000' : '1px solid #f2f2f2'
|
28
|
+
}, src: (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : defImg })));
|
29
|
+
})))));
|
30
|
+
};
|
31
|
+
export default memo(CommodityGroup);
|
@@ -20,6 +20,6 @@ const Img = ({ src, rec, item, index, style, translateY, imgStyle }) => {
|
|
20
20
|
}, [src]);
|
21
21
|
return (React.createElement("div", { className: css(Object.assign({ overflow: 'hidden', flexShrink: 0, backgroundColor: '#f2f2f2' }, imgStyle)) },
|
22
22
|
React.createElement("div", { ref: ref, hidden: !src, className: css({ width: '100%', height: '100%' }) },
|
23
|
-
React.createElement(FormatImage, { className: css(Object.assign({ width: '100%', objectFit: 'cover', height: '100%', display: 'block', objectPosition: `50% ${translateY ? translateY + 50 : 50}%` }, style)), src: src }))));
|
23
|
+
React.createElement(FormatImage, { className: css(Object.assign({ width: '100%', objectFit: 'cover', height: '100%', display: 'block', objectPosition: `50% ${translateY ? -translateY + 50 : 50}%` }, style)), src: src }))));
|
24
24
|
};
|
25
25
|
export default memo(Img);
|
@@ -1,10 +1,11 @@
|
|
1
|
-
import React from 'react';
|
1
|
+
import React, { CSSProperties } from 'react';
|
2
2
|
import 'swiper/css';
|
3
3
|
import 'swiper/css/free-mode';
|
4
4
|
import 'swiper/css/scrollbar';
|
5
5
|
interface IScrollProps {
|
6
6
|
children: any;
|
7
7
|
isPadding?: boolean;
|
8
|
+
style?: CSSProperties;
|
8
9
|
}
|
9
10
|
declare const _default: React.NamedExoticComponent<IScrollProps>;
|
10
11
|
export default _default;
|
@@ -1,10 +1,17 @@
|
|
1
|
-
import React, { memo } from 'react';
|
1
|
+
import React, { memo, useRef, useEffect } from 'react';
|
2
2
|
import { Swiper } from 'swiper/react';
|
3
3
|
import 'swiper/css';
|
4
4
|
import 'swiper/css/free-mode';
|
5
5
|
import 'swiper/css/scrollbar';
|
6
6
|
import { FreeMode, Scrollbar, Mousewheel } from 'swiper/modules';
|
7
|
-
|
8
|
-
|
7
|
+
import { useSxpDataSource } from '../../../../core/hooks';
|
8
|
+
const Scroll = ({ children, isPadding = true, style }) => {
|
9
|
+
const ref = useRef();
|
10
|
+
const { popupDetailData } = useSxpDataSource();
|
11
|
+
useEffect(() => {
|
12
|
+
var _a;
|
13
|
+
(_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.swiper.slideTo(popupDetailData === null || popupDetailData === void 0 ? void 0 : popupDetailData.multiCheckIndex);
|
14
|
+
}, [popupDetailData]);
|
15
|
+
return (React.createElement(Swiper, { ref: ref, direction: 'horizontal', slidesPerView: 'auto', freeMode: true, mousewheel: true, modules: [FreeMode, Scrollbar, Mousewheel], style: Object.assign({ padding: isPadding ? '0 12px 0 20px' : 0 }, style) }, children));
|
9
16
|
};
|
10
17
|
export default memo(Scroll);
|
@@ -4,19 +4,19 @@ const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = tslib_1.__importStar(require("react"));
|
5
5
|
const useIconLink_1 = require("../useIconLink");
|
6
6
|
const hooks_1 = require("../../../../core/hooks");
|
7
|
-
const FingerSwipeTip = ({ imageUrl, style
|
7
|
+
const FingerSwipeTip = ({ imageUrl, style }) => {
|
8
8
|
const [show, setShow] = (0, react_1.useState)(true);
|
9
9
|
const { schema: { sxpPageConf } } = (0, hooks_1.useEditor)();
|
10
10
|
(0, react_1.useEffect)(() => {
|
11
11
|
setTimeout(() => {
|
12
12
|
setShow(false);
|
13
|
-
},
|
13
|
+
}, 2000);
|
14
14
|
}, []);
|
15
15
|
const FINGER_SWIPE_ICON = (0, useIconLink_1.useIconLink)('/pb_static/finger-swipe-tip.29dc3a48a3c746c906ea..png');
|
16
16
|
const animationCls = (0, react_1.useMemo)(() => {
|
17
17
|
return show ? 'pb-fadeIn' : 'pb-fadeOut';
|
18
18
|
}, [show]);
|
19
|
-
return (react_1.default.createElement("div", { hidden: !show, className: `pb-finger-wrap ${animationCls}`, style:
|
19
|
+
return (react_1.default.createElement("div", { hidden: !show, className: `pb-finger-wrap ${animationCls}`, style: style },
|
20
20
|
react_1.default.createElement("img", { src: imageUrl || FINGER_SWIPE_ICON, alt: 'finger swiper' })));
|
21
21
|
};
|
22
22
|
exports.default = FingerSwipeTip;
|
@@ -7,7 +7,6 @@ const hooks_1 = require("../../../../core/hooks");
|
|
7
7
|
const Scroll_1 = tslib_1.__importDefault(require("../../../../materials/sxp/template/components/Scroll"));
|
8
8
|
const tool_1 = require("../../../../core/utils/tool");
|
9
9
|
const Hashtag = ({ tags, itemId, itemType, index, rec, hashTagStyle }) => {
|
10
|
-
var _a;
|
11
10
|
const [isShowMore, setIsShowMore] = (0, react_1.useState)(false);
|
12
11
|
const { setWaterFallData, setOpenHashtag, setCacheActiveIndex, waterFallData, setIsFromHashtag } = (0, hooks_1.useSxpDataSource)();
|
13
12
|
const handleClickTag = (data) => {
|
@@ -39,8 +38,7 @@ const Hashtag = ({ tags, itemId, itemType, index, rec, hashTagStyle }) => {
|
|
39
38
|
}
|
40
39
|
return (react_1.default.createElement("span", { style: { textDecoration: 'underline', cursor: 'pointer', color: '#fff' }, onClick: () => setIsShowMore(!isShowMore) }, isShowMore ? 'show less' : 'show more'));
|
41
40
|
}, [isShowMore, tags]);
|
42
|
-
|
43
|
-
return (react_1.default.createElement("div", { className: 'clc-sxp-bottom-hashtag', style: { marginTop: `${(_a = hashTagStyle === null || hashTagStyle === void 0 ? void 0 : hashTagStyle.marginTop) !== null && _a !== void 0 ? _a : 16}px` } },
|
41
|
+
return (react_1.default.createElement("div", { className: 'clc-sxp-bottom-hashtag' },
|
44
42
|
react_1.default.createElement(Scroll_1.default, null, tags === null || tags === void 0 ? void 0 : tags.map((item, index) => (react_1.default.createElement(react_2.SwiperSlide, { key: index, hidden: !isShowMore ? index >= 6 : false, className: 'clc-sxp-bottom-hashtag-item', style: hashTagStyle, onClick: () => handleClickTag(item) },
|
45
43
|
react_1.default.createElement("div", { dangerouslySetInnerHTML: { __html: (0, tool_1.setFontForText)(`#${item}`, hashTagStyle) } })))))));
|
46
44
|
};
|
@@ -6,6 +6,9 @@ interface IModalProps {
|
|
6
6
|
padding?: number | string;
|
7
7
|
modalStyle?: CSSProperties;
|
8
8
|
onClose?: () => void;
|
9
|
+
schema?: any;
|
10
|
+
fullHeight?: number;
|
11
|
+
isFullScreen?: boolean;
|
9
12
|
}
|
10
13
|
declare const _default: React.NamedExoticComponent<React.PropsWithChildren<IModalProps>>;
|
11
14
|
export default _default;
|
@@ -4,11 +4,21 @@ const tslib_1 = require("tslib");
|
|
4
4
|
const lodash_1 = require("lodash");
|
5
5
|
const react_1 = tslib_1.__importStar(require("react"));
|
6
6
|
const ReactDOM = tslib_1.__importStar(require("react-dom"));
|
7
|
+
const hooks_1 = require("../../../../core/hooks");
|
7
8
|
const closeIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAjhJREFUWEfFlztOw0AQhmeWiJ4CCmpQ5DiRQsIJyAWg5A0lR0AIChDiCJS8ER0cADgBeRSxt4CCDgkaKiq8i+zYeWx2413HEWmiJJv9v535Z2aN8M8vFPT9z3zETD0aAUChUJjwvPFHAJhBhB3Hqd6OAsK2yyucwykAvP38eJX398Z3AJDLlVYR8ToU9Rhj25TWr9KEsKy5dULIGQCMtfZly45TvwsAstm56UwG6wA4FUFwzrdctxZBDcWSy5XWEPG8I84/GcMipdWPtgcsaz5PCHtKG0IuTiqUvjT9U/WYMG2IOPE+AP+LtCB0xKUAAyA2Xbd2o2OG0NQXvTnvhL17D7EPtH9TRCIWwkRcGYGIQgYBABuqPuHXOQBc6pw80lBGwBQiiXhsBHQhkoprA6iM6acjhDQKu5YJZW6XeOI3XJdpvfsdTu52VfXEekD8owQiXGIubpSCbhDbLu8DwKEAd+A41SOdPpE4BS0viFOtvV2iKWqUgn5x/tmS70xR01GuDSCKc86/OCcLgTyyZ0ScDGNhFAktAJV4NFJ9YyaFiAWIE+9uVkkgBgLoig8DMWAa9ro9ynkUdlW5maZDCmB6clmz0k1HH4Cs1Ezbq2p2yEpUuBOKTSZZex00RUWIrltxuuK6EOGDSbGIOPZicpMx6fny650377qNRgBgWeVFQuA+6UjVgREhGIMlSqsPUQqIbZdOOIdZQmCv2axRnU1N1+TzJYsxOEaEV8ep7frPZ7Gd0FTEdP0ft0/kMNdg0eoAAAAASUVORK5CYII=';
|
8
|
-
const Modal = ({ visible, onClose, children, modalStyle, padding, popup }) => {
|
9
|
-
var _a;
|
9
|
+
const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema, fullHeight = window.innerHeight, isFullScreen = false }) => {
|
10
|
+
var _a, _b;
|
11
|
+
const touchRef = (0, react_1.useRef)(null);
|
12
|
+
const fTouchRef = (0, react_1.useRef)(null);
|
13
|
+
const touchMoveRef = (0, react_1.useRef)(null);
|
14
|
+
const ref = (0, react_1.useRef)(null);
|
15
|
+
const MODAL_DEF_TRANS = fullHeight * 0.2;
|
16
|
+
const MODAL_DEF_CON_H = isFullScreen ? fullHeight : fullHeight * 0.8;
|
17
|
+
const [modalTrans, setModalTrans] = (0, react_1.useState)(MODAL_DEF_TRANS);
|
10
18
|
const [isShow, setIsShow] = (0, react_1.useState)(false);
|
11
19
|
const modalEleRef = (0, react_1.useRef)(null);
|
20
|
+
const { globalConfig, popupDetailData } = (0, hooks_1.useSxpDataSource)();
|
21
|
+
const { schema: _schema } = (0, hooks_1.useEditor)();
|
12
22
|
(0, react_1.useEffect)(() => {
|
13
23
|
const parentNode = document.getElementById('sxp-render');
|
14
24
|
const node = document.getElementById('pb-modal');
|
@@ -24,6 +34,12 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup }) => {
|
|
24
34
|
const isOpen = (0, react_1.useMemo)(() => {
|
25
35
|
return ((popup === null || popup === void 0 ? void 0 : popup.id) && (popup === null || popup === void 0 ? void 0 : popup.id) !== '') || visible;
|
26
36
|
}, [visible, popup]);
|
37
|
+
const isScrollFullScreen = (0, react_1.useMemo)(() => {
|
38
|
+
var _a, _b, _c, _d, _e;
|
39
|
+
const schemaData = schema !== null && schema !== void 0 ? schema : _schema;
|
40
|
+
const value = (_c = (_b = (_a = schemaData === null || schemaData === void 0 ? void 0 : schemaData.sxpPageConf) === null || _a === void 0 ? void 0 : _a.globalConfig) === null || _b === void 0 ? void 0 : _b.popupList) === null || _c === void 0 ? void 0 : _c.find((value) => (value === null || value === void 0 ? void 0 : value.id) === (popup === null || popup === void 0 ? void 0 : popup.id));
|
41
|
+
return ((_e = (_d = value === null || value === void 0 ? void 0 : value.item) === null || _d === void 0 ? void 0 : _d.event) === null || _e === void 0 ? void 0 : _e.isScrollFullScreen) || false;
|
42
|
+
}, [popup, schema, _schema]);
|
27
43
|
(0, react_1.useEffect)(() => {
|
28
44
|
if (isOpen) {
|
29
45
|
setIsShow(true);
|
@@ -31,6 +47,7 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup }) => {
|
|
31
47
|
else {
|
32
48
|
setTimeout(() => {
|
33
49
|
setIsShow(false);
|
50
|
+
setModalTrans(MODAL_DEF_TRANS);
|
34
51
|
}, popup === null || popup === void 0 ? void 0 : popup.duration);
|
35
52
|
}
|
36
53
|
}, [isOpen, popup]);
|
@@ -39,13 +56,60 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup }) => {
|
|
39
56
|
const handleClose = (0, lodash_1.debounce)(() => {
|
40
57
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
41
58
|
}, 300);
|
59
|
+
const handleTouchStart = (event) => {
|
60
|
+
event.stopPropagation();
|
61
|
+
touchRef.current = event.touches[0].clientY;
|
62
|
+
fTouchRef.current = event.touches[0].clientY;
|
63
|
+
touchMoveRef.current = true;
|
64
|
+
};
|
65
|
+
const handleTouchMove = (event) => {
|
66
|
+
event.stopPropagation();
|
67
|
+
requestAnimationFrame(() => {
|
68
|
+
var _a;
|
69
|
+
if (touchMoveRef.current && ((_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.scrollTop) === 0) {
|
70
|
+
const currentY = event.touches[0].clientY;
|
71
|
+
const diff = touchRef.current - currentY;
|
72
|
+
touchRef.current = currentY;
|
73
|
+
const ts = modalTrans - diff;
|
74
|
+
if (ts > 0) {
|
75
|
+
setModalTrans(ts);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
});
|
79
|
+
};
|
80
|
+
const handleTouchEnd = (event) => {
|
81
|
+
var _a;
|
82
|
+
event.stopPropagation();
|
83
|
+
if (touchMoveRef.current && ((_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.scrollTop) === 0) {
|
84
|
+
const diff = fTouchRef.current - touchRef.current;
|
85
|
+
if (diff > 0) {
|
86
|
+
setModalTrans(0);
|
87
|
+
}
|
88
|
+
else if (modalTrans < MODAL_DEF_TRANS && diff < 0) {
|
89
|
+
setModalTrans(MODAL_DEF_TRANS);
|
90
|
+
}
|
91
|
+
else if (modalTrans >= MODAL_DEF_TRANS && diff < 0) {
|
92
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
93
|
+
}
|
94
|
+
}
|
95
|
+
touchMoveRef.current = false;
|
96
|
+
};
|
42
97
|
return ReactDOM.createPortal(react_1.default.createElement(react_1.default.Fragment, null, isShow && (react_1.default.createElement("div", { className: 'modal-bg', style: Object.assign({ display: 'flex', backgroundColor: isOpen ? 'rgba(0, 0, 0, 0.7)' : 'rgba(0, 0, 0, 0)' }, modalStyle), onClick: handleClose },
|
43
|
-
react_1.default.createElement("div", { className: `modal-container ${isOpen ? 'modal-popIn' : 'modal-popOut'}`, style: { padding, animationDuration: ((_a = popup === null || popup === void 0 ? void 0 : popup.duration) !== null && _a !== void 0 ? _a : 0) / 1000 + 's' },
|
98
|
+
react_1.default.createElement("div", Object.assign({ className: `modal-container ${isOpen ? 'modal-popIn' : 'modal-popOut'}`, style: Object.assign({ padding, animationDuration: ((_a = popup === null || popup === void 0 ? void 0 : popup.duration) !== null && _a !== void 0 ? _a : 0) / 1000 + 's' }, (isScrollFullScreen && {
|
99
|
+
transform: `translateY(${modalTrans}px)`
|
100
|
+
})), onClick: (e) => {
|
44
101
|
e.stopPropagation();
|
45
102
|
e.preventDefault();
|
46
|
-
} },
|
103
|
+
} }, (isScrollFullScreen && {
|
104
|
+
onTouchMove: handleTouchMove,
|
105
|
+
onTouchStart: handleTouchStart,
|
106
|
+
onTouchEnd: handleTouchEnd
|
107
|
+
})),
|
47
108
|
react_1.default.createElement("div", { onClick: onClose, className: 'modal-icon-wrapper' },
|
48
|
-
react_1.default.createElement("img", { src: closeIcon, alt: 'close', className: 'modal-icon' })),
|
49
|
-
|
109
|
+
react_1.default.createElement("img", { src: (_b = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.popupCloseIcon) !== null && _b !== void 0 ? _b : closeIcon, alt: 'close', className: 'modal-icon' })),
|
110
|
+
react_1.default.createElement("div", { ref: ref, style: {
|
111
|
+
height: isScrollFullScreen ? fullHeight : MODAL_DEF_CON_H,
|
112
|
+
overflow: (isScrollFullScreen && modalTrans <= 0) || !isScrollFullScreen ? 'auto' : 'hidden'
|
113
|
+
} }, children))))), modalEleRef.current);
|
50
114
|
};
|
51
115
|
exports.default = (0, react_1.memo)(Modal);
|
@@ -9,7 +9,7 @@ const Navbar = ({ icon, styles, textStyle, onClose }) => {
|
|
9
9
|
const { waterFallData, setOpenHashtag } = (0, hooks_1.useSxpDataSource)();
|
10
10
|
return (react_1.default.createElement("div", { className: 'clc-sxp-nav', style: styles },
|
11
11
|
react_1.default.createElement("img", { className: 'clc-sxp-nav-left', src: icon, alt: 'back button', onClick: onClose }),
|
12
|
-
react_1.default.createElement("div", { className: 'clc-sxp-nav-title', style:
|
12
|
+
react_1.default.createElement("div", { className: 'clc-sxp-nav-title', style: textStyle, dangerouslySetInnerHTML: {
|
13
13
|
__html: (0, tool_1.setFontForText)(`#${(_a = waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag) !== null && _a !== void 0 ? _a : '标题'}`, textStyle)
|
14
14
|
} })));
|
15
15
|
};
|
@@ -55,7 +55,7 @@ const Popup = () => {
|
|
55
55
|
const isExternalLink = ((_d = (_c = (_b = value === null || value === void 0 ? void 0 : value.item) === null || _b === void 0 ? void 0 : _b.event) === null || _c === void 0 ? void 0 : _c.onClick) === null || _d === void 0 ? void 0 : _d.linkType) === 'externalLink';
|
56
56
|
const isPopup = ((_g = (_f = (_e = value === null || value === void 0 ? void 0 : value.item) === null || _e === void 0 ? void 0 : _e.event) === null || _f === void 0 ? void 0 : _f.onClick) === null || _g === void 0 ? void 0 : _g.linkType) === 'popup';
|
57
57
|
const defaulSetting = (_h = t === null || t === void 0 ? void 0 : t.extend) === null || _h === void 0 ? void 0 : _h.defaulSetting;
|
58
|
-
return (react_1.default.createElement(Component, Object.assign({ key: index, style: Object.assign(Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.style), (_j = value === null || value === void 0 ? void 0 : value.item) === null || _j === void 0 ? void 0 : _j.style), { width: (_k = window.innerWidth) !== null && _k !== void 0 ? _k : '100vw'
|
58
|
+
return (react_1.default.createElement(Component, Object.assign({ key: index, style: Object.assign(Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.style), (_j = value === null || value === void 0 ? void 0 : value.item) === null || _j === void 0 ? void 0 : _j.style), { width: (_k = window.innerWidth) !== null && _k !== void 0 ? _k : '100vw' }), textStyle: Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.textStyle), (_l = value === null || value === void 0 ? void 0 : value.item) === null || _l === void 0 ? void 0 : _l.textStyle), bindDatas: (_o = (_m = value === null || value === void 0 ? void 0 : value.item) === null || _m === void 0 ? void 0 : _m.bindDatas) !== null && _o !== void 0 ? _o : [] }, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.props, (_p = value === null || value === void 0 ? void 0 : value.item) === null || _p === void 0 ? void 0 : _p.props, { event: ((_q = value === null || value === void 0 ? void 0 : value.item) === null || _q === void 0 ? void 0 : _q.event) || {}, schema: schema, id: value === null || value === void 0 ? void 0 : value.id, isExternalLink: isExternalLink, isPopup: isPopup, onClose: handleClose })));
|
59
59
|
}
|
60
60
|
else {
|
61
61
|
return react_1.default.createElement(react_1.default.Fragment, null);
|