pb-sxp-ui 1.0.47 → 1.0.49
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/LICENSE +21 -21
- package/README.md +111 -111
- package/dist/index.cjs +119 -120
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +2 -0
- package/dist/index.js +119 -120
- 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 +119 -120
- 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/components/SxpPageRender/VideoWidget/index.js +55 -56
- package/es/core/components/SxpPageRender/WaterFall/List.js +8 -7
- package/es/core/components/SxpPageRender/index.js +0 -2
- package/es/core/context/SxpDataSourceProvider.js +10 -10
- package/es/materials/sxp/popup/CommodityDetail/index.js +4 -4
- package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
- package/lib/core/components/SxpPageRender/VideoWidget/index.js +55 -56
- package/lib/core/components/SxpPageRender/WaterFall/List.js +8 -7
- package/lib/core/components/SxpPageRender/index.js +0 -2
- package/lib/core/context/SxpDataSourceProvider.js +10 -10
- package/lib/materials/sxp/popup/CommodityDetail/index.js +4 -4
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
- package/package.json +115 -115
package/LICENSE
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
MIT License
|
2
|
-
|
3
|
-
Copyright (c) 2023 ChatLabs
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
13
|
-
copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2023 ChatLabs
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
@@ -1,111 +1,111 @@
|
|
1
|
-
<!--
|
2
|
-
* @Author : haocanweng@chatlabs.cn
|
3
|
-
* @Date : 2023-08-23 18:25:31
|
4
|
-
* @LastEditors: binruan@chatlabs.com
|
5
|
-
* @LastEditTime: 2024-03-20 16:26:29
|
6
|
-
* @FilePath: \pb-sxp-ui\README.md
|
7
|
-
-->
|
8
|
-
<h1 align="center">Page Builder SXP UI</h1>
|
9
|
-
|
10
|
-
<div align="center">
|
11
|
-
React enterprise-class UI components
|
12
|
-
</div>
|
13
|
-
|
14
|
-
## 📦 安装
|
15
|
-
|
16
|
-
```bash
|
17
|
-
npm install pb-sxp-ui
|
18
|
-
# or
|
19
|
-
yarn add pb-sxp-ui
|
20
|
-
```
|
21
|
-
|
22
|
-
## 🔨 使用
|
23
|
-
以 Next.js 框架为例子:
|
24
|
-
|
25
|
-
```jsx
|
26
|
-
import { GetServerSideProps } from 'next';
|
27
|
-
import React, { FC } from 'react'
|
28
|
-
import Pagebuilder, { PageView } from 'pb-sxp-ui';
|
29
|
-
|
30
|
-
// 初始化 PageBuilder 配置
|
31
|
-
Pagebuilder.init({
|
32
|
-
tenantId: 'xxxxxxxxxx',
|
33
|
-
appId: 'xxxxxxxxx',
|
34
|
-
env: 'live' // 可选参数,默认是 live 环境
|
35
|
-
});
|
36
|
-
|
37
|
-
|
38
|
-
interface IProps {
|
39
|
-
path: string;
|
40
|
-
data: any
|
41
|
-
}
|
42
|
-
|
43
|
-
const ContentPage: FC<IProps> = ({ data ,path}) => {
|
44
|
-
return (
|
45
|
-
<PageView data={data?.data} isSsr path={path}/>
|
46
|
-
)
|
47
|
-
}
|
48
|
-
|
49
|
-
export const getServerSideProps: GetServerSideProps<IProps> = async (
|
50
|
-
context
|
51
|
-
) => {
|
52
|
-
// 接收传来的路径
|
53
|
-
const path = context.query.path as string;
|
54
|
-
// 获取页面数据
|
55
|
-
const result = await Pagebuilder.getDetail(path)
|
56
|
-
return {
|
57
|
-
props: {
|
58
|
-
path,
|
59
|
-
data: result.data
|
60
|
-
},
|
61
|
-
};
|
62
|
-
};
|
63
|
-
|
64
|
-
export default ContentPage;
|
65
|
-
|
66
|
-
```
|
67
|
-
|
68
|
-
## ⌨️ 本地调试
|
69
|
-
|
70
|
-
### 运行开发环境
|
71
|
-
|
72
|
-
```bash
|
73
|
-
$ npm install
|
74
|
-
$ npm run start
|
75
|
-
```
|
76
|
-
|
77
|
-
### 生成本地开发全局链接
|
78
|
-
|
79
|
-
```bash
|
80
|
-
npm link
|
81
|
-
# or
|
82
|
-
yarn link
|
83
|
-
```
|
84
|
-
|
85
|
-
### 在使用该包的项目中安装调试
|
86
|
-
|
87
|
-
```bash
|
88
|
-
npm link pb-sxp-ui
|
89
|
-
# or
|
90
|
-
yarn link pb-sxp-ui
|
91
|
-
```
|
92
|
-
|
93
|
-
## 👾 发布
|
94
|
-
|
95
|
-
### 打包线上安装包
|
96
|
-
|
97
|
-
```bash
|
98
|
-
npm run package
|
99
|
-
# or
|
100
|
-
yarn package
|
101
|
-
```
|
102
|
-
|
103
|
-
### 发布 npm
|
104
|
-
|
105
|
-
```bash
|
106
|
-
$ npm version patch|minor|major
|
107
|
-
$ npm publish
|
108
|
-
|
109
|
-
# 自动化发布包
|
110
|
-
$ npm run pub patch|minor|major|xx.xx.xx
|
111
|
-
```
|
1
|
+
<!--
|
2
|
+
* @Author : haocanweng@chatlabs.cn
|
3
|
+
* @Date : 2023-08-23 18:25:31
|
4
|
+
* @LastEditors: binruan@chatlabs.com
|
5
|
+
* @LastEditTime: 2024-03-20 16:26:29
|
6
|
+
* @FilePath: \pb-sxp-ui\README.md
|
7
|
+
-->
|
8
|
+
<h1 align="center">Page Builder SXP UI</h1>
|
9
|
+
|
10
|
+
<div align="center">
|
11
|
+
React enterprise-class UI components
|
12
|
+
</div>
|
13
|
+
|
14
|
+
## 📦 安装
|
15
|
+
|
16
|
+
```bash
|
17
|
+
npm install pb-sxp-ui
|
18
|
+
# or
|
19
|
+
yarn add pb-sxp-ui
|
20
|
+
```
|
21
|
+
|
22
|
+
## 🔨 使用
|
23
|
+
以 Next.js 框架为例子:
|
24
|
+
|
25
|
+
```jsx
|
26
|
+
import { GetServerSideProps } from 'next';
|
27
|
+
import React, { FC } from 'react'
|
28
|
+
import Pagebuilder, { PageView } from 'pb-sxp-ui';
|
29
|
+
|
30
|
+
// 初始化 PageBuilder 配置
|
31
|
+
Pagebuilder.init({
|
32
|
+
tenantId: 'xxxxxxxxxx',
|
33
|
+
appId: 'xxxxxxxxx',
|
34
|
+
env: 'live' // 可选参数,默认是 live 环境
|
35
|
+
});
|
36
|
+
|
37
|
+
|
38
|
+
interface IProps {
|
39
|
+
path: string;
|
40
|
+
data: any
|
41
|
+
}
|
42
|
+
|
43
|
+
const ContentPage: FC<IProps> = ({ data ,path}) => {
|
44
|
+
return (
|
45
|
+
<PageView data={data?.data} isSsr path={path}/>
|
46
|
+
)
|
47
|
+
}
|
48
|
+
|
49
|
+
export const getServerSideProps: GetServerSideProps<IProps> = async (
|
50
|
+
context
|
51
|
+
) => {
|
52
|
+
// 接收传来的路径
|
53
|
+
const path = context.query.path as string;
|
54
|
+
// 获取页面数据
|
55
|
+
const result = await Pagebuilder.getDetail(path)
|
56
|
+
return {
|
57
|
+
props: {
|
58
|
+
path,
|
59
|
+
data: result.data
|
60
|
+
},
|
61
|
+
};
|
62
|
+
};
|
63
|
+
|
64
|
+
export default ContentPage;
|
65
|
+
|
66
|
+
```
|
67
|
+
|
68
|
+
## ⌨️ 本地调试
|
69
|
+
|
70
|
+
### 运行开发环境
|
71
|
+
|
72
|
+
```bash
|
73
|
+
$ npm install
|
74
|
+
$ npm run start
|
75
|
+
```
|
76
|
+
|
77
|
+
### 生成本地开发全局链接
|
78
|
+
|
79
|
+
```bash
|
80
|
+
npm link
|
81
|
+
# or
|
82
|
+
yarn link
|
83
|
+
```
|
84
|
+
|
85
|
+
### 在使用该包的项目中安装调试
|
86
|
+
|
87
|
+
```bash
|
88
|
+
npm link pb-sxp-ui
|
89
|
+
# or
|
90
|
+
yarn link pb-sxp-ui
|
91
|
+
```
|
92
|
+
|
93
|
+
## 👾 发布
|
94
|
+
|
95
|
+
### 打包线上安装包
|
96
|
+
|
97
|
+
```bash
|
98
|
+
npm run package
|
99
|
+
# or
|
100
|
+
yarn package
|
101
|
+
```
|
102
|
+
|
103
|
+
### 发布 npm
|
104
|
+
|
105
|
+
```bash
|
106
|
+
$ npm version patch|minor|major
|
107
|
+
$ npm publish
|
108
|
+
|
109
|
+
# 自动化发布包
|
110
|
+
$ npm run pub patch|minor|major|xx.xx.xx
|
111
|
+
```
|
package/dist/index.cjs
CHANGED
@@ -489,20 +489,20 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
489
489
|
}, [bffDataSource]);
|
490
490
|
// 获取推荐视频数据
|
491
491
|
const getRecommendVideos = React.useCallback((query) => __awaiter(void 0, void 0, void 0, function* () {
|
492
|
-
var _a, _b, _c, _d;
|
492
|
+
var _a, _b, _c, _d, _e;
|
493
493
|
query = {
|
494
|
-
maxSize,
|
495
|
-
defaultSize: (
|
494
|
+
maxSize: (_a = query === null || query === void 0 ? void 0 : query.maxSize) !== null && _a !== void 0 ? _a : maxSize,
|
495
|
+
defaultSize: (_b = query === null || query === void 0 ? void 0 : query.defaultSize) !== null && _b !== void 0 ? _b : defaultSize,
|
496
496
|
'itemFilter.itemId': query === null || query === void 0 ? void 0 : query['itemFilter.itemId'],
|
497
497
|
'itemFilter.itemType': query === null || query === void 0 ? void 0 : query['itemFilter.itemType'],
|
498
498
|
hashTag: query === null || query === void 0 ? void 0 : query.hashTag,
|
499
499
|
traceInfo: query === null || query === void 0 ? void 0 : query.traceInfo
|
500
500
|
};
|
501
501
|
if (utmVal) {
|
502
|
-
const val = (
|
502
|
+
const val = (_e = (_d = (_c = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _c === void 0 ? void 0 : _c.filter((val) => {
|
503
503
|
const key = val.split('=')[0];
|
504
504
|
return UTM_KEYS.includes(key);
|
505
|
-
})) === null ||
|
505
|
+
})) === null || _d === void 0 ? void 0 : _d.join('&')) !== null && _e !== void 0 ? _e : '';
|
506
506
|
query = Object.assign(Object.assign({}, query), { channel: decodeURIComponent(val) });
|
507
507
|
}
|
508
508
|
const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/recommend/list', { method: 'GET', query }));
|
@@ -514,7 +514,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
514
514
|
return result === null || result === void 0 ? void 0 : result.data;
|
515
515
|
}), [bffFetch, utmVal, maxSize, defaultSize]);
|
516
516
|
const loadVideos = React.useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
517
|
-
var
|
517
|
+
var _f, _g;
|
518
518
|
if (rtcList.length <= 0) {
|
519
519
|
return;
|
520
520
|
}
|
@@ -523,8 +523,8 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
523
523
|
'itemFilter.itemId': waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.itemId,
|
524
524
|
'itemFilter.itemType': waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.itemType
|
525
525
|
});
|
526
|
-
setRtcList(rtcList.concat((
|
527
|
-
setCacheRtcList(cacheRtcList.concat((
|
526
|
+
setRtcList(rtcList.concat((_f = data === null || data === void 0 ? void 0 : data.recList) !== null && _f !== void 0 ? _f : []));
|
527
|
+
setCacheRtcList(cacheRtcList.concat((_g = data === null || data === void 0 ? void 0 : data.recList) !== null && _g !== void 0 ? _g : []));
|
528
528
|
}), [getRecommendVideos, rtcList, waterFallData, cacheRtcList]);
|
529
529
|
const bffEventReport = React.useCallback(({ userInfo, eventInfo }) => {
|
530
530
|
// 关闭 BFF 事件上报
|
@@ -568,12 +568,12 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
568
568
|
}), [bffFetch]);
|
569
569
|
// 获取 Tag
|
570
570
|
const bffGetTagList = React.useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
571
|
-
var
|
571
|
+
var _h, _j;
|
572
572
|
if (!utmVal)
|
573
573
|
return;
|
574
574
|
try {
|
575
575
|
const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/tag/list', { method: 'GET', query: { channel: utmVal } }));
|
576
|
-
setTagList((
|
576
|
+
setTagList((_j = (_h = result === null || result === void 0 ? void 0 : result.data) === null || _h === void 0 ? void 0 : _h.tags) !== null && _j !== void 0 ? _j : []);
|
577
577
|
}
|
578
578
|
catch (e) {
|
579
579
|
console.log('e', e);
|
@@ -8417,10 +8417,10 @@ const CommodityDetail$1 = (_a) => {
|
|
8417
8417
|
React.createElement("div", { className: 'pb-commondity-content-title', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title, hidden: !!product && !(product === null || product === void 0 ? void 0 : product.title) }, (_b = product === null || product === void 0 ? void 0 : product.title) !== null && _b !== void 0 ? _b : 'Pendant in Yellow Gold with Diamonds, Medium'),
|
8418
8418
|
React.createElement("div", { className: 'pb-commondity-content-price', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price, hidden: !!product && !(product === null || product === void 0 ? void 0 : product.price) }, priceText),
|
8419
8419
|
React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
|
8420
|
-
React.createElement(ExpandableText$1, { 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
|
8421
|
-
bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
|
8422
|
-
collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
|
8423
|
-
necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
|
8420
|
+
React.createElement(ExpandableText$1, { 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
|
8421
|
+
bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
|
8422
|
+
collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
|
8423
|
+
necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
|
8424
8424
|
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 }))));
|
8425
8425
|
};
|
8426
8426
|
const renderBtn = () => {
|
@@ -8871,7 +8871,7 @@ const CommodityDetailDiroNew$1 = (_a) => {
|
|
8871
8871
|
const productInfoText = ({ isPost }) => {
|
8872
8872
|
return (React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
|
8873
8873
|
React.createElement(ExpandableText$1, { isPost: isPost, onClick: () => setShowModal(true), className: 'pb-commondityDiroNew-info', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.info, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (product === null || product === void 0 ? void 0 : product.info) ||
|
8874
|
-
`Unveiled at the Spring-Summer 2023 fashion show, the Dior Toujours bag is distinguished by a casual and practical design. Crafted in black calfskin with Macrocannage topstitching, it showcases a spacious interior compartment with a matching pouch to organize essentials. Its leather strap closure keeps items secure while the D of the CD Lock closure twists to adjust the sides and enhance the bag's silhouette. The leather handles can be adjusted using the small notches in order to be able to carry the large bag by hand or wear it over the shoulder. CD Lock and strap closures D.I.O.R. charms Removable interior pouch Adjustable leather handles Dust bag included
|
8874
|
+
`Unveiled at the Spring-Summer 2023 fashion show, the Dior Toujours bag is distinguished by a casual and practical design. Crafted in black calfskin with Macrocannage topstitching, it showcases a spacious interior compartment with a matching pouch to organize essentials. Its leather strap closure keeps items secure while the D of the CD Lock closure twists to adjust the sides and enhance the bag's silhouette. The leather handles can be adjusted using the small notches in order to be able to carry the large bag by hand or wear it over the shoulder. CD Lock and strap closures D.I.O.R. charms Removable interior pouch Adjustable leather handles Dust bag included
|
8875
8875
|
Made in Italy` })));
|
8876
8876
|
};
|
8877
8877
|
return (React.createElement("div", { className: 'pb-commondityDiroNew' },
|
@@ -11699,7 +11699,7 @@ const WaterfallFlowItem = (props) => {
|
|
11699
11699
|
React.createElement("div", { className: 'list-content-listItem-info-price', style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.price, hidden: !priceText }, priceText))));
|
11700
11700
|
};
|
11701
11701
|
function WaterfallList(_a) {
|
11702
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
11702
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
11703
11703
|
var { reportTagsView } = _a, props = __rest(_a, ["reportTagsView"]);
|
11704
11704
|
const { waterFallData, getRecommendVideos, hashTagSize, loadingImage, isOpenHashTag } = useSxpDataSource();
|
11705
11705
|
const [list, setList] = React.useState();
|
@@ -11730,7 +11730,8 @@ function WaterfallList(_a) {
|
|
11730
11730
|
hashTag: waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag,
|
11731
11731
|
'itemFilter.itemId': waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.itemId,
|
11732
11732
|
'itemFilter.itemType': waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.itemType,
|
11733
|
-
defaultSize: hashTagSize
|
11733
|
+
defaultSize: hashTagSize,
|
11734
|
+
maxSize: hashTagSize
|
11734
11735
|
}).then((res) => {
|
11735
11736
|
var _a, _b;
|
11736
11737
|
setData(res);
|
@@ -11776,16 +11777,12 @@ function WaterfallList(_a) {
|
|
11776
11777
|
return (React.createElement(WaterfallFlowItem, Object.assign({ key: ind, index: ind, rec: item, list: list, reportTagsView: reportTagsView }, props)));
|
11777
11778
|
})),
|
11778
11779
|
React.createElement("div", { hidden: !isLoadMore, style: { textAlign: 'center' } }, "loading..."),
|
11779
|
-
React.createElement("div", {
|
11780
|
-
|
11781
|
-
style: {
|
11782
|
-
height: ((_g = data === null || data === void 0 ? void 0 : data.tag) === null || _g === void 0 ? void 0 : _g.link) ? ((_h = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _h === void 0 ? void 0 : _h.height) || ((_j = props === null || props === void 0 ? void 0 : props.buttonStyle) === null || _j === void 0 ? void 0 : _j.height) || '100px' : 0
|
11780
|
+
React.createElement("div", { hidden: !((_g = data === null || data === void 0 ? void 0 : data.tag) === null || _g === void 0 ? void 0 : _g.link), style: {
|
11781
|
+
height: ((_h = data === null || data === void 0 ? void 0 : data.tag) === null || _h === void 0 ? void 0 : _h.link) ? ((_j = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _j === void 0 ? void 0 : _j.height) || ((_k = props === null || props === void 0 ? void 0 : props.buttonStyle) === null || _k === void 0 ? void 0 : _k.height) || '100px' : 0
|
11783
11782
|
} })),
|
11784
|
-
React.createElement("div", { className: 'list-bottom', style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
|
11785
|
-
React.createElement("div", {
|
11786
|
-
|
11787
|
-
className: 'list-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
|
11788
|
-
React.createElement("button", { className: 'list-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink }, ((_k = data === null || data === void 0 ? void 0 : data.tag) === null || _k === void 0 ? void 0 : _k.linkTitle) || 'Shop the collection'))))));
|
11783
|
+
React.createElement("div", { className: 'list-bottom', hidden: !((_l = data === null || data === void 0 ? void 0 : data.tag) === null || _l === void 0 ? void 0 : _l.link), style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
|
11784
|
+
React.createElement("div", { hidden: !((_m = data === null || data === void 0 ? void 0 : data.tag) === null || _m === void 0 ? void 0 : _m.link), className: 'list-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
|
11785
|
+
React.createElement("button", { className: 'list-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink }, ((_o = data === null || data === void 0 ? void 0 : data.tag) === null || _o === void 0 ? void 0 : _o.linkTitle) || 'Shop the collection'))))));
|
11789
11786
|
}
|
11790
11787
|
|
11791
11788
|
var img$1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAaZJREFUeF7t2jFKBEEQRuG3mSJeQTARURDMTL2EqXfwAnoKD6FHMDEzNVIw2tzQC2gFggyDrExX1V92T7wz9PumFnqbXdH5teq8nwEwJqBzgfEVKDYAW8Ae8NZq3ZUm4Aa4AnaBR+C8BUIVAIu/ngSfAs9LESoAWLgB/LzWwP7SeLtfHWAu3tZ9Adz/dwD3eOUJCIlXBQiLVwQIjVcDCI9XAkiJVwFIi1cASI3PBpjb3jbd5GyyUcraCUrEZ02ATHwGgFR8NIBcfCSAZHwUgGx8BIB0vDeAfLwnQIl4L4Ay8R4ApeJbA2wD78DOZA/e7ABzk739Xz/T8rfAIfA6WYCd3BqA7NUSwCKfgLNKCK0BjoC7rzP74yoIrQGsuxSCB0ApBC+AMgieACUQvAHkESIApBGiAGQRIgEkEaIB5BAyAKQQsgBkEDIBJBCyAdIRFABSEVQA0hCUAFIQ1ADCERQBQhFUAcIQlAFCENQBfkOwg9eXpeftFQDmEOzv8ifARy8A3wiXwAHwANwujbf7q0xAi9bZZwwAN9oiDx4TUORFuS2z+wn4BAiAaEHnKChjAAAAAElFTkSuQmCC";
|
@@ -12076,6 +12073,33 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
12076
12073
|
const [firstFrameSrc, setFirstFrameSrc] = React.useState('');
|
12077
12074
|
const videoId = `pb-cache-video-${index}`;
|
12078
12075
|
const videoEleRef = React.useRef(null);
|
12076
|
+
const blur = React.useMemo(() => {
|
12077
|
+
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
|
12078
|
+
}, [videoPostConfig]);
|
12079
|
+
const translateY = React.useMemo(() => {
|
12080
|
+
var _a;
|
12081
|
+
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2'
|
12082
|
+
? `translateY(-${50 + ((_a = videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.offsetTop) !== null && _a !== void 0 ? _a : 0)}%) translate3d(0px, 0px, 0px)`
|
12083
|
+
: 'translateY(-50%)';
|
12084
|
+
}, [videoPostConfig]);
|
12085
|
+
const blurBgSrc = React.useMemo(() => {
|
12086
|
+
var _a;
|
12087
|
+
return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
|
12088
|
+
}, [firstFrameSrc, rec]);
|
12089
|
+
const blurStyle = React.useMemo(() => {
|
12090
|
+
return blur
|
12091
|
+
? {
|
12092
|
+
filter: 'blur(10px)',
|
12093
|
+
transform: 'translate3d(0px, 0px, 0px) scale(1.2)'
|
12094
|
+
}
|
12095
|
+
: {};
|
12096
|
+
}, [blur]);
|
12097
|
+
const isBgColor = React.useMemo(() => {
|
12098
|
+
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgWay) === '1';
|
12099
|
+
}, [videoPostConfig]);
|
12100
|
+
const bgStyle = React.useMemo(() => {
|
12101
|
+
return isBgColor && (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor) ? { backgroundColor: videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor } : {};
|
12102
|
+
}, [videoPostConfig, isBgColor]);
|
12079
12103
|
React.useEffect(() => {
|
12080
12104
|
if (!videoRef)
|
12081
12105
|
return;
|
@@ -12116,15 +12140,40 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
12116
12140
|
setIsFirstPlay(false);
|
12117
12141
|
}
|
12118
12142
|
}, [bffEventReport, data, index, isFirstPlay, videoRef]);
|
12143
|
+
const handLoadeddata = React.useCallback(() => {
|
12144
|
+
var _a;
|
12145
|
+
if (!videoRef || isBgColor || firstFrameSrc || !blur)
|
12146
|
+
return;
|
12147
|
+
const videoDomRef = document.getElementById('player-container-id_html5_api');
|
12148
|
+
if (((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || !canvasRef || !videoDomRef || !canvasRef.current)
|
12149
|
+
return;
|
12150
|
+
const setFrameImg = () => {
|
12151
|
+
videoDomRef.style.objectFit = 'contain';
|
12152
|
+
const video = videoDomRef;
|
12153
|
+
const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
|
12154
|
+
const ctx = canvas.getContext('2d');
|
12155
|
+
const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
|
12156
|
+
const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
|
12157
|
+
canvas.height = targetHeight;
|
12158
|
+
canvas.width = targetWidth;
|
12159
|
+
ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
12160
|
+
setFirstFrameSrc(canvas.toDataURL());
|
12161
|
+
};
|
12162
|
+
setFrameImg();
|
12163
|
+
setTimeout(() => {
|
12164
|
+
setFrameImg();
|
12165
|
+
}, 500);
|
12166
|
+
}, [videoRef, isBgColor, rec, firstFrameSrc, blur]);
|
12119
12167
|
const handleLoadedmetadata = React.useCallback(() => {
|
12120
12168
|
if (!videoRef)
|
12121
12169
|
return;
|
12122
|
-
|
12123
|
-
|
12124
|
-
|
12125
|
-
|
12170
|
+
handLoadeddata();
|
12171
|
+
// if (activeIndex !== index) {
|
12172
|
+
// videoRef?.play();
|
12173
|
+
// videoRef?.pause();
|
12174
|
+
// }
|
12126
12175
|
setIsLoadFinish(true);
|
12127
|
-
}, [
|
12176
|
+
}, [videoRef, handLoadeddata]);
|
12128
12177
|
const handleCanplay = React.useCallback(() => {
|
12129
12178
|
setIsLoadFinish(true);
|
12130
12179
|
}, []);
|
@@ -12185,57 +12234,7 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
12185
12234
|
}
|
12186
12235
|
});
|
12187
12236
|
}
|
12188
|
-
}, [data, index, bffEventReport, videoRef]);
|
12189
|
-
const blur = React.useMemo(() => {
|
12190
|
-
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
|
12191
|
-
}, [videoPostConfig]);
|
12192
|
-
const translateY = React.useMemo(() => {
|
12193
|
-
var _a;
|
12194
|
-
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2'
|
12195
|
-
? `translateY(-${50 + ((_a = videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.offsetTop) !== null && _a !== void 0 ? _a : 0)}%) translate3d(0px, 0px, 0px)`
|
12196
|
-
: 'translateY(-50%)';
|
12197
|
-
}, [videoPostConfig]);
|
12198
|
-
const blurBgSrc = React.useMemo(() => {
|
12199
|
-
var _a;
|
12200
|
-
return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
|
12201
|
-
}, [firstFrameSrc, rec]);
|
12202
|
-
const blurStyle = React.useMemo(() => {
|
12203
|
-
return blur
|
12204
|
-
? {
|
12205
|
-
filter: 'blur(10px)',
|
12206
|
-
transform: 'translate3d(0px, 0px, 0px) scale(1.2)'
|
12207
|
-
}
|
12208
|
-
: {};
|
12209
|
-
}, [blur]);
|
12210
|
-
const isBgColor = React.useMemo(() => {
|
12211
|
-
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgWay) === '1';
|
12212
|
-
}, [videoPostConfig]);
|
12213
|
-
const bgStyle = React.useMemo(() => {
|
12214
|
-
return isBgColor && (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor) ? { backgroundColor: videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor } : {};
|
12215
|
-
}, [videoPostConfig, isBgColor]);
|
12216
|
-
const handLoadeddata = React.useCallback(() => {
|
12217
|
-
var _a;
|
12218
|
-
if (!videoRef || isBgColor)
|
12219
|
-
return;
|
12220
|
-
const videoDomRef = document.getElementById('player-container-id_html5_api');
|
12221
|
-
if (((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || !canvasRef || !videoDomRef || !canvasRef.current)
|
12222
|
-
return;
|
12223
|
-
const setFrameImg = () => {
|
12224
|
-
const video = videoDomRef;
|
12225
|
-
const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
|
12226
|
-
const ctx = canvas.getContext('2d');
|
12227
|
-
const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
|
12228
|
-
const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
|
12229
|
-
canvas.height = targetHeight;
|
12230
|
-
canvas.width = targetWidth;
|
12231
|
-
ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
12232
|
-
setFirstFrameSrc(canvas.toDataURL());
|
12233
|
-
};
|
12234
|
-
setFrameImg();
|
12235
|
-
setTimeout(() => {
|
12236
|
-
setFrameImg();
|
12237
|
-
}, 500);
|
12238
|
-
}, [videoRef, isBgColor, rec]);
|
12237
|
+
}, [data, index, bffEventReport, videoRef, activeIndex]);
|
12239
12238
|
React.useEffect(() => {
|
12240
12239
|
if (!isActive || !videoRef)
|
12241
12240
|
return;
|
@@ -12249,6 +12248,7 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
12249
12248
|
if (!dom && !dom2)
|
12250
12249
|
return;
|
12251
12250
|
videoPlayerWrapperNode === null || videoPlayerWrapperNode === void 0 ? void 0 : videoPlayerWrapperNode.appendChild(dom || dom2);
|
12251
|
+
videoRef.poster('https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240218/fsTan2fgYKJWrCpJtGZPogm0NnvdT1708239153661.jpeg');
|
12252
12252
|
videoRef === null || videoRef === void 0 ? void 0 : videoRef.src(videoSrc);
|
12253
12253
|
videoRef === null || videoRef === void 0 ? void 0 : videoRef.on('loadedmetadata', handleLoadedmetadata);
|
12254
12254
|
videoRef === null || videoRef === void 0 ? void 0 : videoRef.on('loadeddata', handLoadeddata);
|
@@ -12656,47 +12656,11 @@ const Nudge = ({ nudge }) => {
|
|
12656
12656
|
React.createElement("p", { style: Object.assign({}, nudge === null || nudge === void 0 ? void 0 : nudge.textStyle) }, (_g = nudge === null || nudge === void 0 ? void 0 : nudge.content) !== null && _g !== void 0 ? _g : '')))));
|
12657
12657
|
};
|
12658
12658
|
|
12659
|
-
const DEFAULT_TAG = 'FOR U';
|
12660
|
-
const Tagbar = ({ tagList = [], setActiveIndex }) => {
|
12661
|
-
const [selectTag, setSelectTag] = React.useState(DEFAULT_TAG);
|
12662
|
-
const { getRecommendVideos, setRtcList, setCacheRtcList, setCacheActiveIndex, setLoading, swiperRef } = useSxpDataSource();
|
12663
|
-
const realTagList = React.useMemo(() => {
|
12664
|
-
return [DEFAULT_TAG, ...tagList];
|
12665
|
-
}, [tagList]);
|
12666
|
-
const handleSelectTag = (tag) => () => {
|
12667
|
-
if (tag === selectTag)
|
12668
|
-
return;
|
12669
|
-
let hashTag;
|
12670
|
-
if (tag !== DEFAULT_TAG) {
|
12671
|
-
hashTag = tag;
|
12672
|
-
}
|
12673
|
-
setLoading === null || setLoading === void 0 ? void 0 : setLoading(true);
|
12674
|
-
getRecommendVideos === null || getRecommendVideos === void 0 ? void 0 : getRecommendVideos({ hashTag }).then((res) => {
|
12675
|
-
var _a, _b, _c, _d;
|
12676
|
-
setRtcList === null || setRtcList === void 0 ? void 0 : setRtcList((_a = res === null || res === void 0 ? void 0 : res.recList) !== null && _a !== void 0 ? _a : []);
|
12677
|
-
setCacheRtcList === null || setCacheRtcList === void 0 ? void 0 : setCacheRtcList((_b = res === null || res === void 0 ? void 0 : res.recList) !== null && _b !== void 0 ? _b : []);
|
12678
|
-
setActiveIndex === null || setActiveIndex === void 0 ? void 0 : setActiveIndex(0);
|
12679
|
-
setCacheActiveIndex === null || setCacheActiveIndex === void 0 ? void 0 : setCacheActiveIndex(0);
|
12680
|
-
(_d = (_c = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _c === void 0 ? void 0 : _c.swiper) === null || _d === void 0 ? void 0 : _d.slideTo(0);
|
12681
|
-
}).finally(() => {
|
12682
|
-
setLoading === null || setLoading === void 0 ? void 0 : setLoading(false);
|
12683
|
-
});
|
12684
|
-
setSelectTag(tag);
|
12685
|
-
};
|
12686
|
-
if (tagList.length <= 0)
|
12687
|
-
return null;
|
12688
|
-
return (React.createElement("div", { className: 'clc-sxp-tagbar' },
|
12689
|
-
React.createElement("ul", { className: 'clc-sxp-tagbar-list', style: { margin: 'auto', gap: 24 } }, realTagList.map((tag) => {
|
12690
|
-
return (React.createElement("li", { className: `clc-sxp-tagbar-list-item ${tag === selectTag ? 'clc-sxp-tagbar-list-item-active' : ''}`, key: tag, onClick: handleSelectTag(tag) }, tag));
|
12691
|
-
}))));
|
12692
|
-
};
|
12693
|
-
var Tagbar$1 = React.memo(Tagbar);
|
12694
|
-
|
12695
12659
|
/*
|
12696
12660
|
* @Author: binruan@chatlabs.com
|
12697
12661
|
* @Date: 2024-01-15 19:03:09
|
12698
12662
|
* @LastEditors: binruan@chatlabs.com
|
12699
|
-
* @LastEditTime: 2024-04-
|
12663
|
+
* @LastEditTime: 2024-04-30 15:43:40
|
12700
12664
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
|
12701
12665
|
*
|
12702
12666
|
*/
|
@@ -13096,7 +13060,6 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
13096
13060
|
setOpenHashtag === null || setOpenHashtag === void 0 ? void 0 : setOpenHashtag(true);
|
13097
13061
|
} })),
|
13098
13062
|
renderLogo,
|
13099
|
-
React.createElement(Tagbar$1, { tagList: tagList, setActiveIndex: setActiveIndex }),
|
13100
13063
|
isShowFingerTip ? React.createElement(FingerSwipeTip, { imageUrl: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.swipeTipIcon }) : null,
|
13101
13064
|
React.createElement(Swiper, { ref: swiperRef, onSlideChange: () => {
|
13102
13065
|
swiperRef.current.swiper.allowTouchMove = false;
|
@@ -13157,6 +13120,42 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
13157
13120
|
React.createElement("div", { id: 'player-container-id-copy' }))));
|
13158
13121
|
};
|
13159
13122
|
|
13123
|
+
const DEFAULT_TAG = 'FOR U';
|
13124
|
+
const Tagbar = ({ tagList = [], setActiveIndex }) => {
|
13125
|
+
const [selectTag, setSelectTag] = React.useState(DEFAULT_TAG);
|
13126
|
+
const { getRecommendVideos, setRtcList, setCacheRtcList, setCacheActiveIndex, setLoading, swiperRef } = useSxpDataSource();
|
13127
|
+
const realTagList = React.useMemo(() => {
|
13128
|
+
return [DEFAULT_TAG, ...tagList];
|
13129
|
+
}, [tagList]);
|
13130
|
+
const handleSelectTag = (tag) => () => {
|
13131
|
+
if (tag === selectTag)
|
13132
|
+
return;
|
13133
|
+
let hashTag;
|
13134
|
+
if (tag !== DEFAULT_TAG) {
|
13135
|
+
hashTag = tag;
|
13136
|
+
}
|
13137
|
+
setLoading === null || setLoading === void 0 ? void 0 : setLoading(true);
|
13138
|
+
getRecommendVideos === null || getRecommendVideos === void 0 ? void 0 : getRecommendVideos({ hashTag }).then((res) => {
|
13139
|
+
var _a, _b, _c, _d;
|
13140
|
+
setRtcList === null || setRtcList === void 0 ? void 0 : setRtcList((_a = res === null || res === void 0 ? void 0 : res.recList) !== null && _a !== void 0 ? _a : []);
|
13141
|
+
setCacheRtcList === null || setCacheRtcList === void 0 ? void 0 : setCacheRtcList((_b = res === null || res === void 0 ? void 0 : res.recList) !== null && _b !== void 0 ? _b : []);
|
13142
|
+
setActiveIndex === null || setActiveIndex === void 0 ? void 0 : setActiveIndex(0);
|
13143
|
+
setCacheActiveIndex === null || setCacheActiveIndex === void 0 ? void 0 : setCacheActiveIndex(0);
|
13144
|
+
(_d = (_c = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _c === void 0 ? void 0 : _c.swiper) === null || _d === void 0 ? void 0 : _d.slideTo(0);
|
13145
|
+
}).finally(() => {
|
13146
|
+
setLoading === null || setLoading === void 0 ? void 0 : setLoading(false);
|
13147
|
+
});
|
13148
|
+
setSelectTag(tag);
|
13149
|
+
};
|
13150
|
+
if (tagList.length <= 0)
|
13151
|
+
return null;
|
13152
|
+
return (React.createElement("div", { className: 'clc-sxp-tagbar' },
|
13153
|
+
React.createElement("ul", { className: 'clc-sxp-tagbar-list', style: { margin: 'auto', gap: 24 } }, realTagList.map((tag) => {
|
13154
|
+
return (React.createElement("li", { className: `clc-sxp-tagbar-list-item ${tag === selectTag ? 'clc-sxp-tagbar-list-item-active' : ''}`, key: tag, onClick: handleSelectTag(tag) }, tag));
|
13155
|
+
}))));
|
13156
|
+
};
|
13157
|
+
var Tagbar$1 = React.memo(Tagbar);
|
13158
|
+
|
13160
13159
|
const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {
|
13161
13160
|
return (React.createElement(Swiper, { defaultValue: 0, direction: 'horizontal', modules: [Pagination, Autoplay], pagination: { clickable: true, bulletActiveClass: 'swipe-item-active-bullet' }, height: height, style: { width }, loop: true, autoplay: false }, imgUrls === null || imgUrls === void 0 ? void 0 : imgUrls.map((url) => {
|
13162
13161
|
return (React.createElement(SwiperSlide, { key: url },
|