pb-sxp-ui 1.0.79 → 1.0.81

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 (78) hide show
  1. package/dist/index.cjs +342 -105
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +93 -0
  4. package/dist/index.js +343 -106
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.min.cjs +3 -3
  7. package/dist/index.min.cjs.map +1 -1
  8. package/dist/index.min.js +3 -3
  9. package/dist/index.min.js.map +1 -1
  10. package/dist/pb-ui.js +342 -105
  11. package/dist/pb-ui.js.map +1 -1
  12. package/dist/pb-ui.min.js +3 -3
  13. package/dist/pb-ui.min.js.map +1 -1
  14. package/es/core/Pagebuilder/type.d.ts +7 -0
  15. package/es/core/components/Consent/index.d.ts +13 -0
  16. package/es/core/components/Consent/index.js +60 -0
  17. package/es/core/components/SxpPageCore/index.js +2 -2
  18. package/es/core/components/SxpPageRender/Tagbar.js +15 -1
  19. package/es/core/components/SxpPageRender/WaterFall/List.d.ts +1 -1
  20. package/es/core/components/SxpPageRender/WaterFall/List.js +15 -9
  21. package/es/core/components/SxpPageRender/WaterFall/WaterfallList.d.ts +1 -1
  22. package/es/core/components/SxpPageRender/WaterFall/WaterfallList.js +18 -12
  23. package/es/core/components/SxpPageRender/WaterFall/index.js +7 -2
  24. package/es/core/components/SxpPageRender/index.d.ts +2 -1
  25. package/es/core/components/SxpPageRender/index.js +29 -32
  26. package/es/core/components/SxpPageRender/typing.d.ts +1 -0
  27. package/es/core/context/EditorDataProvider.d.ts +9 -0
  28. package/es/core/context/EditorDataProvider.js +13 -3
  29. package/es/core/context/SxpDataSourceProvider.d.ts +10 -0
  30. package/es/core/context/SxpDataSourceProvider.js +58 -18
  31. package/es/core/hooks/useEventReport.d.ts +1 -0
  32. package/es/core/hooks/useEventReport.js +13 -1
  33. package/es/core/utils/localStore.d.ts +1 -0
  34. package/es/core/utils/localStore.js +1 -0
  35. package/es/materials/sxp/Consent/index.d.ts +12 -0
  36. package/es/materials/sxp/Consent/index.js +5 -0
  37. package/es/materials/sxp/Consent/material.d.ts +2 -0
  38. package/es/materials/sxp/Consent/material.js +20 -0
  39. package/es/materials/sxp/Consent/settingRender.d.ts +31 -0
  40. package/es/materials/sxp/Consent/settingRender.js +39 -0
  41. package/es/materials/sxp/HashTag/index.d.ts +1 -1
  42. package/es/materials/sxp/HashTag/settingRender.d.ts +9 -0
  43. package/es/materials/sxp/HashTag/settingRender.js +2 -1
  44. package/es/materials/sxp/index.d.ts +1 -0
  45. package/es/materials/sxp/index.js +1 -0
  46. package/lib/core/Pagebuilder/type.d.ts +7 -0
  47. package/lib/core/components/Consent/index.d.ts +13 -0
  48. package/lib/core/components/Consent/index.js +63 -0
  49. package/lib/core/components/SxpPageCore/index.js +2 -2
  50. package/lib/core/components/SxpPageRender/Tagbar.js +15 -1
  51. package/lib/core/components/SxpPageRender/WaterFall/List.d.ts +1 -1
  52. package/lib/core/components/SxpPageRender/WaterFall/List.js +15 -9
  53. package/lib/core/components/SxpPageRender/WaterFall/WaterfallList.d.ts +1 -1
  54. package/lib/core/components/SxpPageRender/WaterFall/WaterfallList.js +18 -12
  55. package/lib/core/components/SxpPageRender/WaterFall/index.js +7 -2
  56. package/lib/core/components/SxpPageRender/index.d.ts +2 -1
  57. package/lib/core/components/SxpPageRender/index.js +29 -32
  58. package/lib/core/components/SxpPageRender/typing.d.ts +1 -0
  59. package/lib/core/context/EditorDataProvider.d.ts +9 -0
  60. package/lib/core/context/EditorDataProvider.js +13 -3
  61. package/lib/core/context/SxpDataSourceProvider.d.ts +10 -0
  62. package/lib/core/context/SxpDataSourceProvider.js +57 -17
  63. package/lib/core/hooks/useEventReport.d.ts +1 -0
  64. package/lib/core/hooks/useEventReport.js +13 -1
  65. package/lib/core/utils/localStore.d.ts +1 -0
  66. package/lib/core/utils/localStore.js +2 -1
  67. package/lib/materials/sxp/Consent/index.d.ts +12 -0
  68. package/lib/materials/sxp/Consent/index.js +8 -0
  69. package/lib/materials/sxp/Consent/material.d.ts +2 -0
  70. package/lib/materials/sxp/Consent/material.js +24 -0
  71. package/lib/materials/sxp/Consent/settingRender.d.ts +31 -0
  72. package/lib/materials/sxp/Consent/settingRender.js +41 -0
  73. package/lib/materials/sxp/HashTag/index.d.ts +1 -1
  74. package/lib/materials/sxp/HashTag/settingRender.d.ts +9 -0
  75. package/lib/materials/sxp/HashTag/settingRender.js +2 -1
  76. package/lib/materials/sxp/index.d.ts +1 -0
  77. package/lib/materials/sxp/index.js +1 -0
  78. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { isEmpty, isEqual, cloneDeep, debounce, throttle, get } from 'lodash';
2
2
  import { v4 } from 'uuid';
3
3
  import pako from 'pako';
4
- import React, { useContext, useMemo, createContext, memo, useState, useRef, useEffect, useCallback, forwardRef, useImperativeHandle, useLayoutEffect } from 'react';
4
+ import React, { useContext, useMemo, memo, useEffect, createContext, useState, useRef, useCallback, forwardRef, useImperativeHandle, useLayoutEffect } from 'react';
5
5
  import qs from 'qs';
6
6
  import EventEmitter from 'eventemitter3';
7
7
  import { css } from '@emotion/css';
@@ -370,6 +370,7 @@ const getFeSessionId = () => {
370
370
 
371
371
  const FAKE_USER_KEY = 'SXP_FAKE_USER_ID';
372
372
  const FAKE_USER_STATE = 'FAKE_USER_STATE';
373
+ const AGREE_POLICY = 'AGREE_POLICY';
373
374
  const storeAndLoadFeUserId = () => {
374
375
  let fakeUserId = window.localStorage.getItem(FAKE_USER_KEY);
375
376
  if (isEmpty(fakeUserId)) {
@@ -414,6 +415,70 @@ var SXP_EVENT_TYPE;
414
415
  SXP_EVENT_TYPE["CHANGE_THEME_TAG"] = "changeThemeTag";
415
416
  })(SXP_EVENT_TYPE || (SXP_EVENT_TYPE = {}));
416
417
 
418
+ /*
419
+ * @Author: binruan@chatlabs.com
420
+ * @Date: 2024-06-13 15:16:53
421
+ * @LastEditors: binruan@chatlabs.com
422
+ * @LastEditTime: 2024-06-13 18:22:53
423
+ * @FilePath: \pb-sxp-ui\src\core\components\Consent\index.tsx
424
+ *
425
+ */
426
+ const Consent$2 = ({ width = window.innerWidth, height = window.innerHeight, privacy_title, privacy_context, privacy_policy_url, privacy_policy_title }) => {
427
+ const { setIsAgreePolicy, bffEventReport } = useSxpDataSource();
428
+ const channelObj = useMemo(() => {
429
+ const queryString = location.search.slice(1);
430
+ const params = qs.parse(queryString.replace(/\+/g, '%2B'));
431
+ for (const key in params) {
432
+ params[key] = params[key].replace(/%2B/g, '+');
433
+ }
434
+ return params;
435
+ }, []);
436
+ const getUtmValue = (key) => { var _a; return (_a = channelObj[key]) !== null && _a !== void 0 ? _a : null; };
437
+ useEffect(() => {
438
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
439
+ eventInfo: {
440
+ eventSubject: 'privacyEnter',
441
+ eventDescription: 'User enter privacy page',
442
+ utmSource: getUtmValue('utm_source'),
443
+ utmMedium: getUtmValue('utm_medium'),
444
+ utmCampaign: getUtmValue('utm_campaign'),
445
+ utmId: getUtmValue('utm_id'),
446
+ utmContent: getUtmValue('utm_content'),
447
+ clSource: getUtmValue('cl_source'),
448
+ enterTime: `${Date.now()}`,
449
+ enterUrl: window.location.href,
450
+ rtc: null,
451
+ requestId: null,
452
+ sessionID: null
453
+ }
454
+ });
455
+ }, []);
456
+ const handleAgree = () => {
457
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
458
+ eventInfo: {
459
+ eventSubject: 'userConsent',
460
+ eventDescription: '用户授权【操作结果】',
461
+ consentResult: '0',
462
+ consentTags: '[]',
463
+ rtc: null,
464
+ requestId: null,
465
+ sessionID: null
466
+ }
467
+ });
468
+ setIsAgreePolicy === null || setIsAgreePolicy === void 0 ? void 0 : setIsAgreePolicy(true);
469
+ window.localStorage.setItem(AGREE_POLICY, 'yes');
470
+ };
471
+ return (React.createElement("div", { className: 'consent-bg' },
472
+ React.createElement("div", { className: 'consent' },
473
+ React.createElement("div", { className: 'consent-col' },
474
+ React.createElement("div", { className: 'consent-title' }, privacy_title !== null && privacy_title !== void 0 ? privacy_title : 'Privacy Policy'),
475
+ React.createElement("div", { className: 'consent-content' }, privacy_context !== null && privacy_context !== void 0 ? privacy_context : 'This site uses cookies to improve your online experience. By continuing to use the site please agree the policy first.')),
476
+ React.createElement("div", { className: 'consent-col' },
477
+ React.createElement("button", { className: 'consent-btn', onClick: handleAgree }, "Agree"),
478
+ React.createElement("a", { className: 'consent-policy', target: '_blank', href: privacy_policy_url }, privacy_policy_title !== null && privacy_policy_title !== void 0 ? privacy_policy_title : 'More information')))));
479
+ };
480
+ var Consent$3 = memo(Consent$2);
481
+
417
482
  const SxpDataSourceContext = createContext({
418
483
  rtcList: [],
419
484
  tagList: []
@@ -423,13 +488,15 @@ var DataSourceType;
423
488
  DataSourceType[DataSourceType["BFF"] = 5] = "BFF";
424
489
  })(DataSourceType || (DataSourceType = {}));
425
490
  const UTM_KEYS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_id', 'utm_content', 'cl_source'];
426
- const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent = true, maxSize, defaultSize, isPreview = false, sxpParameter, appDomain, hashTagSize, loadingImage, isOpenHashTag = false, enabledMetaConversionApi = false, isShowTag = true }) => {
491
+ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent = true, maxSize, defaultSize, isPreview = false, sxpParameter, appDomain, hashTagSize, loadingImage, isOpenHashTag = false, enabledMetaConversionApi = false, consentHeight, consentWidth, isShowTag = true, isOpenConsent = false, globalConfig }) => {
492
+ var _a, _b, _c, _d, _e, _f, _g;
427
493
  const [rtcList, setRtcList] = useState([]);
428
494
  const [tagList, setTagList] = useState([]);
429
495
  const [loading, setLoading] = useState(false);
430
496
  const [curReqInfo, setCurReqInfo] = useState({ rtc: '', requestId: '' });
431
497
  const swiperRef = useRef(null);
432
498
  const isInit = useRef(false);
499
+ const [isAgreePolicy, setIsAgreePolicy] = useState(() => !!window.localStorage.getItem(AGREE_POLICY));
433
500
  // 弹窗数据
434
501
  const [popupDetailData, setPopupDetailData] = useState();
435
502
  const [waterFallData, setWaterFallData] = useState();
@@ -439,6 +506,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
439
506
  const [isFromHashtag, setIsFromHashtag] = useState(false);
440
507
  const [videoRef, setVideoRef] = useState(null);
441
508
  const themeTag = useRef();
509
+ const curTime = useRef();
442
510
  useEffect(() => {
443
511
  const handleChangeThemeTag = (tag) => {
444
512
  themeTag.current = tag;
@@ -483,10 +551,10 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
483
551
  }, [bffDataSource]);
484
552
  // 获取推荐视频数据
485
553
  const getRecommendVideos = useCallback((query) => __awaiter(void 0, void 0, void 0, function* () {
486
- var _a, _b, _c, _d, _e;
554
+ var _h, _j, _k, _l, _m;
487
555
  query = {
488
- maxSize: (_a = query === null || query === void 0 ? void 0 : query.maxSize) !== null && _a !== void 0 ? _a : maxSize,
489
- defaultSize: (_b = query === null || query === void 0 ? void 0 : query.defaultSize) !== null && _b !== void 0 ? _b : defaultSize,
556
+ maxSize: (_h = query === null || query === void 0 ? void 0 : query.maxSize) !== null && _h !== void 0 ? _h : maxSize,
557
+ defaultSize: (_j = query === null || query === void 0 ? void 0 : query.defaultSize) !== null && _j !== void 0 ? _j : defaultSize,
490
558
  'itemFilter.itemId': query === null || query === void 0 ? void 0 : query['itemFilter.itemId'],
491
559
  'itemFilter.itemType': query === null || query === void 0 ? void 0 : query['itemFilter.itemType'],
492
560
  hashTag: query === null || query === void 0 ? void 0 : query.hashTag,
@@ -494,10 +562,10 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
494
562
  themeTag: query === null || query === void 0 ? void 0 : query.themeTag
495
563
  };
496
564
  if (utmVal) {
497
- const val = (_e = (_d = (_c = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _c === void 0 ? void 0 : _c.filter((val) => {
565
+ const val = (_m = (_l = (_k = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _k === void 0 ? void 0 : _k.filter((val) => {
498
566
  const key = val.split('=')[0];
499
567
  return UTM_KEYS.includes(key);
500
- })) === null || _d === void 0 ? void 0 : _d.join('&')) !== null && _e !== void 0 ? _e : '';
568
+ })) === null || _l === void 0 ? void 0 : _l.join('&')) !== null && _m !== void 0 ? _m : '';
501
569
  query = Object.assign(Object.assign({}, query), { channel: decodeURIComponent(val) });
502
570
  }
503
571
  const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/recommend/list', { method: 'GET', query }));
@@ -509,7 +577,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
509
577
  return result === null || result === void 0 ? void 0 : result.data;
510
578
  }), [bffFetch, utmVal, maxSize, defaultSize]);
511
579
  const loadVideos = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
512
- var _f, _g;
580
+ var _o, _p;
513
581
  if (rtcList.length <= 0) {
514
582
  return;
515
583
  }
@@ -519,8 +587,8 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
519
587
  'itemFilter.itemType': waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.itemType,
520
588
  themeTag: themeTag.current
521
589
  });
522
- setRtcList(rtcList.concat((_f = data === null || data === void 0 ? void 0 : data.recList) !== null && _f !== void 0 ? _f : []));
523
- setCacheRtcList(cacheRtcList.concat((_g = data === null || data === void 0 ? void 0 : data.recList) !== null && _g !== void 0 ? _g : []));
590
+ setRtcList(rtcList.concat((_o = data === null || data === void 0 ? void 0 : data.recList) !== null && _o !== void 0 ? _o : []));
591
+ setCacheRtcList(cacheRtcList.concat((_p = data === null || data === void 0 ? void 0 : data.recList) !== null && _p !== void 0 ? _p : []));
524
592
  }), [getRecommendVideos, rtcList, waterFallData, cacheRtcList]);
525
593
  const bffEventReport = useCallback(({ userInfo, eventInfo }) => {
526
594
  // 关闭 BFF 事件上报
@@ -584,16 +652,16 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
584
652
  }), [bffFetch]);
585
653
  // 获取 Tag
586
654
  const bffGetTagList = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
587
- var _h, _j, _k, _l, _m;
655
+ var _q, _r, _s, _t, _u;
588
656
  if (!utmVal || !isShowTag)
589
657
  return;
590
658
  try {
591
- const val = (_k = (_j = (_h = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _h === void 0 ? void 0 : _h.filter((val) => {
659
+ const val = (_s = (_r = (_q = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _q === void 0 ? void 0 : _q.filter((val) => {
592
660
  const key = val.split('=')[0];
593
661
  return UTM_KEYS.includes(key);
594
- })) === null || _j === void 0 ? void 0 : _j.join('&')) !== null && _k !== void 0 ? _k : '';
662
+ })) === null || _r === void 0 ? void 0 : _r.join('&')) !== null && _s !== void 0 ? _s : '';
595
663
  const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/tag/list', { method: 'GET', query: { channel: decodeURIComponent(val) } }));
596
- setTagList((_m = (_l = result === null || result === void 0 ? void 0 : result.data) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []);
664
+ setTagList((_u = (_t = result === null || result === void 0 ? void 0 : result.data) === null || _t === void 0 ? void 0 : _t.tags) !== null && _u !== void 0 ? _u : []);
597
665
  }
598
666
  catch (e) {
599
667
  console.log('e', e);
@@ -617,7 +685,38 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
617
685
  eventInfo: Object.assign(Object.assign({}, eventInfo), { ctaId: (_h = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _h !== void 0 ? _h : '', ctaName: (_j = cta === null || cta === void 0 ? void 0 : cta.title) !== null && _j !== void 0 ? _j : '', contentTags: JSON.stringify(cta === null || cta === void 0 ? void 0 : cta.tags), position: position + '', contentId: (_l = (_k = rec === null || rec === void 0 ? void 0 : rec.video) === null || _k === void 0 ? void 0 : _k.itemId) !== null && _l !== void 0 ? _l : '', productId: isProd ? product === null || product === void 0 ? void 0 : product.itemId : '', traceInfo: (_m = cta === null || cta === void 0 ? void 0 : cta.traceInfo) !== null && _m !== void 0 ? _m : '', fromKName })
618
686
  });
619
687
  }, [bffEventReport, isFromHashtag]);
688
+ const h5EnterLink = useCallback(() => {
689
+ var _a, _b;
690
+ const queryString = location.search.slice(1);
691
+ const params = qs.parse(queryString.replace(/\+/g, '%2B'));
692
+ for (const key in params) {
693
+ params[key] = params[key].replace(/%2B/g, '+');
694
+ }
695
+ const getVal = (key) => { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ''; };
696
+ const time = new Date();
697
+ curTime.current = time;
698
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
699
+ eventInfo: {
700
+ eventSubject: 'h5LinkEnterFeed',
701
+ eventDescription: 'User enter h5 link',
702
+ utmSource: getVal('utm_source'),
703
+ utmMedium: getVal('utm_medium'),
704
+ utmCampaign: getVal('utm_campaign'),
705
+ utmId: getVal('utm_id'),
706
+ utmContent: getVal('utm_content'),
707
+ enterTime: Math.floor(time / 1000) + '',
708
+ requestId: null,
709
+ enterUrl: (_b = (_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.href) !== null && _b !== void 0 ? _b : '',
710
+ clSource: getVal('cl_source')
711
+ }
712
+ });
713
+ }, [bffEventReport]);
714
+ useEffect(() => {
715
+ h5EnterLink();
716
+ }, []);
620
717
  useEffect(() => {
718
+ if (!isAgreePolicy)
719
+ return;
621
720
  setLoading(true);
622
721
  bffGetTagList();
623
722
  getRecommendVideos()
@@ -636,7 +735,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
636
735
  setLoading(false);
637
736
  isInit.current = true;
638
737
  });
639
- }, []);
738
+ }, [isAgreePolicy]);
640
739
  useEffect(() => {
641
740
  if (!isInit.current)
642
741
  return;
@@ -688,14 +787,19 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
688
787
  setLoading,
689
788
  videoRef,
690
789
  setVideoRef,
691
- bffFbReport
692
- } }, render({
790
+ bffFbReport,
791
+ isAgreePolicy,
792
+ setIsAgreePolicy,
793
+ curTime,
794
+ h5EnterLink,
795
+ themeTag
796
+ } }, (((_d = (_c = (_b = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.consent) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.item) === null || _c === void 0 ? void 0 : _c.props) === null || _d === void 0 ? void 0 : _d.privacy_necessity) && !isAgreePolicy) || isOpenConsent ? (React.createElement(Consent$3, Object.assign({}, (_g = (_f = (_e = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.consent) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.item) === null || _g === void 0 ? void 0 : _g.props))) : (render({
693
797
  rtcList,
694
798
  mutateLike: bffMutateLike,
695
799
  mutateUnlike: bffMutateUnlike,
696
800
  submitForm: bffSubmitForm,
697
801
  tagList
698
- })));
802
+ }))));
699
803
  };
700
804
  var SxpDataSourceProvider$1 = memo(SxpDataSourceProvider);
701
805
 
@@ -961,7 +1065,7 @@ var defaultSetting = {
961
1065
  *
962
1066
  */
963
1067
  var _a$5, _b$5, _c;
964
- var settingRender$5 = [
1068
+ var settingRender$6 = [
965
1069
  {
966
1070
  type: 'Text',
967
1071
  label: '组件名称',
@@ -1099,7 +1203,7 @@ var settingRender$5 = [
1099
1203
  * @Author: binruan@chatlabs.com
1100
1204
  * @Date: 2024-03-12 10:59:06
1101
1205
  * @LastEditors: binruan@chatlabs.com
1102
- * @LastEditTime: 2024-04-15 09:47:08
1206
+ * @LastEditTime: 2024-06-12 10:53:57
1103
1207
  * @FilePath: \pb-sxp-ui\src\core\hooks\useEventReport.ts
1104
1208
  *
1105
1209
  */
@@ -1169,9 +1273,21 @@ function useEventReport() {
1169
1273
  }
1170
1274
  });
1171
1275
  }, [bffEventReport, popupDetailData]);
1276
+ const backMainFeed = useCallback((lastFeed, themeTag, hashTag) => {
1277
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
1278
+ eventInfo: {
1279
+ lastFeed,
1280
+ themeTags: themeTag ? `[${themeTag}]` : '',
1281
+ hashTags: hashTag ? `[${hashTag}]` : '',
1282
+ eventSubject: 'backMainFeed',
1283
+ eventDescription: 'back Main Feed'
1284
+ }
1285
+ });
1286
+ }, [bffEventReport]);
1172
1287
  return {
1173
1288
  jumpToWeb,
1174
- productView
1289
+ productView,
1290
+ backMainFeed
1175
1291
  };
1176
1292
  }
1177
1293
 
@@ -1276,7 +1392,7 @@ const AppointForm = createMaterial(AppointFormComponent, {
1276
1392
  category: 'popup',
1277
1393
  type: 'AppointForm',
1278
1394
  related: {
1279
- settingRender: settingRender$5,
1395
+ settingRender: settingRender$6,
1280
1396
  bindableProps: [],
1281
1397
  interactionRender: interactionRender$8
1282
1398
  },
@@ -1302,7 +1418,7 @@ const AppointForm = createMaterial(AppointFormComponent, {
1302
1418
  });
1303
1419
 
1304
1420
  var _a$4, _b$4;
1305
- var settingRender$4 = [
1421
+ var settingRender$5 = [
1306
1422
  {
1307
1423
  title: '商品图片',
1308
1424
  child: [
@@ -8616,7 +8732,7 @@ const CommodityDetail = createMaterial(CommodityDetailComponent, {
8616
8732
  category: 'popup',
8617
8733
  type: 'CommodityDetail',
8618
8734
  related: {
8619
- settingRender: settingRender$4
8735
+ settingRender: settingRender$5
8620
8736
  },
8621
8737
  defaulSetting: {
8622
8738
  props: {
@@ -8682,7 +8798,7 @@ var interactionRender$7 = [
8682
8798
  *
8683
8799
  */
8684
8800
  var _a$3, _b$3;
8685
- var settingRender$3 = [
8801
+ var settingRender$4 = [
8686
8802
  {
8687
8803
  title: '',
8688
8804
  child: [
@@ -8809,7 +8925,7 @@ const Prompt = createMaterial(PromptComponent, {
8809
8925
  category: 'popup',
8810
8926
  type: 'Prompt',
8811
8927
  related: {
8812
- settingRender: settingRender$3,
8928
+ settingRender: settingRender$4,
8813
8929
  bindableProps: [],
8814
8930
  interactionRender: interactionRender$7
8815
8931
  },
@@ -8835,7 +8951,7 @@ var _a$2, _b$2;
8835
8951
  * @FilePath: \pb-sxp-ui\src\materials\sxp\popup\CommodityDetailDiroNew\settingRender.tsx
8836
8952
  *
8837
8953
  */
8838
- var settingRender$2 = [
8954
+ var settingRender$3 = [
8839
8955
  {
8840
8956
  title: '商品图片',
8841
8957
  child: [
@@ -9158,7 +9274,7 @@ const CommodityDetailDiroNew = createMaterial(CommodityDetailDiroNewComponent, {
9158
9274
  category: 'popup',
9159
9275
  type: 'CommodityDetailDiroNew',
9160
9276
  related: {
9161
- settingRender: settingRender$2
9277
+ settingRender: settingRender$3
9162
9278
  },
9163
9279
  defaulSetting: {
9164
9280
  props: {
@@ -9219,7 +9335,7 @@ var _a$1, _b$1;
9219
9335
  * @FilePath: \pb-sxp-ui\src\materials\sxp\template\components\settingRender.tsx
9220
9336
  *
9221
9337
  */
9222
- var settingRender$1 = [
9338
+ var settingRender$2 = [
9223
9339
  {
9224
9340
  title: '主题样式',
9225
9341
  child: [
@@ -9571,7 +9687,7 @@ const Commodity = createMaterial(CommodityComponent, {
9571
9687
  related: {
9572
9688
  interactionRender: interactionRender$6,
9573
9689
  bindableProps: [],
9574
- settingRender: settingRender$1
9690
+ settingRender: settingRender$2
9575
9691
  },
9576
9692
  defaulSetting: {
9577
9693
  props: {
@@ -9650,7 +9766,7 @@ const Appoint = createMaterial(AppointComponent, {
9650
9766
  type: 'Appoint',
9651
9767
  related: {
9652
9768
  interactionRender: interactionRender$5,
9653
- settingRender: settingRender$1 === null || settingRender$1 === void 0 ? void 0 : settingRender$1.filter((i) => i.type !== 'commodityTitle'),
9769
+ settingRender: settingRender$2 === null || settingRender$2 === void 0 ? void 0 : settingRender$2.filter((i) => i.type !== 'commodityTitle'),
9654
9770
  bindableProps: []
9655
9771
  },
9656
9772
  defaulSetting: {
@@ -9727,7 +9843,7 @@ const Link = createMaterial(LinkComponent, {
9727
9843
  category: 'template',
9728
9844
  type: 'Link',
9729
9845
  related: {
9730
- settingRender: settingRender$1 === null || settingRender$1 === void 0 ? void 0 : settingRender$1.filter((i) => i.type !== 'commodityTitle'),
9846
+ settingRender: settingRender$2 === null || settingRender$2 === void 0 ? void 0 : settingRender$2.filter((i) => i.type !== 'commodityTitle'),
9731
9847
  bindableProps: []
9732
9848
  },
9733
9849
  defaulSetting: {
@@ -9819,7 +9935,7 @@ const CommodityDiro = createMaterial(CommodityDiroComponent, {
9819
9935
  type: 'CommodityDiro',
9820
9936
  related: {
9821
9937
  interactionRender: interactionRender$4,
9822
- settingRender: settingRender$1,
9938
+ settingRender: settingRender$2,
9823
9939
  bindableProps: []
9824
9940
  },
9825
9941
  defaulSetting: {
@@ -9918,7 +10034,7 @@ const CommodityDiroNew = createMaterial(CommodityDiroNewComponent, {
9918
10034
  related: {
9919
10035
  interactionRender: interactionRender$3,
9920
10036
  bindableProps: [],
9921
- settingRender: settingRender$1
10037
+ settingRender: settingRender$2
9922
10038
  },
9923
10039
  defaulSetting: {
9924
10040
  props: {
@@ -10063,7 +10179,7 @@ const MultiCommodityDiro = createMaterial(MultiCommodityDiroComponent, {
10063
10179
  related: {
10064
10180
  interactionRender: interactionRender$2,
10065
10181
  bindableProps: [],
10066
- settingRender: settingRender$1
10182
+ settingRender: settingRender$2
10067
10183
  },
10068
10184
  defaulSetting: {
10069
10185
  props: {
@@ -10177,7 +10293,7 @@ const MultiCommodity = createMaterial(MultiCommodityComponent, {
10177
10293
  type: 'MultiCommodity',
10178
10294
  related: {
10179
10295
  interactionRender: interactionRender$1,
10180
- settingRender: settingRender$1,
10296
+ settingRender: settingRender$2,
10181
10297
  bindableProps: []
10182
10298
  },
10183
10299
  defaulSetting: {
@@ -10293,7 +10409,7 @@ const MultiCommodityDiroNew = createMaterial(MultiCommodityDiroNewComponent, {
10293
10409
  related: {
10294
10410
  interactionRender,
10295
10411
  bindableProps: [],
10296
- settingRender: settingRender$1
10412
+ settingRender: settingRender$2
10297
10413
  },
10298
10414
  defaulSetting: {
10299
10415
  props: {
@@ -10339,11 +10455,11 @@ var _a, _b;
10339
10455
  * @Author: binruan@chatlabs.com
10340
10456
  * @Date: 2024-04-07 14:07:12
10341
10457
  * @LastEditors: binruan@chatlabs.com
10342
- * @LastEditTime: 2024-05-23 11:03:15
10458
+ * @LastEditTime: 2024-06-11 11:04:55
10343
10459
  * @FilePath: \pb-sxp-ui\src\materials\sxp\HashTag\settingRender.tsx
10344
10460
  *
10345
10461
  */
10346
- var settingRender = [
10462
+ var settingRender$1 = [
10347
10463
  {
10348
10464
  title: 'Banner',
10349
10465
  child: [
@@ -10366,7 +10482,8 @@ var settingRender = [
10366
10482
  {
10367
10483
  type: 'Switch',
10368
10484
  label: '固定宽高',
10369
- name: ['props', 'isWaterfallFlow']
10485
+ name: ['props', 'openFixedSize'],
10486
+ initialValue: true
10370
10487
  }
10371
10488
  ]
10372
10489
  },
@@ -11975,8 +12092,8 @@ const WaterfallFlowItem$1 = (props) => {
11975
12092
  React.createElement("div", { className: 'waterFallList-content-listItem-info-price', hidden: !priceText, style: textStyles.price }, priceText))));
11976
12093
  };
11977
12094
  function WaterfallList$1(_a) {
11978
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
11979
- var { reportTagsView } = _a, props = __rest(_a, ["reportTagsView"]);
12095
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
12096
+ var { reportTagsView, showBanner } = _a, props = __rest(_a, ["reportTagsView", "showBanner"]);
11980
12097
  const { waterFallData, getRecommendVideos, hashTagSize, loadingImage, isOpenHashTag } = useSxpDataSource();
11981
12098
  /** 滚动的父元素 */
11982
12099
  const scrollParent = useRef(null);
@@ -12180,25 +12297,30 @@ function WaterfallList$1(_a) {
12180
12297
  return (React.createElement(React.Fragment, null, isLoadingData ? (React.createElement("div", { style: { height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' } },
12181
12298
  React.createElement("img", { width: 64, height: 64, src: loadingImage, alt: 'loading...', style: { objectFit: 'contain' } }))) : (React.createElement("div", { className: 'waterFallList', ref: waterfallFlowDom },
12182
12299
  React.createElement("div", { className: 'waterFallList-scroll', ref: scrollParent },
12183
- React.createElement("div", { className: 'waterFallList-info', style: (_b = props === null || props === void 0 ? void 0 : props.textStyles) === null || _b === void 0 ? void 0 : _b.hashTagDesc }, (_c = data === null || data === void 0 ? void 0 : data.tag) === null || _c === void 0 ? void 0 : _c.info),
12184
- React.createElement("div", { hidden: !((_d = data === null || data === void 0 ? void 0 : data.tag) === null || _d === void 0 ? void 0 : _d.link), className: 'waterFallList-collection', style: Object.assign({}, (_e = props === null || props === void 0 ? void 0 : props.textStyles) === null || _e === void 0 ? void 0 : _e.hashTagLink), onClick: handleClickLink }, ((_f = data === null || data === void 0 ? void 0 : data.tag) === null || _f === void 0 ? void 0 : _f.linkTitle) || 'Shop the collection'),
12300
+ showBanner && ((_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.picture) && (React.createElement(FormatImage$1, { className: css({
12301
+ width: '100%',
12302
+ objectFit: 'cover',
12303
+ marginBottom: '20px'
12304
+ }), src: (_c = data === null || data === void 0 ? void 0 : data.tag) === null || _c === void 0 ? void 0 : _c.picture })),
12305
+ React.createElement("div", { className: 'waterFallList-info', style: (_d = props === null || props === void 0 ? void 0 : props.textStyles) === null || _d === void 0 ? void 0 : _d.hashTagDesc }, (_e = data === null || data === void 0 ? void 0 : data.tag) === null || _e === void 0 ? void 0 : _e.info),
12306
+ React.createElement("div", { hidden: !((_f = data === null || data === void 0 ? void 0 : data.tag) === null || _f === void 0 ? void 0 : _f.link), className: 'waterFallList-collection', style: Object.assign({}, (_g = props === null || props === void 0 ? void 0 : props.textStyles) === null || _g === void 0 ? void 0 : _g.hashTagLink), onClick: handleClickLink }, ((_h = data === null || data === void 0 ? void 0 : data.tag) === null || _h === void 0 ? void 0 : _h.linkTitle) || 'Shop the collection'),
12185
12307
  React.createElement("div", { className: 'waterFallList-content' }, list === null || list === void 0 ? void 0 :
12186
12308
  list.map((item, ind) => {
12187
12309
  var _a;
12188
12310
  return (React.createElement(WaterfallFlowItem$1, Object.assign({ key: ind, index: ind, rec: item, list: list, showBorder: scrollTop + ((_a = scrollParent === null || scrollParent === void 0 ? void 0 : scrollParent.current) === null || _a === void 0 ? void 0 : _a.clientHeight), style: styleList[ind], sizeChange: onSizeChange, unitWidth: unitWidth, reportTagsView: reportTagsView }, props)));
12189
12311
  }),
12190
- React.createElement("div", { hidden: !((_g = data === null || data === void 0 ? void 0 : data.tag) === null || _g === void 0 ? void 0 : _g.link), style: {
12312
+ React.createElement("div", { hidden: !((_j = data === null || data === void 0 ? void 0 : data.tag) === null || _j === void 0 ? void 0 : _j.link), style: {
12191
12313
  position: 'absolute',
12192
12314
  width: '100%',
12193
- transform: `translate(0px,${(_m = ((_j = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current[((_h = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current) === null || _h === void 0 ? void 0 : _h.length) - 1]) === null || _j === void 0 ? void 0 : _j.top) +
12194
- ((_l = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current[((_k = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current) === null || _k === void 0 ? void 0 : _k.length) - 1]) === null || _l === void 0 ? void 0 : _l.height)) !== null && _m !== void 0 ? _m : 0}px)`,
12195
- height: ((_o = data === null || data === void 0 ? void 0 : data.tag) === null || _o === void 0 ? void 0 : _o.link)
12196
- ? ((_p = buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) === null || _p === void 0 ? void 0 : _p.offsetHeight) || ((_q = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _q === void 0 ? void 0 : _q.height) || '100px'
12315
+ transform: `translate(0px,${(_p = ((_l = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current[((_k = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current) === null || _k === void 0 ? void 0 : _k.length) - 1]) === null || _l === void 0 ? void 0 : _l.top) +
12316
+ ((_o = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current[((_m = waterfallFlowListInfo === null || waterfallFlowListInfo === void 0 ? void 0 : waterfallFlowListInfo.current) === null || _m === void 0 ? void 0 : _m.length) - 1]) === null || _o === void 0 ? void 0 : _o.height)) !== null && _p !== void 0 ? _p : 0}px)`,
12317
+ height: ((_q = data === null || data === void 0 ? void 0 : data.tag) === null || _q === void 0 ? void 0 : _q.link)
12318
+ ? ((_r = buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) === null || _r === void 0 ? void 0 : _r.offsetHeight) || ((_s = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _s === void 0 ? void 0 : _s.height) || '100px'
12197
12319
  : 0
12198
12320
  } }))),
12199
- React.createElement("div", { className: 'waterFallList-bottom', hidden: !((_r = data === null || data === void 0 ? void 0 : data.tag) === null || _r === void 0 ? void 0 : _r.link), style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
12200
- React.createElement("div", { ref: buttonRef, hidden: !((_s = data === null || data === void 0 ? void 0 : data.tag) === null || _s === void 0 ? void 0 : _s.link), className: 'waterFallList-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
12201
- React.createElement("button", { className: 'waterFallList-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink }, ((_t = data === null || data === void 0 ? void 0 : data.tag) === null || _t === void 0 ? void 0 : _t.linkTitle) || 'Shop the collection'))))));
12321
+ React.createElement("div", { className: 'waterFallList-bottom', hidden: !((_t = data === null || data === void 0 ? void 0 : data.tag) === null || _t === void 0 ? void 0 : _t.link), style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
12322
+ React.createElement("div", { ref: buttonRef, hidden: !((_u = data === null || data === void 0 ? void 0 : data.tag) === null || _u === void 0 ? void 0 : _u.link), className: 'waterFallList-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
12323
+ React.createElement("button", { className: 'waterFallList-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink }, ((_v = data === null || data === void 0 ? void 0 : data.tag) === null || _v === void 0 ? void 0 : _v.linkTitle) || 'Shop the collection'))))));
12202
12324
  }
12203
12325
 
12204
12326
  var img$1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAaZJREFUeF7t2jFKBEEQRuG3mSJeQTARURDMTL2EqXfwAnoKD6FHMDEzNVIw2tzQC2gFggyDrExX1V92T7wz9PumFnqbXdH5teq8nwEwJqBzgfEVKDYAW8Ae8NZq3ZUm4Aa4AnaBR+C8BUIVAIu/ngSfAs9LESoAWLgB/LzWwP7SeLtfHWAu3tZ9Adz/dwD3eOUJCIlXBQiLVwQIjVcDCI9XAkiJVwFIi1cASI3PBpjb3jbd5GyyUcraCUrEZ02ATHwGgFR8NIBcfCSAZHwUgGx8BIB0vDeAfLwnQIl4L4Ay8R4ApeJbA2wD78DOZA/e7ABzk739Xz/T8rfAIfA6WYCd3BqA7NUSwCKfgLNKCK0BjoC7rzP74yoIrQGsuxSCB0ApBC+AMgieACUQvAHkESIApBGiAGQRIgEkEaIB5BAyAKQQsgBkEDIBJBCyAdIRFABSEVQA0hCUAFIQ1ADCERQBQhFUAcIQlAFCENQBfkOwg9eXpeftFQDmEOzv8ifARy8A3wiXwAHwANwujbf7q0xAi9bZZwwAN9oiDx4TUORFuS2z+wn4BAiAaEHnKChjAAAAAElFTkSuQmCC";
@@ -12327,8 +12449,8 @@ const WaterfallFlowItem = (props) => {
12327
12449
  React.createElement("div", { className: 'list-content-listItem-info-price', style: textStyles === null || textStyles === void 0 ? void 0 : textStyles.price, hidden: !priceText }, priceText))));
12328
12450
  };
12329
12451
  function WaterfallList(_a) {
12330
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
12331
- var { reportTagsView } = _a, props = __rest(_a, ["reportTagsView"]);
12452
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
12453
+ var { reportTagsView, showBanner } = _a, props = __rest(_a, ["reportTagsView", "showBanner"]);
12332
12454
  const { waterFallData, getRecommendVideos, hashTagSize, loadingImage, isOpenHashTag } = useSxpDataSource();
12333
12455
  const [list, setList] = useState();
12334
12456
  const [data, setData] = useState();
@@ -12399,31 +12521,37 @@ function WaterfallList(_a) {
12399
12521
  return (React.createElement(React.Fragment, null, isLoadingData ? (React.createElement("div", { style: { height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' } },
12400
12522
  React.createElement("img", { width: 64, height: 64, src: loadingImage, alt: 'loading...', style: { objectFit: 'contain' } }))) : (React.createElement("div", { className: 'list' },
12401
12523
  React.createElement("div", { className: 'list-scroll', ref: containerRef },
12402
- React.createElement("div", { className: 'list-info', style: (_b = props === null || props === void 0 ? void 0 : props.textStyles) === null || _b === void 0 ? void 0 : _b.hashTagDesc }, (_c = data === null || data === void 0 ? void 0 : data.tag) === null || _c === void 0 ? void 0 : _c.info),
12403
- React.createElement("div", { hidden: !((_d = data === null || data === void 0 ? void 0 : data.tag) === null || _d === void 0 ? void 0 : _d.link), className: 'list-collection', onClick: handleClickLink, style: Object.assign(Object.assign({}, (_e = props === null || props === void 0 ? void 0 : props.textStyles) === null || _e === void 0 ? void 0 : _e.hashTagLink), { marginBottom: props === null || props === void 0 ? void 0 : props.space }) }, ((_f = data === null || data === void 0 ? void 0 : data.tag) === null || _f === void 0 ? void 0 : _f.linkTitle) || 'Shop the collection'),
12524
+ showBanner && ((_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.picture) && (React.createElement(FormatImage$1, { className: css({
12525
+ width: '100%',
12526
+ objectFit: 'cover',
12527
+ marginBottom: '20px'
12528
+ }), src: (_c = data === null || data === void 0 ? void 0 : data.tag) === null || _c === void 0 ? void 0 : _c.picture })),
12529
+ React.createElement("div", { className: 'list-info', style: (_d = props === null || props === void 0 ? void 0 : props.textStyles) === null || _d === void 0 ? void 0 : _d.hashTagDesc }, (_e = data === null || data === void 0 ? void 0 : data.tag) === null || _e === void 0 ? void 0 : _e.info),
12530
+ React.createElement("div", { hidden: !((_f = data === null || data === void 0 ? void 0 : data.tag) === null || _f === void 0 ? void 0 : _f.link), className: 'list-collection', onClick: handleClickLink, style: Object.assign(Object.assign({}, (_g = props === null || props === void 0 ? void 0 : props.textStyles) === null || _g === void 0 ? void 0 : _g.hashTagLink), { marginBottom: props === null || props === void 0 ? void 0 : props.space }) }, ((_h = data === null || data === void 0 ? void 0 : data.tag) === null || _h === void 0 ? void 0 : _h.linkTitle) || 'Shop the collection'),
12404
12531
  React.createElement("div", { className: 'list-content' }, list === null || list === void 0 ? void 0 : list.map((item, ind) => {
12405
12532
  return (React.createElement(WaterfallFlowItem, Object.assign({ key: ind, index: ind, rec: item, list: list, reportTagsView: reportTagsView }, props)));
12406
12533
  })),
12407
12534
  React.createElement("div", { hidden: !isLoadMore, style: { textAlign: 'center' } }, "loading..."),
12408
- React.createElement("div", { hidden: !((_g = data === null || data === void 0 ? void 0 : data.tag) === null || _g === void 0 ? void 0 : _g.link), style: {
12409
- 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
12535
+ React.createElement("div", { hidden: !((_j = data === null || data === void 0 ? void 0 : data.tag) === null || _j === void 0 ? void 0 : _j.link), style: {
12536
+ height: ((_k = data === null || data === void 0 ? void 0 : data.tag) === null || _k === void 0 ? void 0 : _k.link) ? ((_l = props === null || props === void 0 ? void 0 : props.buttonBgStyle) === null || _l === void 0 ? void 0 : _l.height) || ((_m = props === null || props === void 0 ? void 0 : props.buttonStyle) === null || _m === void 0 ? void 0 : _m.height) || '100px' : 0
12410
12537
  } })),
12411
- 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 }),
12412
- 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' }) },
12413
- 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'))))));
12538
+ React.createElement("div", { className: 'list-bottom', hidden: !((_o = data === null || data === void 0 ? void 0 : data.tag) === null || _o === void 0 ? void 0 : _o.link), style: props === null || props === void 0 ? void 0 : props.buttonBgStyle }),
12539
+ React.createElement("div", { hidden: !((_p = data === null || data === void 0 ? void 0 : data.tag) === null || _p === void 0 ? void 0 : _p.link), className: 'list-btn-wrap', style: Object.assign(Object.assign({}, props === null || props === void 0 ? void 0 : props.buttonBgStyle), { height: 'auto', backgroundColor: 'transparent' }) },
12540
+ React.createElement("button", { className: 'list-btn', style: props === null || props === void 0 ? void 0 : props.buttonStyle, onClick: handleClickLink }, ((_q = data === null || data === void 0 ? void 0 : data.tag) === null || _q === void 0 ? void 0 : _q.linkTitle) || 'Shop the collection'))))));
12414
12541
  }
12415
12542
 
12416
12543
  /*
12417
12544
  * @Author: binruan@chatlabs.com
12418
12545
  * @Date: 2024-01-10 10:58:24
12419
12546
  * @LastEditors: binruan@chatlabs.com
12420
- * @LastEditTime: 2024-06-07 10:35:35
12547
+ * @LastEditTime: 2024-06-12 14:18:56
12421
12548
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\WaterFall\index.tsx
12422
12549
  *
12423
12550
  */
12424
12551
  const WaterFall = (props) => {
12425
12552
  var _a;
12426
- const { waterFallData, setOpenHashtag, openHashtag, swiperRef, setWaterFallData, cacheRtcList, setRtcList, cacheActiveIndex, rtcList, setCacheRtcList, setIsFromHashtag, isFromHashtag, bffEventReport } = useSxpDataSource();
12553
+ const { waterFallData, setOpenHashtag, openHashtag, swiperRef, setWaterFallData, cacheRtcList, setRtcList, cacheActiveIndex, rtcList, setCacheRtcList, setIsFromHashtag, isFromHashtag, bffEventReport, themeTag } = useSxpDataSource();
12554
+ const { backMainFeed } = useEventReport();
12427
12555
  useRef(null);
12428
12556
  const modalEleRef = useRef(null);
12429
12557
  const [viewTime, setViewTime] = useState();
@@ -12444,6 +12572,9 @@ const WaterFall = (props) => {
12444
12572
  if (!isEq && cacheRtcList && (cacheRtcList === null || cacheRtcList === void 0 ? void 0 : cacheRtcList.length)) {
12445
12573
  setRtcList === null || setRtcList === void 0 ? void 0 : setRtcList(cacheRtcList);
12446
12574
  }
12575
+ if (!(themeTag === null || themeTag === void 0 ? void 0 : themeTag.current)) {
12576
+ backMainFeed('branch', themeTag === null || themeTag === void 0 ? void 0 : themeTag.current, waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag);
12577
+ }
12447
12578
  reportTagsView();
12448
12579
  setWaterFallData === null || setWaterFallData === void 0 ? void 0 : setWaterFallData(undefined);
12449
12580
  setIsFromHashtag === null || setIsFromHashtag === void 0 ? void 0 : setIsFromHashtag(false);
@@ -12511,7 +12642,7 @@ const WaterFall = (props) => {
12511
12642
  display: openHashtag ? 'block' : 'none'
12512
12643
  } },
12513
12644
  React.createElement(Navbar$1, { icon: img$1, styles: { top: '32px' }, textStyle: (_a = props === null || props === void 0 ? void 0 : props.textStyles) === null || _a === void 0 ? void 0 : _a.hashTagTitle, onClose: handleClose }),
12514
- (props === null || props === void 0 ? void 0 : props.isWaterfallFlow) ? (React.createElement(WaterfallList$1, Object.assign({ reportTagsView: reportTagsView }, props))) : (React.createElement(WaterfallList, Object.assign({ reportTagsView: reportTagsView }, props)))), modalEleRef.current);
12645
+ (props === null || props === void 0 ? void 0 : props.openFixedSize) === true || (props === null || props === void 0 ? void 0 : props.openFixedSize) === undefined ? (React.createElement(WaterfallList, Object.assign({ reportTagsView: reportTagsView }, props))) : (React.createElement(WaterfallList$1, Object.assign({ reportTagsView: reportTagsView }, props)))), modalEleRef.current);
12515
12646
  };
12516
12647
  var WaterFall$1 = memo(WaterFall);
12517
12648
 
@@ -12542,7 +12673,7 @@ const HashTag = createMaterial(HashTagComponent, {
12542
12673
  category: 'base',
12543
12674
  type: 'HashTag',
12544
12675
  related: {
12545
- settingRender,
12676
+ settingRender: settingRender$1,
12546
12677
  bindableProps: []
12547
12678
  },
12548
12679
  defaulSetting: {
@@ -12599,6 +12730,84 @@ const HashTag = createMaterial(HashTagComponent, {
12599
12730
  sort: 2
12600
12731
  });
12601
12732
 
12733
+ /*
12734
+ * @Author: binruan@chatlabs.com
12735
+ * @Date: 2024-06-13 10:08:32
12736
+ * @LastEditors: binruan@chatlabs.com
12737
+ * @LastEditTime: 2024-06-13 17:42:50
12738
+ * @FilePath: \pb-sxp-ui\src\materials\sxp\Consent\settingRender.tsx
12739
+ *
12740
+ */
12741
+ var settingRender = [
12742
+ {
12743
+ title: '协议详情',
12744
+ child: [
12745
+ {
12746
+ type: 'Switch',
12747
+ label: '必须同意用户协议',
12748
+ name: ['props', 'privacy_necessity'],
12749
+ extra: '当新用户进入页面时,会出现用户协议弹窗,用户需要先同意协议后才能访问内容。'
12750
+ },
12751
+ {
12752
+ type: 'Text',
12753
+ label: '弹窗标题',
12754
+ name: ['props', 'privacy_title']
12755
+ },
12756
+ {
12757
+ type: 'TextArea',
12758
+ label: '用户协议弹窗内容',
12759
+ name: ['props', 'privacy_context']
12760
+ },
12761
+ {
12762
+ type: 'Group',
12763
+ label: '隐私政策',
12764
+ child: [
12765
+ {
12766
+ type: 'Text',
12767
+ name: ['props', 'privacy_policy_title']
12768
+ },
12769
+ {
12770
+ type: 'Text',
12771
+ name: ['props', 'privacy_policy_url'],
12772
+ addonBefore: 'https://'
12773
+ }
12774
+ ],
12775
+ extra: '当用户点击更多信息按钮时,将会跳转至设置的链接查看政策内容'
12776
+ }
12777
+ ]
12778
+ }
12779
+ ];
12780
+
12781
+ const Consent$1 = (props) => {
12782
+ return React.createElement(Consent$1, Object.assign({}, props));
12783
+ };
12784
+ var ConsentComponent = memo(Consent$1);
12785
+
12786
+ /*
12787
+ * @Author: binruan@chatlabs.com
12788
+ * @Date: 2023-07-28 18:29:57
12789
+ * @LastEditors: binruan@chatlabs.com
12790
+ * @LastEditTime: 2024-06-13 17:32:17
12791
+ * @FilePath: \pb-sxp-ui\src\materials\sxp\Consent\material.tsx
12792
+ *
12793
+ */
12794
+ const Consent = createMaterial(ConsentComponent, {
12795
+ displayName: 'Consent',
12796
+ icon: '',
12797
+ category: 'base',
12798
+ type: 'Consent',
12799
+ related: {
12800
+ settingRender
12801
+ },
12802
+ defaulSetting: {
12803
+ props: {},
12804
+ style: {}
12805
+ },
12806
+ w: 100,
12807
+ h: 40,
12808
+ sort: 1
12809
+ });
12810
+
12602
12811
  /*
12603
12812
  * @Author: binruan@chatlabs.com
12604
12813
  * @Date: 2023-07-25 14:56:49
@@ -12617,6 +12826,7 @@ var _materials_ = /*#__PURE__*/Object.freeze({
12617
12826
  CommodityDetailDiroNew: CommodityDetailDiroNew,
12618
12827
  CommodityDiro: CommodityDiro,
12619
12828
  CommodityDiroNew: CommodityDiroNew,
12829
+ Consent: Consent,
12620
12830
  HashTag: HashTag,
12621
12831
  Link: Link,
12622
12832
  MultiCommodity: MultiCommodity,
@@ -13289,16 +13499,37 @@ const Nudge = ({ nudge }) => {
13289
13499
  React.createElement("p", { style: Object.assign(Object.assign({}, nudge === null || nudge === void 0 ? void 0 : nudge.textStyle), { textWrap: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', flex: 1, marginBottom: 0 }) }, (_g = nudge === null || nudge === void 0 ? void 0 : nudge.content) !== null && _g !== void 0 ? _g : '')))));
13290
13500
  };
13291
13501
 
13502
+ /*
13503
+ * @Author: binruan@chatlabs.com
13504
+ * @Date: 2024-04-29 16:32:21
13505
+ * @LastEditors: binruan@chatlabs.com
13506
+ * @LastEditTime: 2024-06-12 11:01:48
13507
+ * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Tagbar.tsx
13508
+ *
13509
+ */
13292
13510
  const DEFAULT_TAG = 'FOR U';
13293
13511
  const Tagbar = ({ tagList = [], setActiveIndex }) => {
13294
13512
  const [selectTag, setSelectTag] = useState(DEFAULT_TAG);
13295
- const { getRecommendVideos, setRtcList, setCacheRtcList, setCacheActiveIndex, setLoading, swiperRef, waterFallData } = useSxpDataSource();
13513
+ const { getRecommendVideos, setRtcList, setCacheRtcList, setCacheActiveIndex, setLoading, swiperRef, waterFallData, bffEventReport } = useSxpDataSource();
13514
+ const { backMainFeed } = useEventReport();
13296
13515
  const realTagList = useMemo(() => {
13297
13516
  return [DEFAULT_TAG, ...tagList];
13298
13517
  }, [tagList]);
13299
13518
  const handleSelectTag = (tag) => () => {
13300
13519
  if (tag === selectTag)
13301
13520
  return;
13521
+ if (tag !== 'FOR U') {
13522
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
13523
+ eventInfo: {
13524
+ eventSubject: 'clickThemeTagsViewContents',
13525
+ eventDescription: 'click Theme Tags View Contents',
13526
+ themeTags: `[${tag}]`
13527
+ }
13528
+ });
13529
+ }
13530
+ else {
13531
+ backMainFeed('theme', selectTag);
13532
+ }
13302
13533
  let themeTag;
13303
13534
  if (tag !== DEFAULT_TAG) {
13304
13535
  themeTag = tag;
@@ -13330,7 +13561,7 @@ var Tagbar$1 = memo(Tagbar);
13330
13561
  * @Author: binruan@chatlabs.com
13331
13562
  * @Date: 2024-01-15 19:03:09
13332
13563
  * @LastEditors: binruan@chatlabs.com
13333
- * @LastEditTime: 2024-06-07 11:10:42
13564
+ * @LastEditTime: 2024-06-13 18:09:16
13334
13565
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
13335
13566
  *
13336
13567
  */
@@ -13341,11 +13572,11 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
13341
13572
  const viewImageStartTime = useRef(0);
13342
13573
  const [isInit, setIsInit] = useState(false);
13343
13574
  const [isMuted, setIsMuted] = useState(true);
13344
- const curTime = useRef();
13345
13575
  const viewTime = useRef();
13346
13576
  const [isLoadMore, setIsLoadMore] = useState(false);
13347
13577
  const [isShowMore, setIsShowMore] = useState(false);
13348
- const { loadVideos, bffEventReport, loading, setPopupDetailData, ctaEvent, swiperRef, waterFallData, setOpenHashtag, appDomain, openHashtag, loadingImage, isFromHashtag, popupDetailData, bffFbReport } = useSxpDataSource();
13578
+ const { loadVideos, bffEventReport, loading, setPopupDetailData, ctaEvent, swiperRef, waterFallData, setOpenHashtag, appDomain, openHashtag, loadingImage, isFromHashtag, popupDetailData, bffFbReport, curTime, h5EnterLink } = useSxpDataSource();
13579
+ const { backMainFeed } = useEventReport();
13349
13580
  const [videoRef, setVideoRef] = useState(null);
13350
13581
  const playerRef = useRef();
13351
13582
  const { productView } = useEventReport();
@@ -13353,44 +13584,20 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
13353
13584
  return data.length > 0 && !loading && getFeUserId();
13354
13585
  }, [data, loading]);
13355
13586
  const handleH5EnterLink = useCallback(() => {
13356
- var _a, _b;
13357
13587
  if (data.length <= 0) {
13358
13588
  return;
13359
13589
  }
13360
- initTime();
13361
- // 刷新 sessionId
13362
- // refreshFeSessionId();
13363
- const queryString = location.search.slice(1);
13364
- const params = qs.parse(queryString.replace(/\+/g, '%2B'));
13365
- for (const key in params) {
13366
- params[key] = params[key].replace(/%2B/g, '+');
13590
+ refreshFeSessionId();
13591
+ const now = new Date();
13592
+ viewTime.current = now;
13593
+ if (isInit) {
13594
+ h5EnterLink === null || h5EnterLink === void 0 ? void 0 : h5EnterLink();
13367
13595
  }
13368
- const getVal = (key) => { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ''; };
13369
- bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
13370
- eventInfo: {
13371
- eventSubject: 'h5LinkEnterFeed',
13372
- eventDescription: 'User enter h5 link',
13373
- utmSource: getVal('utm_source'),
13374
- utmMedium: getVal('utm_medium'),
13375
- utmCampaign: getVal('utm_campaign'),
13376
- utmId: getVal('utm_id'),
13377
- utmContent: getVal('utm_content'),
13378
- enterTime: `${Date.now()}`,
13379
- requestId: null,
13380
- enterUrl: (_b = (_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.href) !== null && _b !== void 0 ? _b : '',
13381
- clSource: getVal('cl_sourc')
13382
- }
13383
- });
13384
13596
  bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
13385
13597
  eventName: 'PageView'
13386
13598
  });
13387
13599
  setIsInit(true);
13388
- }, [bffEventReport, data.length, bffFbReport]);
13389
- const initTime = () => {
13390
- curTime.current = new Date();
13391
- viewTime.current = new Date();
13392
- refreshFeSessionId();
13393
- };
13600
+ }, [data.length, bffFbReport, h5EnterLink, isInit]);
13394
13601
  const firstRef = useRef();
13395
13602
  useEffect(() => {
13396
13603
  var _a, _b, _c, _d;
@@ -13486,13 +13693,33 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
13486
13693
  handleH5EnterLink();
13487
13694
  handleViewImageStartEvent(activeIndex);
13488
13695
  SXP_EVENT_BUS.emit(SXP_EVENT_TYPE.PAGE_DID_SHOW, item);
13696
+ backMainFeed('external');
13489
13697
  }
13490
13698
  };
13491
13699
  document.addEventListener('visibilitychange', visibleChange);
13492
13700
  return () => {
13493
13701
  document.removeEventListener('visibilitychange', visibleChange);
13494
13702
  };
13495
- }, [activeIndex, bffEventReport, curTime, data, handleH5EnterLink, popupDetailData, isFromHashtag, tempMap]);
13703
+ }, [
13704
+ activeIndex,
13705
+ bffEventReport,
13706
+ data,
13707
+ handleH5EnterLink,
13708
+ popupDetailData,
13709
+ isFromHashtag,
13710
+ tempMap,
13711
+ curTime,
13712
+ backMainFeed
13713
+ ]);
13714
+ useEffect(() => {
13715
+ const initTime = () => {
13716
+ backMainFeed('external');
13717
+ };
13718
+ window.addEventListener('pageshow', initTime);
13719
+ return () => {
13720
+ window.removeEventListener('pageshow', initTime);
13721
+ };
13722
+ }, []);
13496
13723
  const tagHeight = useMemo(() => {
13497
13724
  let h = 0;
13498
13725
  if (tagList.length > 0) {
@@ -14234,7 +14461,7 @@ const Popup = () => {
14234
14461
  * @Author: binruan@chatlabs.com
14235
14462
  * @Date: 2024-01-15 19:03:09
14236
14463
  * @LastEditors: binruan@chatlabs.com
14237
- * @LastEditTime: 2024-05-17 18:41:05
14464
+ * @LastEditTime: 2024-06-13 14:54:12
14238
14465
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageCore\index.tsx
14239
14466
  *
14240
14467
  */
@@ -14251,14 +14478,14 @@ Object.values(_materials_).forEach((v) => {
14251
14478
  RESOLVER[v.extend.type] = v;
14252
14479
  });
14253
14480
  const SxpPageCore = ({ data, maxSize = 10, defaultSize = 10, hashTagSize = 20, loadingImage, appDomain, licenseUrl, enabledMetaConversionApi }) => {
14254
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
14481
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
14255
14482
  const utmVal = useMemo(() => {
14256
14483
  var _a;
14257
14484
  const searchParams = (location === null || location === void 0 ? void 0 : location.search) ? (_a = location === null || location === void 0 ? void 0 : location.search) === null || _a === void 0 ? void 0 : _a.replace('?', '') : '';
14258
14485
  return searchParams;
14259
14486
  }, []);
14260
14487
  return (React.createElement(EditorCore, { resolver: RESOLVER, enableDataSource: false, schema: data === null || data === void 0 ? void 0 : data.data, utmVal: utmVal },
14261
- React.createElement(SxpDataSourceProvider$1, { utmVal: utmVal, dataSources: data === null || data === void 0 ? void 0 : data.data_sources, sxpParameter: data === null || data === void 0 ? void 0 : data.sxp_parameter, maxSize: (_b = (_a = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _a === void 0 ? void 0 : _a.personalized_recommend) !== null && _b !== void 0 ? _b : maxSize, defaultSize: (_d = (_c = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _c === void 0 ? void 0 : _c.default_recommend) !== null && _d !== void 0 ? _d : defaultSize, hashTagSize: (_f = (_e = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _e === void 0 ? void 0 : _e.hash_tag_size) !== null && _f !== void 0 ? _f : hashTagSize, loadingImage: loadingImage, appDomain: appDomain, enabledMetaConversionApi: enabledMetaConversionApi, isShowTag: (_j = (_h = (_g = data === null || data === void 0 ? void 0 : data.data) === null || _g === void 0 ? void 0 : _g.sxpPageConf) === null || _h === void 0 ? void 0 : _h.globalConfig) === null || _j === void 0 ? void 0 : _j.isShowTag, render: ({ rtcList, tagList }) => {
14488
+ React.createElement(SxpDataSourceProvider$1, { utmVal: utmVal, dataSources: data === null || data === void 0 ? void 0 : data.data_sources, sxpParameter: data === null || data === void 0 ? void 0 : data.sxp_parameter, maxSize: (_b = (_a = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _a === void 0 ? void 0 : _a.personalized_recommend) !== null && _b !== void 0 ? _b : maxSize, defaultSize: (_d = (_c = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _c === void 0 ? void 0 : _c.default_recommend) !== null && _d !== void 0 ? _d : defaultSize, hashTagSize: (_f = (_e = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _e === void 0 ? void 0 : _e.hash_tag_size) !== null && _f !== void 0 ? _f : hashTagSize, loadingImage: loadingImage, appDomain: appDomain, enabledMetaConversionApi: enabledMetaConversionApi, isShowTag: (_j = (_h = (_g = data === null || data === void 0 ? void 0 : data.data) === null || _g === void 0 ? void 0 : _g.sxpPageConf) === null || _h === void 0 ? void 0 : _h.globalConfig) === null || _j === void 0 ? void 0 : _j.isShowTag, globalConfig: (_l = (_k = data === null || data === void 0 ? void 0 : data.data) === null || _k === void 0 ? void 0 : _k.sxpPageConf) === null || _l === void 0 ? void 0 : _l.globalConfig, render: ({ rtcList, tagList }) => {
14262
14489
  var _a;
14263
14490
  return (React.createElement(React.Fragment, null,
14264
14491
  React.createElement(SxpPageRender, Object.assign({}, (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.sxpPageConf, { tagList: tagList, data: rtcList, resolver: RESOLVER, licenseUrl: licenseUrl })),
@@ -14277,8 +14504,9 @@ var index = memo(SxpPageCore);
14277
14504
  */
14278
14505
  const EditorDataContext = createContext({});
14279
14506
  const EditorDataProvider = ({ children, data }) => {
14280
- var _a, _b, _c, _d, _e, _f;
14507
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
14281
14508
  const [openHashtag, setOpenHashtag] = useState(false);
14509
+ const [openConsent, setOpenConsent] = useState(false);
14282
14510
  return (React.createElement(EditorDataContext.Provider, { value: {
14283
14511
  sxpPrameter: {
14284
14512
  bottomImage: (_a = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _a === void 0 ? void 0 : _a.bottom_image,
@@ -14286,11 +14514,20 @@ const EditorDataProvider = ({ children, data }) => {
14286
14514
  personalizedRecommend: (_c = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _c === void 0 ? void 0 : _c.personalized_recommend,
14287
14515
  placeholderImage: (_d = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _d === void 0 ? void 0 : _d.placeholder_image,
14288
14516
  hashTagSize: (_e = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _e === void 0 ? void 0 : _e.hash_tag_size,
14289
- loadingImage: (_f = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _f === void 0 ? void 0 : _f.loading_image
14517
+ loadingImage: (_f = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _f === void 0 ? void 0 : _f.loading_image,
14518
+ privacyContent: (_g = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _g === void 0 ? void 0 : _g.privacy_context,
14519
+ privacyNecessity: (_h = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _h === void 0 ? void 0 : _h.privacy_necessity,
14520
+ privacyPolicyTitle: (_j = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _j === void 0 ? void 0 : _j.privacy_policy_title,
14521
+ privacyPolicyUrl: (_k = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _k === void 0 ? void 0 : _k.privacy_policy_url,
14522
+ privacyTitle: (_l = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _l === void 0 ? void 0 : _l.privacy_title,
14523
+ template: (_m = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _m === void 0 ? void 0 : _m.template,
14524
+ industry: (_o = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _o === void 0 ? void 0 : _o.industry
14290
14525
  },
14291
14526
  appDomain: data === null || data === void 0 ? void 0 : data.appDomain,
14292
14527
  openHashtag,
14293
- setOpenHashtag
14528
+ setOpenHashtag,
14529
+ openConsent,
14530
+ setOpenConsent
14294
14531
  } }, children));
14295
14532
  };
14296
14533
  function useEditorDataProvider() {