pb-sxp-ui 1.9.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/index.cjs +197 -192
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +67 -4
  4. package/dist/index.js +197 -192
  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 +197 -192
  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/components/SxpPageRender/ExpandableText.js +1 -1
  15. package/es/core/components/SxpPageRender/Hashtag/index.js +2 -2
  16. package/es/core/components/SxpPageRender/Modal/index.js +44 -6
  17. package/es/core/components/SxpPageRender/index.js +3 -3
  18. package/es/core/hooks/useFocusTrap.d.ts +2 -0
  19. package/es/core/hooks/useFocusTrap.js +37 -0
  20. package/es/index.d.ts +1 -0
  21. package/es/index.js +1 -0
  22. package/es/materials/sxp/popup/CommodityDetail/index.js +4 -2
  23. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
  24. package/es/materials/sxp/popup/CommodityList/index.js +32 -28
  25. package/es/materials/sxp/template/Appoint/index.js +1 -1
  26. package/es/materials/sxp/template/Commodity/index.js +4 -4
  27. package/es/materials/sxp/template/CommodityDiro/index.js +4 -4
  28. package/es/materials/sxp/template/CommodityDiroNew/index.js +4 -4
  29. package/es/materials/sxp/template/Link/index.js +1 -1
  30. package/es/materials/sxp/template/MultiCommodity/index.js +23 -42
  31. package/es/materials/sxp/template/MultiCommodityDiro/index.js +24 -42
  32. package/es/materials/sxp/template/MultiCommodityDiroNew/index.js +25 -44
  33. package/es/materials/sxp/template/components/EventProvider.d.ts +2 -0
  34. package/es/materials/sxp/template/components/EventProvider.js +22 -11
  35. package/es/materials/sxp/template/components/Scroll.js +1 -1
  36. package/lib/core/components/SxpPageRender/ExpandableText.js +1 -1
  37. package/lib/core/components/SxpPageRender/Hashtag/index.js +2 -2
  38. package/lib/core/components/SxpPageRender/Modal/index.js +44 -6
  39. package/lib/core/components/SxpPageRender/index.js +3 -3
  40. package/lib/core/hooks/useFocusTrap.d.ts +2 -0
  41. package/lib/core/hooks/useFocusTrap.js +39 -0
  42. package/lib/index.d.ts +1 -0
  43. package/lib/index.js +1 -0
  44. package/lib/materials/sxp/popup/CommodityDetail/index.js +4 -2
  45. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
  46. package/lib/materials/sxp/popup/CommodityList/index.js +32 -28
  47. package/lib/materials/sxp/template/Appoint/index.js +1 -1
  48. package/lib/materials/sxp/template/Commodity/index.js +4 -4
  49. package/lib/materials/sxp/template/CommodityDiro/index.js +4 -4
  50. package/lib/materials/sxp/template/CommodityDiroNew/index.js +4 -4
  51. package/lib/materials/sxp/template/Link/index.js +1 -1
  52. package/lib/materials/sxp/template/MultiCommodity/index.js +22 -41
  53. package/lib/materials/sxp/template/MultiCommodityDiro/index.js +23 -41
  54. package/lib/materials/sxp/template/MultiCommodityDiroNew/index.js +24 -43
  55. package/lib/materials/sxp/template/components/EventProvider.d.ts +2 -0
  56. package/lib/materials/sxp/template/components/EventProvider.js +21 -10
  57. package/lib/materials/sxp/template/components/Scroll.js +1 -1
  58. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -8975,7 +8975,7 @@ SwiperSlide.displayName = 'SwiperSlide';
8975
8975
  * @Author: binruan@chatlabs.com
8976
8976
  * @Date: 2023-11-02 18:34:34
8977
8977
  * @LastEditors: binruan@chatlabs.com
8978
- * @LastEditTime: 2024-11-06 17:27:45
8978
+ * @LastEditTime: 2024-11-19 14:28:41
8979
8979
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Modal\index.tsx
8980
8980
  *
8981
8981
  */
@@ -8986,6 +8986,7 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
8986
8986
  const fTouchRef = useRef(null);
8987
8987
  const touchMoveRef = useRef(null);
8988
8988
  const ref = useRef(null);
8989
+ const modalRef = useRef(null);
8989
8990
  const MODAL_DEF_TRANS = fullHeight * 0.2;
8990
8991
  const MODAL_DEF_CON_H = isFullScreen ? fullHeight : fullHeight * 0.8;
8991
8992
  const [modalTrans, setModalTrans] = useState(MODAL_DEF_TRANS);
@@ -9033,6 +9034,46 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
9033
9034
  const child = useCallback(() => {
9034
9035
  return children;
9035
9036
  }, [_popup, openState, globalConfig]);
9037
+ useEffect(() => {
9038
+ const trapFocus = (element) => {
9039
+ var focusableEls = element === null || element === void 0 ? void 0 : element.querySelectorAll('a, a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])');
9040
+ var firstFocusableEl = focusableEls === null || focusableEls === void 0 ? void 0 : focusableEls[0];
9041
+ var lastFocusableEl = focusableEls === null || focusableEls === void 0 ? void 0 : focusableEls[(focusableEls === null || focusableEls === void 0 ? void 0 : focusableEls.length) - 1];
9042
+ var KEYCODE_TAB = 9;
9043
+ element.addEventListener('keydown', function (e) {
9044
+ if (e.key === 'Escape' || e.key === 'Esc') {
9045
+ // 在这里执行按下 Esc 键时的操作
9046
+ handleClose();
9047
+ e.preventDefault();
9048
+ }
9049
+ var isTabPressed = e.key === 'Tab' || e.keyCode === KEYCODE_TAB;
9050
+ if (!isTabPressed) {
9051
+ return;
9052
+ }
9053
+ if (e.shiftKey) {
9054
+ /* shift + tab */
9055
+ if ((document === null || document === void 0 ? void 0 : document.activeElement) === firstFocusableEl) {
9056
+ lastFocusableEl === null || lastFocusableEl === void 0 ? void 0 : lastFocusableEl.focus();
9057
+ e.preventDefault();
9058
+ }
9059
+ }
9060
+ else {
9061
+ /* tab */
9062
+ if ((document === null || document === void 0 ? void 0 : document.activeElement) === lastFocusableEl) {
9063
+ firstFocusableEl === null || firstFocusableEl === void 0 ? void 0 : firstFocusableEl.focus();
9064
+ e.preventDefault();
9065
+ }
9066
+ }
9067
+ });
9068
+ firstFocusableEl === null || firstFocusableEl === void 0 ? void 0 : firstFocusableEl.focus();
9069
+ };
9070
+ if (modalRef === null || modalRef === void 0 ? void 0 : modalRef.current)
9071
+ trapFocus(modalRef === null || modalRef === void 0 ? void 0 : modalRef.current);
9072
+ return () => {
9073
+ var _a;
9074
+ (_a = modalRef === null || modalRef === void 0 ? void 0 : modalRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('keydown', trapFocus);
9075
+ };
9076
+ }, [modalRef, isShow, _popup]);
9036
9077
  if (!modalEleRef.current)
9037
9078
  return null;
9038
9079
  const handleClose = debounce(() => {
@@ -9097,7 +9138,7 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
9097
9138
  width: `calc(100% - ${((_r = (_q = (_p = (_o = getPopupById === null || getPopupById === void 0 ? void 0 : getPopupById.item) === null || _o === void 0 ? void 0 : _o.props) === null || _p === void 0 ? void 0 : _p.popupBg) === null || _q === void 0 ? void 0 : _q.horizontalMargin) !== null && _r !== void 0 ? _r : 0) * 2}px)`,
9098
9139
  height: '100%'
9099
9140
  } },
9100
- React.createElement("div", Object.assign({ className: `modal-container ${isOpen ? 'modal-popIn' : 'modal-popOut'}`, role: 'dialog', "aria-label": (_s = getPopupById === null || getPopupById === void 0 ? void 0 : getPopupById.item) === null || _s === void 0 ? void 0 : _s.displayName, "aria-modal": true, style: Object.assign(Object.assign({ padding, animationDuration: ((_t = popup === null || popup === void 0 ? void 0 : popup.duration) !== null && _t !== void 0 ? _t : 0) / 1000 + 's' }, (isScrollFullScreen && {
9141
+ React.createElement("div", Object.assign({ ref: modalRef, className: `modal-container ${isOpen ? 'modal-popIn' : 'modal-popOut'}`, role: 'dialog', "aria-label": (_s = getPopupById === null || getPopupById === void 0 ? void 0 : getPopupById.item) === null || _s === void 0 ? void 0 : _s.displayName, "aria-modal": true, "aria-labelledby": 'modal-content', style: Object.assign(Object.assign({ padding, animationDuration: ((_t = popup === null || popup === void 0 ? void 0 : popup.duration) !== null && _t !== void 0 ? _t : 0) / 1000 + 's' }, (isScrollFullScreen && {
9101
9142
  transform: `translateY(${modalTrans}px)`
9102
9143
  })), { overflow: 'hidden', borderRadius: `${(_x = (_w = (_v = (_u = getPopupById === null || getPopupById === void 0 ? void 0 : getPopupById.item) === null || _u === void 0 ? void 0 : _u.props) === null || _v === void 0 ? void 0 : _v.popupBg) === null || _w === void 0 ? void 0 : _w.borderRadius) !== null && _x !== void 0 ? _x : 0}px`, zIndex: 9 }), onClick: (e) => {
9103
9144
  e.stopPropagation();
@@ -9107,18 +9148,18 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
9107
9148
  onTouchStart: handleTouchStart,
9108
9149
  onTouchEnd: handleTouchEnd
9109
9150
  })),
9110
- React.createElement("button", { className: 'modal-icon-wrapper', role: 'button', "aria-label": 'close button', onClick: onClose, style: { top: scrollTop } },
9111
- React.createElement("img", { src: (_y = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.popupCloseIcon) !== null && _y !== void 0 ? _y : closeIcon$1, alt: 'close button', className: 'modal-icon' })),
9112
- React.createElement("div", Object.assign({ ref: ref, style: {
9151
+ React.createElement("div", Object.assign({ id: 'modal-content', ref: ref, style: {
9113
9152
  height: isScrollFullScreen ? fullHeight : MODAL_DEF_CON_H,
9114
9153
  overflow: (isScrollFullScreen && modalTrans <= 0) || !isScrollFullScreen ? 'auto' : 'hidden',
9115
9154
  zIndex: 1
9116
- } }, (((_0 = (_z = getPopupById === null || getPopupById === void 0 ? void 0 : getPopupById.item) === null || _z === void 0 ? void 0 : _z.props) === null || _0 === void 0 ? void 0 : _0.enableFixedCloseButton) && {
9155
+ } }, (((_z = (_y = getPopupById === null || getPopupById === void 0 ? void 0 : getPopupById.item) === null || _y === void 0 ? void 0 : _y.props) === null || _z === void 0 ? void 0 : _z.enableFixedCloseButton) && {
9117
9156
  onScroll: (e) => {
9118
9157
  var _a;
9119
9158
  setScrollTop(15 - ((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.scrollTop));
9120
9159
  }
9121
- })), child())))))), modalEleRef.current);
9160
+ })), child()),
9161
+ React.createElement("button", { className: 'modal-icon-wrapper', role: 'button', "aria-label": 'close button', onClick: onClose, style: { top: scrollTop } },
9162
+ React.createElement("img", { src: (_0 = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.popupCloseIcon) !== null && _0 !== void 0 ? _0 : closeIcon$1, alt: 'close button', className: 'modal-icon' }))))))), modalEleRef.current);
9122
9163
  };
9123
9164
  var Modal$1 = memo(Modal);
9124
9165
 
@@ -9126,7 +9167,7 @@ var Modal$1 = memo(Modal);
9126
9167
  * @Author: binruan@chatlabs.com
9127
9168
  * @Date: 2023-12-26 16:11:34
9128
9169
  * @LastEditors: binruan@chatlabs.com
9129
- * @LastEditTime: 2024-10-18 14:52:42
9170
+ * @LastEditTime: 2024-11-07 14:27:18
9130
9171
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\ExpandableText.tsx
9131
9172
  *
9132
9173
  */
@@ -9183,7 +9224,7 @@ const ExpandableText = ({ text, maxStr = 108, style, className, onClick, foldTex
9183
9224
  wordBreak: 'break-word'
9184
9225
  }, dangerouslySetInnerHTML: { __html: setFontForText(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
9185
9226
  React.createElement("div", { ref: multiRowCopy, dangerouslySetInnerHTML: { __html: setFontForText(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
9186
- text && isPost && isShow && (React.createElement("span", { style: { textDecoration: 'underline', cursor: 'pointer' }, onClick: onClick !== null && onClick !== void 0 ? onClick : handleClick, dangerouslySetInnerHTML: {
9227
+ text && isPost && isShow && (React.createElement("button", { "aria-label": isShowMore ? unfoldText || 'show less' : foldText || 'show more', style: { textDecoration: 'underline', cursor: 'pointer' }, onClick: onClick !== null && onClick !== void 0 ? onClick : handleClick, dangerouslySetInnerHTML: {
9187
9228
  __html: setFontForText(isShowMore ? unfoldText || 'show less' : foldText || 'show more', style)
9188
9229
  } }))));
9189
9230
  };
@@ -9236,7 +9277,7 @@ var FormatImage$1 = memo(FormatImage);
9236
9277
  * @Author: binruan@chatlabs.com
9237
9278
  * @Date: 2024-03-20 10:27:32
9238
9279
  * @LastEditors: binruan@chatlabs.com
9239
- * @LastEditTime: 2024-10-17 18:02:56
9280
+ * @LastEditTime: 2024-11-19 10:29:18
9240
9281
  * @FilePath: \pb-sxp-ui\src\materials\sxp\template\components\Scroll.tsx
9241
9282
  *
9242
9283
  */
@@ -9248,7 +9289,7 @@ const Scroll = ({ children, isPadding = true, style, enableSlideActive = false }
9248
9289
  if (enableSlideActive)
9249
9290
  (_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.swiper.slideTo((_b = popupDetailData === null || popupDetailData === void 0 ? void 0 : popupDetailData.multiCheckIndex) !== null && _b !== void 0 ? _b : 0);
9250
9291
  }, [popupDetailData, enableSlideActive]);
9251
- return (React.createElement(Swiper, { ref: ref, direction: 'horizontal', slidesPerView: 'auto', freeMode: true, mousewheel: true, modules: [freeMode, Scrollbar, Mousewheel], style: Object.assign({ padding: isPadding ? '0 12px 0 20px' : 0 }, style) }, children));
9292
+ return (React.createElement(Swiper, { role: 'list', tag: 'ul', ref: ref, direction: 'horizontal', slidesPerView: 'auto', freeMode: true, mousewheel: true, modules: [freeMode, Scrollbar, Mousewheel], style: Object.assign({ padding: isPadding ? '0 12px 0 20px' : 0 }, style) }, children));
9252
9293
  };
9253
9294
  var Scroll$1 = memo(Scroll);
9254
9295
 
@@ -9461,7 +9502,7 @@ const CommodityDetail$1 = (_a) => {
9461
9502
  };
9462
9503
  const renderBtn = () => {
9463
9504
  var _a, _b;
9464
- return (React.createElement(React.Fragment, null, (isDefault || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("button", { "aria-label": (_a = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _a !== void 0 ? _a : 'Purchase on Website', onClick: handleLink, className: 'pb-commondity-btn', style: buttonStyle },
9505
+ return (React.createElement(React.Fragment, null, (isDefault || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("a", { "aria-label": (_a = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _a !== void 0 ? _a : 'Purchase on Website', role: 'button', tabIndex: 0, onClick: handleLink, className: 'pb-commondity-btn', style: buttonStyle },
9465
9506
  React.createElement("span", { dangerouslySetInnerHTML: {
9466
9507
  __html: setFontForText((_b = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _b !== void 0 ? _b : 'Purchase on Website', buttonStyle)
9467
9508
  } })))));
@@ -9499,7 +9540,9 @@ const CommodityDetail$1 = (_a) => {
9499
9540
  return (React.createElement(React.Fragment, null,
9500
9541
  React.createElement("div", Object.assign({ className: css(Object.assign({}, style)) }, props),
9501
9542
  React.createElement("div", { style: { position: 'relative' } },
9502
- product && ((_w = product === null || product === void 0 ? void 0 : product.homePage) === null || _w === void 0 ? void 0 : _w.length) > 0 && (React.createElement(Swiper, { height: height, modules: [Pagination, Autoplay], pagination: {
9543
+ product && ((_w = product === null || product === void 0 ? void 0 : product.homePage) === null || _w === void 0 ? void 0 : _w.length) > 0 && (React.createElement(Swiper, { a11y: {
9544
+ enabled: true
9545
+ }, height: height, modules: [Pagination, Autoplay], pagination: {
9503
9546
  clickable: true,
9504
9547
  bulletActiveClass: 'swipe-item-active-bullet',
9505
9548
  clickableClass: getDotsAlign,
@@ -10488,7 +10531,7 @@ Made in Italy` })));
10488
10531
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right-price', hidden: !!product && !(product === null || product === void 0 ? void 0 : product.taxInfo), style: getStyle(commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo), dangerouslySetInnerHTML: {
10489
10532
  __html: setFontForText((_2 = product === null || product === void 0 ? void 0 : product.taxInfo) !== null && _2 !== void 0 ? _2 : '税费', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo)
10490
10533
  } }))),
10491
- (!product || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("button", { "aria-label": (_3 = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _3 !== void 0 ? _3 : 'Shop now', onClick: handleLink, className: 'pb-commondityDiroNew-btn', style: buttonStyle },
10534
+ (!product || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("a", { "aria-label": (_3 = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _3 !== void 0 ? _3 : 'Shop now', role: 'button', tabIndex: 0, onClick: handleLink, className: 'pb-commondityDiroNew-btn', style: buttonStyle },
10492
10535
  React.createElement("span", { dangerouslySetInnerHTML: {
10493
10536
  __html: setFontForText((_4 = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _4 !== void 0 ? _4 : 'Shop now', buttonStyle)
10494
10537
  } }))),
@@ -10966,39 +11009,43 @@ const CommodityList$1 = (_a) => {
10966
11009
  eventName: 'PageView'
10967
11010
  });
10968
11011
  }, []);
10969
- return (React.createElement("div", { className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexDirection: 'column', gap: '10px', padding: '0 20px', marginTop: '50px', boxSizing: 'border-box' })) }, product === null || product === void 0 ? void 0 : product.map((item, index) => {
11012
+ return (React.createElement("ul", { role: 'list', className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexDirection: 'column', gap: '10px', padding: '0 20px', marginTop: '50px', boxSizing: 'border-box' })) }, product === null || product === void 0 ? void 0 : product.map((item, index) => {
10970
11013
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
10971
- return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement("div", Object.assign({ key: index }, props, { className: css({
10972
- display: 'flex'
10973
- }), onClick: () => handleClick(item, index) }),
10974
- React.createElement(Img$1, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: commodityPicture, enableEventReport: false }),
10975
- React.createElement("div", { style: {
10976
- width: `calc(100% - ${(_e = commodityPicture === null || commodityPicture === void 0 ? void 0 : commodityPicture.width) !== null && _e !== void 0 ? _e : 0}px - ${(_f = commodityPicture === null || commodityPicture === void 0 ? void 0 : commodityPicture.marginRight) !== null && _f !== void 0 ? _f : 0}px)`,
11014
+ return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement("li", { role: 'listitem', key: index, onClick: () => handleClick(item, index) },
11015
+ React.createElement("button", Object.assign({ role: 'button', "aria-label": item === null || item === void 0 ? void 0 : item.title, tabIndex: 0, className: css({
10977
11016
  display: 'flex',
10978
- flexDirection: 'column',
10979
- justifyContent: 'space-between'
10980
- } },
10981
- React.createElement("div", null,
10982
- React.createElement("div", { className: 'one-line-ellipsis', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title, hidden: !!item && !(item === null || item === void 0 ? void 0 : item.title), dangerouslySetInnerHTML: {
10983
- __html: setFontForText((_g = item === null || item === void 0 ? void 0 : item.title) !== null && _g !== void 0 ? _g : 'Pendant in Yellow Gold with Diamonds, Medium', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title)
10984
- } }),
10985
- React.createElement("div", { className: 'two-line-ellipsis', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection, hidden: !!item && (!(item === null || item === void 0 ? void 0 : item.collection) || (item === null || item === void 0 ? void 0 : item.collection) === ''), dangerouslySetInnerHTML: {
10986
- __html: setFontForText((_h = item === null || item === void 0 ? void 0 : item.collection) !== null && _h !== void 0 ? _h : 'Tiffany Lock', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection)
10987
- } })),
10988
- React.createElement("div", { className: css({
11017
+ alignItems: 'normal',
11018
+ width: '100%',
11019
+ textAlign: 'left'
11020
+ }) }, props),
11021
+ React.createElement(Img$1, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: commodityPicture, enableEventReport: false }),
11022
+ React.createElement("div", { style: {
11023
+ width: `calc(100% - ${(_e = commodityPicture === null || commodityPicture === void 0 ? void 0 : commodityPicture.width) !== null && _e !== void 0 ? _e : 0}px - ${(_f = commodityPicture === null || commodityPicture === void 0 ? void 0 : commodityPicture.marginRight) !== null && _f !== void 0 ? _f : 0}px)`,
10989
11024
  display: 'flex',
10990
- alignItems: 'flex-end',
10991
- justifyContent: 'space-between',
10992
- width: '100%',
10993
- overflow: 'hidden'
10994
- }) },
11025
+ flexDirection: 'column',
11026
+ justifyContent: 'space-between'
11027
+ } },
10995
11028
  React.createElement("div", null,
10996
- React.createElement("div", { style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price, hidden: !!item && !(item === null || item === void 0 ? void 0 : item.price), dangerouslySetInnerHTML: {
10997
- __html: (_j = priceText(item)) !== null && _j !== void 0 ? _j : ''
11029
+ React.createElement("div", { className: 'one-line-ellipsis', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title, hidden: !!item && !(item === null || item === void 0 ? void 0 : item.title), dangerouslySetInnerHTML: {
11030
+ __html: setFontForText((_g = item === null || item === void 0 ? void 0 : item.title) !== null && _g !== void 0 ? _g : 'Pendant in Yellow Gold with Diamonds, Medium', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title)
11031
+ } }),
11032
+ React.createElement("div", { className: 'two-line-ellipsis', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection, hidden: !!item && (!(item === null || item === void 0 ? void 0 : item.collection) || (item === null || item === void 0 ? void 0 : item.collection) === ''), dangerouslySetInnerHTML: {
11033
+ __html: setFontForText((_h = item === null || item === void 0 ? void 0 : item.collection) !== null && _h !== void 0 ? _h : 'Tiffany Lock', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection)
10998
11034
  } })),
10999
- React.createElement("div", { className: 'one-line-ellipsis', style: Object.assign(Object.assign({}, buttonStyle), { padding: '0 15px' }), dangerouslySetInnerHTML: {
11000
- __html: setFontForText((_l = (_k = item === null || item === void 0 ? void 0 : item.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now', buttonStyle)
11001
- } })))))));
11035
+ React.createElement("div", { className: css({
11036
+ display: 'flex',
11037
+ alignItems: 'flex-end',
11038
+ justifyContent: 'space-between',
11039
+ width: '100%',
11040
+ overflow: 'hidden'
11041
+ }) },
11042
+ React.createElement("div", null,
11043
+ React.createElement("div", { style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price, hidden: !!item && !(item === null || item === void 0 ? void 0 : item.price), dangerouslySetInnerHTML: {
11044
+ __html: (_j = priceText(item)) !== null && _j !== void 0 ? _j : ''
11045
+ } })),
11046
+ React.createElement("div", { className: 'one-line-ellipsis', style: Object.assign(Object.assign({}, buttonStyle), { padding: '0 15px' }), dangerouslySetInnerHTML: {
11047
+ __html: setFontForText((_l = (_k = item === null || item === void 0 ? void 0 : item.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now', buttonStyle)
11048
+ } }))))))));
11002
11049
  })));
11003
11050
  };
11004
11051
  var CommodityListComponent = memo(CommodityList$1);
@@ -11468,44 +11515,55 @@ var interactionRender$a = [
11468
11515
  ];
11469
11516
 
11470
11517
  const EventProvider = (_a) => {
11471
- var { rec, children, className, onClick, style, isExternalLink = false, index, jumpLink } = _a; __rest(_a, ["rec", "children", "className", "onClick", "style", "isExternalLink", "index", "jumpLink"]);
11518
+ var { rec, children, className, onClick, style, isExternalLink = false, index, jumpLink, multItem, multiCheckIndex } = _a; __rest(_a, ["rec", "children", "className", "onClick", "style", "isExternalLink", "index", "jumpLink", "multItem", "multiCheckIndex"]);
11472
11519
  const ref = useRef(null);
11473
11520
  const { popup } = useEditor();
11474
11521
  const { setPopupDetailData, ctaEvent } = useSxpDataSource();
11475
11522
  const { jumpToWeb } = useEventReport();
11476
- const handleClick = throttle(() => {
11477
- var _a, _b, _c, _d, _e, _f, _g, _h;
11478
- const item = (_b = (_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.bindProduct) !== null && _b !== void 0 ? _b : rec === null || rec === void 0 ? void 0 : rec.video;
11523
+ const [element, setElement] = useState(null);
11524
+ const handleClick = throttle((event) => {
11525
+ var _a, _b, _c, _d, _e, _f, _g;
11526
+ event.preventDefault();
11527
+ const item = (_c = (_b = (_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.bindProduct) !== null && _b !== void 0 ? _b : rec === null || rec === void 0 ? void 0 : rec.video) !== null && _c !== void 0 ? _c : multItem;
11479
11528
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
11480
11529
  eventSubject: 'clickCta',
11481
11530
  eventDescription: 'User clicked the CTA'
11482
11531
  }, rec, item, index);
11483
- setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, rec), { index }));
11532
+ setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(multItem && multiCheckIndex
11533
+ ? Object.assign(Object.assign({}, rec), { video: Object.assign(Object.assign({}, rec === null || rec === void 0 ? void 0 : rec.video), { bindProduct: multItem }), index, multiCheckIndex }) : Object.assign(Object.assign({}, rec), { index }));
11534
+ setElement(ref === null || ref === void 0 ? void 0 : ref.current);
11484
11535
  if (isExternalLink) {
11485
- if (jumpLink || ((_d = (_c = rec === null || rec === void 0 ? void 0 : rec.video) === null || _c === void 0 ? void 0 : _c.bindProduct) === null || _d === void 0 ? void 0 : _d.link)) {
11486
- const cta = (_e = rec === null || rec === void 0 ? void 0 : rec.video) === null || _e === void 0 ? void 0 : _e.bindCta;
11487
- const product = (_f = rec === null || rec === void 0 ? void 0 : rec.video) === null || _f === void 0 ? void 0 : _f.bindProduct;
11536
+ const link = ((_e = (_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.bindProduct) === null || _e === void 0 ? void 0 : _e.link) || (multItem === null || multItem === void 0 ? void 0 : multItem.link);
11537
+ if (jumpLink || link) {
11538
+ const cta = ((_f = rec === null || rec === void 0 ? void 0 : rec.video) === null || _f === void 0 ? void 0 : _f.bindCta) || (multItem === null || multItem === void 0 ? void 0 : multItem.bindCta);
11539
+ const product = ((_g = rec === null || rec === void 0 ? void 0 : rec.video) === null || _g === void 0 ? void 0 : _g.bindProduct) || multItem;
11488
11540
  jumpToWeb(rec, product, cta, index);
11489
- window.location.href = window.getJointUtmLink(jumpLink || ((_h = (_g = rec === null || rec === void 0 ? void 0 : rec.video) === null || _g === void 0 ? void 0 : _g.bindProduct) === null || _h === void 0 ? void 0 : _h.link) || '');
11541
+ window.location.href = window.getJointUtmLink(jumpLink || link || '');
11490
11542
  }
11491
11543
  }
11492
11544
  else {
11493
11545
  onClick === null || onClick === void 0 ? void 0 : onClick();
11494
11546
  }
11495
11547
  }, popup === null || popup === void 0 ? void 0 : popup.duration);
11496
- return (React.createElement("div", { ref: ref, className: className, style: style, onClick: handleClick }, children));
11548
+ useEffect(() => {
11549
+ if (element && !(popup === null || popup === void 0 ? void 0 : popup.id)) {
11550
+ element === null || element === void 0 ? void 0 : element.focus();
11551
+ setElement(null);
11552
+ }
11553
+ }, [element, popup]);
11554
+ return (React.createElement("button", { ref: ref, className: className, style: Object.assign({ display: 'flex', alignItems: 'normal' }, style), onClick: handleClick, role: 'button', "aria-label": 'CTA', tabIndex: 0 }, children));
11497
11555
  };
11498
11556
  var EventProvider$1 = memo(EventProvider);
11499
11557
 
11500
11558
  var styles$8 = {"tow-line-ellipsis":"index-module_tow-line-ellipsis__3bKKx"};
11501
11559
 
11502
11560
  const Commodity$1 = (_a) => {
11503
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
11561
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
11504
11562
  var { content, style, bgImg, recData, bottom_image, ctaTempStyles, isExternalLink, translateY = 0, index, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "isExternalLink", "translateY", "index", "isActive"]);
11505
11563
  const { sxpParameter } = useSxpDataSource();
11506
11564
  const product = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProduct;
11507
11565
  const src = (_f = (_e = (_c = product === null || product === void 0 ? void 0 : product.cover) !== null && _c !== void 0 ? _c : (_d = product === null || product === void 0 ? void 0 : product.homePage) === null || _d === void 0 ? void 0 : _d[0]) !== null && _e !== void 0 ? _e : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _f !== void 0 ? _f : bottom_image;
11508
- return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, className: css(Object.assign({}, style)), style: { display: 'flex' }, index: index }, props),
11566
+ return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, style: style, index: index }, props),
11509
11567
  React.createElement(Img$1, { src: src, rec: recData, item: (_h = (_g = recData === null || recData === void 0 ? void 0 : recData.video) === null || _g === void 0 ? void 0 : _g.bindProduct) !== null && _h !== void 0 ? _h : recData === null || recData === void 0 ? void 0 : recData.video, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
11510
11568
  React.createElement("div", { className: css({
11511
11569
  color: '#fff',
@@ -11518,8 +11576,8 @@ const Commodity$1 = (_a) => {
11518
11576
  React.createElement("div", { className: styles$8['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
11519
11577
  __html: setFontForText((_j = product === null || product === void 0 ? void 0 : product.title) !== null && _j !== void 0 ? _j : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
11520
11578
  } }),
11521
- React.createElement("div", { className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', lineHeight: ((_k = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _k === void 0 ? void 0 : _k.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
11522
- __html: setFontForText((_m = (_l = product === null || product === void 0 ? void 0 : product.bindCta) === null || _l === void 0 ? void 0 : _l.enTitle) !== null && _m !== void 0 ? _m : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
11579
+ React.createElement("button", { "aria-label": (_l = (_k = product === null || product === void 0 ? void 0 : product.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now', className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', lineHeight: ((_m = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _m === void 0 ? void 0 : _m.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
11580
+ __html: setFontForText((_p = (_o = product === null || product === void 0 ? void 0 : product.bindCta) === null || _o === void 0 ? void 0 : _o.enTitle) !== null && _p !== void 0 ? _p : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
11523
11581
  } }))));
11524
11582
  };
11525
11583
  var CommodityComponent = memo(Commodity$1);
@@ -11599,7 +11657,7 @@ const Appoint$1 = (_a) => {
11599
11657
  const { sxpParameter } = useSxpDataSource();
11600
11658
  const cta = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindCta;
11601
11659
  const src = (_d = (_c = cta === null || cta === void 0 ? void 0 : cta.icon) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image;
11602
- return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, className: css(Object.assign({ alignItems: 'center' }, style)), style: { display: 'flex' }, index: index }, props),
11660
+ return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, style: Object.assign({ alignItems: 'center' }, style), index: index }, props),
11603
11661
  React.createElement(Img$1, { src: src, rec: recData, item: (_f = (_e = recData === null || recData === void 0 ? void 0 : recData.video) === null || _e === void 0 ? void 0 : _e.bindProduct) !== null && _f !== void 0 ? _f : recData === null || recData === void 0 ? void 0 : recData.video, index: index, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
11604
11662
  React.createElement("div", { className: css(Object.assign({ overflow: 'hidden', textOverflow: 'ellipsis' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
11605
11663
  __html: setFontForText((_g = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _g !== void 0 ? _g : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
@@ -11783,7 +11841,7 @@ const Link$1 = (_a) => {
11783
11841
  const cta = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindCta;
11784
11842
  (_c = recData === null || recData === void 0 ? void 0 : recData.video) === null || _c === void 0 ? void 0 : _c.bindProduct;
11785
11843
  const src = (_e = (_d = cta === null || cta === void 0 ? void 0 : cta.icon) !== null && _d !== void 0 ? _d : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _e !== void 0 ? _e : bottom_image;
11786
- return (React.createElement(EventProvider$1, Object.assign({ index: index, rec: recData, className: css(Object.assign({ alignItems: 'center' }, style)), style: { display: 'flex' } }, props, { jumpLink: (_f = cta === null || cta === void 0 ? void 0 : cta.link) !== null && _f !== void 0 ? _f : '' }),
11844
+ return (React.createElement(EventProvider$1, Object.assign({ index: index, rec: recData, style: Object.assign({ alignItems: 'center' }, style) }, props, { jumpLink: (_f = cta === null || cta === void 0 ? void 0 : cta.link) !== null && _f !== void 0 ? _f : '' }),
11787
11845
  React.createElement(Img$1, { src: src, rec: recData, item: (_h = (_g = recData === null || recData === void 0 ? void 0 : recData.video) === null || _g === void 0 ? void 0 : _g.bindProduct) !== null && _h !== void 0 ? _h : recData === null || recData === void 0 ? void 0 : recData.video, index: index, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
11788
11846
  React.createElement("div", { className: css({
11789
11847
  display: 'flex',
@@ -11893,12 +11951,12 @@ var interactionRender$7 = [
11893
11951
  var styles$6 = {"tow-line-ellipsis":"index-module_tow-line-ellipsis__yyHVb"};
11894
11952
 
11895
11953
  const CommodityDiro$1 = (_a) => {
11896
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
11954
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
11897
11955
  var { content, style, bgImg, recData, bottom_image, ctaTempStyles, isExternalLink, translateY = 0, index, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "isExternalLink", "translateY", "index", "isActive"]);
11898
11956
  const { sxpParameter } = useSxpDataSource();
11899
11957
  const product = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProduct;
11900
11958
  const src = (_f = (_e = (_c = product === null || product === void 0 ? void 0 : product.cover) !== null && _c !== void 0 ? _c : (_d = product === null || product === void 0 ? void 0 : product.homePage) === null || _d === void 0 ? void 0 : _d[0]) !== null && _e !== void 0 ? _e : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _f !== void 0 ? _f : bottom_image;
11901
- return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, className: css(Object.assign({}, style)), style: { display: 'flex' }, index: index }, props),
11959
+ return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, style: style, index: index }, props),
11902
11960
  React.createElement(Img$1, { src: src, rec: recData, item: (_h = (_g = recData === null || recData === void 0 ? void 0 : recData.video) === null || _g === void 0 ? void 0 : _g.bindProduct) !== null && _h !== void 0 ? _h : recData === null || recData === void 0 ? void 0 : recData.video, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
11903
11961
  React.createElement("div", { className: css({
11904
11962
  color: '#fff',
@@ -11911,8 +11969,8 @@ const CommodityDiro$1 = (_a) => {
11911
11969
  React.createElement("div", { className: styles$6['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
11912
11970
  __html: setFontForText((_j = product === null || product === void 0 ? void 0 : product.title) !== null && _j !== void 0 ? _j : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
11913
11971
  } }),
11914
- React.createElement("div", { className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', borderRadius: '25px', whiteSpace: 'nowrap', lineHeight: ((_k = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _k === void 0 ? void 0 : _k.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
11915
- __html: setFontForText((_m = (_l = product === null || product === void 0 ? void 0 : product.bindCta) === null || _l === void 0 ? void 0 : _l.enTitle) !== null && _m !== void 0 ? _m : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
11972
+ React.createElement("button", { "aria-label": (_l = (_k = product === null || product === void 0 ? void 0 : product.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now', className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', borderRadius: '25px', whiteSpace: 'nowrap', lineHeight: ((_m = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _m === void 0 ? void 0 : _m.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
11973
+ __html: setFontForText((_p = (_o = product === null || product === void 0 ? void 0 : product.bindCta) === null || _o === void 0 ? void 0 : _o.enTitle) !== null && _p !== void 0 ? _p : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
11916
11974
  } }))));
11917
11975
  };
11918
11976
  var CommodityDiroComponent = memo(CommodityDiro$1);
@@ -11989,12 +12047,12 @@ var interactionRender$6 = [
11989
12047
  var styles$5 = {"tow-line-ellipsis":"index-module_tow-line-ellipsis__I-yCC"};
11990
12048
 
11991
12049
  const CommodityDiroNew$1 = (_a) => {
11992
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
12050
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
11993
12051
  var { content, style, bgImg, recData, bottom_image, ctaTempStyles, isExternalLink, translateY = 0, index, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "isExternalLink", "translateY", "index", "isActive"]);
11994
12052
  const { sxpParameter } = useSxpDataSource();
11995
12053
  const product = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProduct;
11996
12054
  const src = (_f = (_e = (_c = product === null || product === void 0 ? void 0 : product.cover) !== null && _c !== void 0 ? _c : (_d = product === null || product === void 0 ? void 0 : product.homePage) === null || _d === void 0 ? void 0 : _d[0]) !== null && _e !== void 0 ? _e : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _f !== void 0 ? _f : bottom_image;
11997
- return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, className: css(Object.assign({}, style)), style: { display: 'flex' }, index: index }, props),
12055
+ return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, style: style, index: index }, props),
11998
12056
  React.createElement(Img$1, { src: src, rec: recData, item: (_h = (_g = recData === null || recData === void 0 ? void 0 : recData.video) === null || _g === void 0 ? void 0 : _g.bindProduct) !== null && _h !== void 0 ? _h : recData === null || recData === void 0 ? void 0 : recData.video, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
11999
12057
  React.createElement("div", { className: css({
12000
12058
  color: '#fff',
@@ -12007,8 +12065,8 @@ const CommodityDiroNew$1 = (_a) => {
12007
12065
  React.createElement("div", { className: styles$5['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12008
12066
  __html: setFontForText((_j = product === null || product === void 0 ? void 0 : product.title) !== null && _j !== void 0 ? _j : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
12009
12067
  } }),
12010
- React.createElement("div", { className: css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12011
- __html: setFontForText((_l = (_k = product === null || product === void 0 ? void 0 : product.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
12068
+ React.createElement("button", { "aria-label": (_l = (_k = product === null || product === void 0 ? void 0 : product.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now', className: css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12069
+ __html: setFontForText((_o = (_m = product === null || product === void 0 ? void 0 : product.bindCta) === null || _m === void 0 ? void 0 : _m.enTitle) !== null && _o !== void 0 ? _o : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
12012
12070
  } }))));
12013
12071
  };
12014
12072
  var CommodityDiroNewComponent = memo(CommodityDiroNew$1);
@@ -12087,45 +12145,28 @@ var styles$4 = {"two-line-ellipsis":"index-module_two-line-ellipsis__SFQwJ"};
12087
12145
 
12088
12146
  const MultiCommodityDiro$1 = (_a) => {
12089
12147
  var _b, _c;
12090
- var { content, style, bgImg, recData, onClick, bottom_image, ctaTempStyles, isExternalLink, index, translateY = 0, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image", "ctaTempStyles", "isExternalLink", "index", "translateY", "isActive"]);
12091
- const { ctaEvent, setPopupDetailData, sxpParameter } = useSxpDataSource();
12092
- const { popup } = useEditor();
12093
- const { jumpToWeb } = useEventReport();
12094
- const [products, setProducts] = useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
12095
- const handleClick = throttle((item, multiCheckIndex) => {
12096
- ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
12097
- eventSubject: 'clickCta',
12098
- eventDescription: 'User clicked the CTA'
12099
- }, recData, item, index);
12100
- setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { video: Object.assign(Object.assign({}, recData === null || recData === void 0 ? void 0 : recData.video), { bindProduct: item }), index, multiCheckIndex }));
12101
- if (isExternalLink) {
12102
- if (item === null || item === void 0 ? void 0 : item.link) {
12103
- jumpToWeb(recData, item, item.bindCta, index);
12104
- window.location.href = window.getJointUtmLink(item.link);
12105
- }
12106
- }
12107
- else {
12108
- onClick === null || onClick === void 0 ? void 0 : onClick();
12109
- }
12110
- }, popup === null || popup === void 0 ? void 0 : popup.duration);
12111
- return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, index) => {
12112
- var _a, _b, _c, _d, _e, _f, _g, _h;
12113
- return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key: index, className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item, index) }),
12114
- React.createElement(Img$1, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
12115
- React.createElement("div", { className: css({
12116
- color: '#000',
12117
- display: 'flex',
12118
- flexDirection: 'column',
12119
- justifyContent: 'space-between',
12120
- width: '100%',
12121
- overflow: 'hidden'
12122
- }) },
12123
- React.createElement("div", { className: styles$4['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12124
- __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
12125
- } }),
12126
- React.createElement("div", { className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', borderRadius: '25px', whiteSpace: 'nowrap', lineHeight: ((_f = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _f === void 0 ? void 0 : _f.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12127
- __html: setFontForText((_h = (_g = item === null || item === void 0 ? void 0 : item.bindCta) === null || _g === void 0 ? void 0 : _g.enTitle) !== null && _h !== void 0 ? _h : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
12128
- } }))))));
12148
+ var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive"]);
12149
+ const { sxpParameter } = useSxpDataSource();
12150
+ const [products] = useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
12151
+ return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
12152
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
12153
+ return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
12154
+ React.createElement(EventProvider$1, Object.assign({ rec: recData, multiCheckIndex: itemIndex }, props),
12155
+ React.createElement(Img$1, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: itemIndex, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
12156
+ React.createElement("div", { className: css({
12157
+ color: '#000',
12158
+ display: 'flex',
12159
+ flexDirection: 'column',
12160
+ justifyContent: 'space-between',
12161
+ width: '100%',
12162
+ overflow: 'hidden'
12163
+ }) },
12164
+ React.createElement("div", { className: styles$4['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12165
+ __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
12166
+ } }),
12167
+ React.createElement("button", { "aria-label": (_g = (_f = item === null || item === void 0 ? void 0 : item.bindCta) === null || _f === void 0 ? void 0 : _f.enTitle) !== null && _g !== void 0 ? _g : 'Shop Now', className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', borderRadius: '25px', whiteSpace: 'nowrap', lineHeight: ((_h = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _h === void 0 ? void 0 : _h.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12168
+ __html: setFontForText((_k = (_j = item === null || item === void 0 ? void 0 : item.bindCta) === null || _j === void 0 ? void 0 : _j.enTitle) !== null && _k !== void 0 ? _k : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
12169
+ } })))))));
12129
12170
  })));
12130
12171
  };
12131
12172
  var MultiCommodityDiroComponent = memo(MultiCommodityDiro$1);
@@ -12203,46 +12244,28 @@ var styles$3 = {"two-line-ellipsis":"index-module_two-line-ellipsis__mdzn0"};
12203
12244
 
12204
12245
  const MultiCommodity$1 = (_a) => {
12205
12246
  var _b, _c;
12206
- var { content, style, bgImg, recData, onClick, bottom_image, ctaTempStyles, isExternalLink, index, translateY = 0, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image", "ctaTempStyles", "isExternalLink", "index", "translateY", "isActive"]);
12247
+ var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive"]);
12207
12248
  const { sxpParameter } = useSxpDataSource();
12208
- const { ctaEvent, setPopupDetailData } = useSxpDataSource();
12209
- const { popup } = useEditor();
12210
- const [products, setProducts] = useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
12211
- const { jumpToWeb } = useEventReport();
12212
- const handleClick = throttle((item, multiCheckIndex) => {
12213
- ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
12214
- eventSubject: 'clickCta',
12215
- eventDescription: 'User clicked the CTA'
12216
- }, recData, item, index);
12217
- setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { video: Object.assign(Object.assign({}, recData === null || recData === void 0 ? void 0 : recData.video), { bindProduct: item }), index, multiCheckIndex }));
12218
- if (isExternalLink) {
12219
- if (item === null || item === void 0 ? void 0 : item.link) {
12220
- jumpToWeb(recData, item, item.bindCta, index);
12221
- window.location.href = window.getJointUtmLink(item.link);
12222
- }
12223
- }
12224
- else {
12225
- onClick === null || onClick === void 0 ? void 0 : onClick();
12226
- }
12227
- }, popup === null || popup === void 0 ? void 0 : popup.duration);
12228
- return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, index) => {
12229
- var _a, _b, _c, _d, _e, _f, _g, _h;
12230
- return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key: index, className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item, index) }),
12231
- React.createElement(Img$1, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
12232
- React.createElement("div", { className: css({
12233
- color: '#fff',
12234
- display: 'flex',
12235
- flexDirection: 'column',
12236
- justifyContent: 'space-between',
12237
- width: '100%',
12238
- overflow: 'hidden'
12239
- }) },
12240
- React.createElement("div", { className: styles$3['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12241
- __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
12242
- } }),
12243
- React.createElement("div", { className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', lineHeight: ((_f = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _f === void 0 ? void 0 : _f.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12244
- __html: setFontForText((_h = (_g = item === null || item === void 0 ? void 0 : item.bindCta) === null || _g === void 0 ? void 0 : _g.enTitle) !== null && _h !== void 0 ? _h : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
12245
- } }))))));
12249
+ const [products] = useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
12250
+ return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
12251
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
12252
+ return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
12253
+ React.createElement(EventProvider$1, Object.assign({ rec: recData, multiCheckIndex: itemIndex }, props),
12254
+ React.createElement(Img$1, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: itemIndex, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
12255
+ React.createElement("div", { className: css({
12256
+ color: '#fff',
12257
+ display: 'flex',
12258
+ flexDirection: 'column',
12259
+ justifyContent: 'space-between',
12260
+ width: '100%',
12261
+ overflow: 'hidden'
12262
+ }) },
12263
+ React.createElement("div", { className: styles$3['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12264
+ __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
12265
+ } }),
12266
+ React.createElement("button", { "aria-label": (_g = (_f = item === null || item === void 0 ? void 0 : item.bindCta) === null || _f === void 0 ? void 0 : _f.enTitle) !== null && _g !== void 0 ? _g : 'Shop Now', className: css(Object.assign({ padding: '0 7px', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', lineHeight: ((_h = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _h === void 0 ? void 0 : _h.height) + 'px' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12267
+ __html: setFontForText((_k = (_j = item === null || item === void 0 ? void 0 : item.bindCta) === null || _j === void 0 ? void 0 : _j.enTitle) !== null && _k !== void 0 ? _k : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
12268
+ } })))))));
12246
12269
  })));
12247
12270
  };
12248
12271
  var MultiCommodityComponent = memo(MultiCommodity$1);
@@ -12328,47 +12351,29 @@ var styles$2 = {"tow-line-ellipsis":"index-module_tow-line-ellipsis__fselR"};
12328
12351
 
12329
12352
  const MultiCommodityDiroNew$1 = (_a) => {
12330
12353
  var _b, _c;
12331
- var { content, style, bgImg, recData, onClick, bottom_image, ctaTempStyles, isExternalLink, index, translateY = 0, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "onClick", "bottom_image", "ctaTempStyles", "isExternalLink", "index", "translateY", "isActive"]);
12332
- const { ctaEvent, setPopupDetailData, sxpParameter } = useSxpDataSource();
12333
- const { popup } = useEditor();
12334
- const { jumpToWeb } = useEventReport();
12335
- const [products, setProducts] = useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
12336
- const handleClick = throttle((item, multiCheckIndex) => {
12337
- ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
12338
- eventSubject: 'clickCta',
12339
- eventDescription: 'User clicked the CTA'
12340
- }, recData, item, index);
12341
- setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { video: Object.assign(Object.assign({}, recData === null || recData === void 0 ? void 0 : recData.video), { bindProduct: item }), index,
12342
- multiCheckIndex }));
12343
- if (isExternalLink) {
12344
- if (item === null || item === void 0 ? void 0 : item.link) {
12345
- jumpToWeb(recData, item, item.bindCta, index);
12346
- window.location.href = window.getJointUtmLink(item.link);
12347
- }
12348
- }
12349
- else {
12350
- onClick === null || onClick === void 0 ? void 0 : onClick();
12351
- }
12352
- }, popup === null || popup === void 0 ? void 0 : popup.duration);
12353
- return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, index) => {
12354
- var _a, _b, _c, _d, _e, _f, _g;
12355
- return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, Object.assign({ key: index, className: css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item, index) }),
12356
- React.createElement(Img$1, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
12357
- React.createElement("div", { className: css({
12358
- color: '#fff',
12359
- display: 'flex',
12360
- flexDirection: 'column',
12361
- justifyContent: 'center',
12362
- width: '100%',
12363
- overflow: 'hidden',
12364
- lineHeight: '20px'
12365
- }) },
12366
- React.createElement("div", { className: styles$2['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12367
- __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
12368
- } }),
12369
- React.createElement("div", { className: css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12370
- __html: setFontForText((_g = (_f = item === null || item === void 0 ? void 0 : item.bindCta) === null || _f === void 0 ? void 0 : _f.enTitle) !== null && _g !== void 0 ? _g : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
12371
- } }))))));
12354
+ var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive"]);
12355
+ const { sxpParameter } = useSxpDataSource();
12356
+ const [products] = useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
12357
+ return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
12358
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
12359
+ return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
12360
+ React.createElement(EventProvider$1, Object.assign({ rec: recData, multiCheckIndex: itemIndex }, props),
12361
+ React.createElement(Img$1, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: itemIndex, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img, isActive: isActive }),
12362
+ React.createElement("div", { className: css({
12363
+ color: '#fff',
12364
+ display: 'flex',
12365
+ flexDirection: 'column',
12366
+ justifyContent: 'center',
12367
+ width: '100%',
12368
+ overflow: 'hidden',
12369
+ lineHeight: '20px'
12370
+ }) },
12371
+ React.createElement("div", { className: styles$2['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12372
+ __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
12373
+ } }),
12374
+ React.createElement("button", { "aria-label": (_g = (_f = item === null || item === void 0 ? void 0 : item.bindCta) === null || _f === void 0 ? void 0 : _f.enTitle) !== null && _g !== void 0 ? _g : 'Shop Now', className: css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12375
+ __html: setFontForText((_j = (_h = item === null || item === void 0 ? void 0 : item.bindCta) === null || _h === void 0 ? void 0 : _h.enTitle) !== null && _j !== void 0 ? _j : 'Shop Now', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
12376
+ } })))))));
12372
12377
  })));
12373
12378
  };
12374
12379
  var MultiCommodityDiroNewComponent = memo(MultiCommodityDiroNew$1);
@@ -16524,7 +16529,7 @@ var PictureGroup$3 = memo(PictureGroup$2);
16524
16529
  * @Author: binruan@chatlabs.com
16525
16530
  * @Date: 2024-01-15 19:03:09
16526
16531
  * @LastEditors: binruan@chatlabs.com
16527
- * @LastEditTime: 2024-10-17 18:02:31
16532
+ * @LastEditTime: 2024-11-19 10:40:36
16528
16533
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Hashtag\index.tsx
16529
16534
  *
16530
16535
  */
@@ -16565,8 +16570,8 @@ const Hashtag = ({ tags, itemId, itemType, index, rec, hashTagStyle, hashTagRigh
16565
16570
  marginTop: `${(_a = hashTagStyle === null || hashTagStyle === void 0 ? void 0 : hashTagStyle.marginTop) !== null && _a !== void 0 ? _a : 16}px`,
16566
16571
  width: hashTagRightMargin
16567
16572
  } },
16568
- React.createElement(Scroll$1, null, tags === null || tags === void 0 ? void 0 : tags.map((item, index) => (React.createElement(SwiperSlide, { key: index, hidden: !isShowMore ? index >= 6 : false, className: 'clc-sxp-bottom-hashtag-item', style: hashTagStyle, onClick: () => handleClickTag(item), tag: 'button', "aria-label": item },
16569
- React.createElement("div", { dangerouslySetInnerHTML: { __html: setFontForText(`#${item}`, hashTagStyle) } })))))));
16573
+ React.createElement(Scroll$1, null, tags === null || tags === void 0 ? void 0 : tags.map((item, index) => (React.createElement(SwiperSlide, { key: index, hidden: !isShowMore ? index >= 6 : false, className: 'clc-sxp-bottom-hashtag-item', style: hashTagStyle, onClick: () => handleClickTag(item), tag: 'li', role: 'listitem' },
16574
+ React.createElement("button", { className: 'clc-sxp-bottom-hashtag-item-button', "aria-label": item, "aria-describedby": item, dangerouslySetInnerHTML: { __html: setFontForText(`#${item}`, hashTagStyle) } })))))));
16570
16575
  };
16571
16576
  var Hashtag$1 = memo(Hashtag);
16572
16577
 
@@ -16782,7 +16787,7 @@ var ConsentPopup = memo(Consent);
16782
16787
  * @Author: binruan@chatlabs.com
16783
16788
  * @Date: 2024-03-20 10:27:31
16784
16789
  * @LastEditors: binruan@chatlabs.com
16785
- * @LastEditTime: 2024-11-05 18:13:15
16790
+ * @LastEditTime: 2024-11-19 09:47:45
16786
16791
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
16787
16792
  *
16788
16793
  */
@@ -17270,9 +17275,9 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
17270
17275
  alignItems: 'center'
17271
17276
  } },
17272
17277
  React.createElement("img", { width: 64, height: 64, src: loadingImage, alt: 'loading...', style: { objectFit: 'contain' } }))) : (React.createElement(React.Fragment, null,
17278
+ renderBottom(rec, index),
17273
17279
  renderLikeButton(rec, index, !(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconFixed)),
17274
17280
  renderToggleButton(!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconFixed)),
17275
- renderBottom(rec, index),
17276
17281
  renderContent(rec, index)))))));
17277
17282
  });
17278
17283
  }, [
@@ -17339,9 +17344,9 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
17339
17344
  }
17340
17345
  }
17341
17346
  }, direction: 'vertical', height: height },
17347
+ renderView,
17342
17348
  renderLikeButton(visList[activeIndex], activeIndex, !!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconFixed)),
17343
- renderToggleButton(!!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconFixed)),
17344
- renderView),
17349
+ renderToggleButton(!!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconFixed))),
17345
17350
  React.createElement(WaterFall$1, Object.assign({}, (_w = (_v = (_u = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.hashTag) === null || _u === void 0 ? void 0 : _u[0]) === null || _v === void 0 ? void 0 : _v.item) === null || _w === void 0 ? void 0 : _w.props)),
17346
17351
  React.createElement(ConsentPopup, { resolver: resolver, globalConfig: globalConfig })));
17347
17352
  };