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.cjs CHANGED
@@ -8997,7 +8997,7 @@ SwiperSlide.displayName = 'SwiperSlide';
8997
8997
  * @Author: binruan@chatlabs.com
8998
8998
  * @Date: 2023-11-02 18:34:34
8999
8999
  * @LastEditors: binruan@chatlabs.com
9000
- * @LastEditTime: 2024-11-06 17:27:45
9000
+ * @LastEditTime: 2024-11-19 14:28:41
9001
9001
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Modal\index.tsx
9002
9002
  *
9003
9003
  */
@@ -9008,6 +9008,7 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
9008
9008
  const fTouchRef = React.useRef(null);
9009
9009
  const touchMoveRef = React.useRef(null);
9010
9010
  const ref = React.useRef(null);
9011
+ const modalRef = React.useRef(null);
9011
9012
  const MODAL_DEF_TRANS = fullHeight * 0.2;
9012
9013
  const MODAL_DEF_CON_H = isFullScreen ? fullHeight : fullHeight * 0.8;
9013
9014
  const [modalTrans, setModalTrans] = React.useState(MODAL_DEF_TRANS);
@@ -9055,6 +9056,46 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
9055
9056
  const child = React.useCallback(() => {
9056
9057
  return children;
9057
9058
  }, [_popup, openState, globalConfig]);
9059
+ React.useEffect(() => {
9060
+ const trapFocus = (element) => {
9061
+ 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])');
9062
+ var firstFocusableEl = focusableEls === null || focusableEls === void 0 ? void 0 : focusableEls[0];
9063
+ var lastFocusableEl = focusableEls === null || focusableEls === void 0 ? void 0 : focusableEls[(focusableEls === null || focusableEls === void 0 ? void 0 : focusableEls.length) - 1];
9064
+ var KEYCODE_TAB = 9;
9065
+ element.addEventListener('keydown', function (e) {
9066
+ if (e.key === 'Escape' || e.key === 'Esc') {
9067
+ // 在这里执行按下 Esc 键时的操作
9068
+ handleClose();
9069
+ e.preventDefault();
9070
+ }
9071
+ var isTabPressed = e.key === 'Tab' || e.keyCode === KEYCODE_TAB;
9072
+ if (!isTabPressed) {
9073
+ return;
9074
+ }
9075
+ if (e.shiftKey) {
9076
+ /* shift + tab */
9077
+ if ((document === null || document === void 0 ? void 0 : document.activeElement) === firstFocusableEl) {
9078
+ lastFocusableEl === null || lastFocusableEl === void 0 ? void 0 : lastFocusableEl.focus();
9079
+ e.preventDefault();
9080
+ }
9081
+ }
9082
+ else {
9083
+ /* tab */
9084
+ if ((document === null || document === void 0 ? void 0 : document.activeElement) === lastFocusableEl) {
9085
+ firstFocusableEl === null || firstFocusableEl === void 0 ? void 0 : firstFocusableEl.focus();
9086
+ e.preventDefault();
9087
+ }
9088
+ }
9089
+ });
9090
+ firstFocusableEl === null || firstFocusableEl === void 0 ? void 0 : firstFocusableEl.focus();
9091
+ };
9092
+ if (modalRef === null || modalRef === void 0 ? void 0 : modalRef.current)
9093
+ trapFocus(modalRef === null || modalRef === void 0 ? void 0 : modalRef.current);
9094
+ return () => {
9095
+ var _a;
9096
+ (_a = modalRef === null || modalRef === void 0 ? void 0 : modalRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('keydown', trapFocus);
9097
+ };
9098
+ }, [modalRef, isShow, _popup]);
9058
9099
  if (!modalEleRef.current)
9059
9100
  return null;
9060
9101
  const handleClose = lodash.debounce(() => {
@@ -9119,7 +9160,7 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
9119
9160
  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)`,
9120
9161
  height: '100%'
9121
9162
  } },
9122
- 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 && {
9163
+ 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 && {
9123
9164
  transform: `translateY(${modalTrans}px)`
9124
9165
  })), { 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) => {
9125
9166
  e.stopPropagation();
@@ -9129,18 +9170,18 @@ const Modal = ({ visible, onClose, children, modalStyle, padding, popup, schema,
9129
9170
  onTouchStart: handleTouchStart,
9130
9171
  onTouchEnd: handleTouchEnd
9131
9172
  })),
9132
- React.createElement("button", { className: 'modal-icon-wrapper', role: 'button', "aria-label": 'close button', onClick: onClose, style: { top: scrollTop } },
9133
- 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' })),
9134
- React.createElement("div", Object.assign({ ref: ref, style: {
9173
+ React.createElement("div", Object.assign({ id: 'modal-content', ref: ref, style: {
9135
9174
  height: isScrollFullScreen ? fullHeight : MODAL_DEF_CON_H,
9136
9175
  overflow: (isScrollFullScreen && modalTrans <= 0) || !isScrollFullScreen ? 'auto' : 'hidden',
9137
9176
  zIndex: 1
9138
- } }, (((_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) && {
9177
+ } }, (((_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) && {
9139
9178
  onScroll: (e) => {
9140
9179
  var _a;
9141
9180
  setScrollTop(15 - ((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.scrollTop));
9142
9181
  }
9143
- })), child())))))), modalEleRef.current);
9182
+ })), child()),
9183
+ React.createElement("button", { className: 'modal-icon-wrapper', role: 'button', "aria-label": 'close button', onClick: onClose, style: { top: scrollTop } },
9184
+ 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);
9144
9185
  };
9145
9186
  var Modal$1 = React.memo(Modal);
9146
9187
 
@@ -9148,7 +9189,7 @@ var Modal$1 = React.memo(Modal);
9148
9189
  * @Author: binruan@chatlabs.com
9149
9190
  * @Date: 2023-12-26 16:11:34
9150
9191
  * @LastEditors: binruan@chatlabs.com
9151
- * @LastEditTime: 2024-10-18 14:52:42
9192
+ * @LastEditTime: 2024-11-07 14:27:18
9152
9193
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\ExpandableText.tsx
9153
9194
  *
9154
9195
  */
@@ -9205,7 +9246,7 @@ const ExpandableText = ({ text, maxStr = 108, style, className, onClick, foldTex
9205
9246
  wordBreak: 'break-word'
9206
9247
  }, dangerouslySetInnerHTML: { __html: setFontForText(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
9207
9248
  React.createElement("div", { ref: multiRowCopy, dangerouslySetInnerHTML: { __html: setFontForText(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
9208
- text && isPost && isShow && (React.createElement("span", { style: { textDecoration: 'underline', cursor: 'pointer' }, onClick: onClick !== null && onClick !== void 0 ? onClick : handleClick, dangerouslySetInnerHTML: {
9249
+ 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: {
9209
9250
  __html: setFontForText(isShowMore ? unfoldText || 'show less' : foldText || 'show more', style)
9210
9251
  } }))));
9211
9252
  };
@@ -9258,7 +9299,7 @@ var FormatImage$1 = React.memo(FormatImage);
9258
9299
  * @Author: binruan@chatlabs.com
9259
9300
  * @Date: 2024-03-20 10:27:32
9260
9301
  * @LastEditors: binruan@chatlabs.com
9261
- * @LastEditTime: 2024-10-17 18:02:56
9302
+ * @LastEditTime: 2024-11-19 10:29:18
9262
9303
  * @FilePath: \pb-sxp-ui\src\materials\sxp\template\components\Scroll.tsx
9263
9304
  *
9264
9305
  */
@@ -9270,7 +9311,7 @@ const Scroll = ({ children, isPadding = true, style, enableSlideActive = false }
9270
9311
  if (enableSlideActive)
9271
9312
  (_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);
9272
9313
  }, [popupDetailData, enableSlideActive]);
9273
- 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));
9314
+ 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));
9274
9315
  };
9275
9316
  var Scroll$1 = React.memo(Scroll);
9276
9317
 
@@ -9483,7 +9524,7 @@ const CommodityDetail$1 = (_a) => {
9483
9524
  };
9484
9525
  const renderBtn = () => {
9485
9526
  var _a, _b;
9486
- 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 },
9527
+ 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 },
9487
9528
  React.createElement("span", { dangerouslySetInnerHTML: {
9488
9529
  __html: setFontForText((_b = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _b !== void 0 ? _b : 'Purchase on Website', buttonStyle)
9489
9530
  } })))));
@@ -9521,7 +9562,9 @@ const CommodityDetail$1 = (_a) => {
9521
9562
  return (React.createElement(React.Fragment, null,
9522
9563
  React.createElement("div", Object.assign({ className: css.css(Object.assign({}, style)) }, props),
9523
9564
  React.createElement("div", { style: { position: 'relative' } },
9524
- 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: {
9565
+ product && ((_w = product === null || product === void 0 ? void 0 : product.homePage) === null || _w === void 0 ? void 0 : _w.length) > 0 && (React.createElement(Swiper, { a11y: {
9566
+ enabled: true
9567
+ }, height: height, modules: [Pagination, Autoplay], pagination: {
9525
9568
  clickable: true,
9526
9569
  bulletActiveClass: 'swipe-item-active-bullet',
9527
9570
  clickableClass: getDotsAlign,
@@ -10510,7 +10553,7 @@ Made in Italy` })));
10510
10553
  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: {
10511
10554
  __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)
10512
10555
  } }))),
10513
- (!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 },
10556
+ (!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 },
10514
10557
  React.createElement("span", { dangerouslySetInnerHTML: {
10515
10558
  __html: setFontForText((_4 = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _4 !== void 0 ? _4 : 'Shop now', buttonStyle)
10516
10559
  } }))),
@@ -10988,39 +11031,43 @@ const CommodityList$1 = (_a) => {
10988
11031
  eventName: 'PageView'
10989
11032
  });
10990
11033
  }, []);
10991
- return (React.createElement("div", { className: css.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) => {
11034
+ return (React.createElement("ul", { role: 'list', className: css.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) => {
10992
11035
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
10993
- 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.css({
10994
- display: 'flex'
10995
- }), onClick: () => handleClick(item, index) }),
10996
- 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 }),
10997
- React.createElement("div", { style: {
10998
- 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)`,
11036
+ 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) },
11037
+ React.createElement("button", Object.assign({ role: 'button', "aria-label": item === null || item === void 0 ? void 0 : item.title, tabIndex: 0, className: css.css({
10999
11038
  display: 'flex',
11000
- flexDirection: 'column',
11001
- justifyContent: 'space-between'
11002
- } },
11003
- React.createElement("div", null,
11004
- 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: {
11005
- __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)
11006
- } }),
11007
- 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: {
11008
- __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)
11009
- } })),
11010
- React.createElement("div", { className: css.css({
11039
+ alignItems: 'normal',
11040
+ width: '100%',
11041
+ textAlign: 'left'
11042
+ }) }, props),
11043
+ 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 }),
11044
+ React.createElement("div", { style: {
11045
+ 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)`,
11011
11046
  display: 'flex',
11012
- alignItems: 'flex-end',
11013
- justifyContent: 'space-between',
11014
- width: '100%',
11015
- overflow: 'hidden'
11016
- }) },
11047
+ flexDirection: 'column',
11048
+ justifyContent: 'space-between'
11049
+ } },
11017
11050
  React.createElement("div", null,
11018
- 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: {
11019
- __html: (_j = priceText(item)) !== null && _j !== void 0 ? _j : ''
11051
+ 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: {
11052
+ __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)
11053
+ } }),
11054
+ 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: {
11055
+ __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)
11020
11056
  } })),
11021
- React.createElement("div", { className: 'one-line-ellipsis', style: Object.assign(Object.assign({}, buttonStyle), { padding: '0 15px' }), dangerouslySetInnerHTML: {
11022
- __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)
11023
- } })))))));
11057
+ React.createElement("div", { className: css.css({
11058
+ display: 'flex',
11059
+ alignItems: 'flex-end',
11060
+ justifyContent: 'space-between',
11061
+ width: '100%',
11062
+ overflow: 'hidden'
11063
+ }) },
11064
+ React.createElement("div", null,
11065
+ 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: {
11066
+ __html: (_j = priceText(item)) !== null && _j !== void 0 ? _j : ''
11067
+ } })),
11068
+ React.createElement("div", { className: 'one-line-ellipsis', style: Object.assign(Object.assign({}, buttonStyle), { padding: '0 15px' }), dangerouslySetInnerHTML: {
11069
+ __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)
11070
+ } }))))))));
11024
11071
  })));
11025
11072
  };
11026
11073
  var CommodityListComponent = React.memo(CommodityList$1);
@@ -11490,44 +11537,55 @@ var interactionRender$a = [
11490
11537
  ];
11491
11538
 
11492
11539
  const EventProvider = (_a) => {
11493
- var { rec, children, className, onClick, style, isExternalLink = false, index, jumpLink } = _a; __rest(_a, ["rec", "children", "className", "onClick", "style", "isExternalLink", "index", "jumpLink"]);
11540
+ 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"]);
11494
11541
  const ref = React.useRef(null);
11495
11542
  const { popup } = useEditor();
11496
11543
  const { setPopupDetailData, ctaEvent } = useSxpDataSource();
11497
11544
  const { jumpToWeb } = useEventReport();
11498
- const handleClick = lodash.throttle(() => {
11499
- var _a, _b, _c, _d, _e, _f, _g, _h;
11500
- 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;
11545
+ const [element, setElement] = React.useState(null);
11546
+ const handleClick = lodash.throttle((event) => {
11547
+ var _a, _b, _c, _d, _e, _f, _g;
11548
+ event.preventDefault();
11549
+ 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;
11501
11550
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
11502
11551
  eventSubject: 'clickCta',
11503
11552
  eventDescription: 'User clicked the CTA'
11504
11553
  }, rec, item, index);
11505
- setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, rec), { index }));
11554
+ setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(multItem && multiCheckIndex
11555
+ ? 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 }));
11556
+ setElement(ref === null || ref === void 0 ? void 0 : ref.current);
11506
11557
  if (isExternalLink) {
11507
- 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)) {
11508
- const cta = (_e = rec === null || rec === void 0 ? void 0 : rec.video) === null || _e === void 0 ? void 0 : _e.bindCta;
11509
- const product = (_f = rec === null || rec === void 0 ? void 0 : rec.video) === null || _f === void 0 ? void 0 : _f.bindProduct;
11558
+ 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);
11559
+ if (jumpLink || link) {
11560
+ 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);
11561
+ const product = ((_g = rec === null || rec === void 0 ? void 0 : rec.video) === null || _g === void 0 ? void 0 : _g.bindProduct) || multItem;
11510
11562
  jumpToWeb(rec, product, cta, index);
11511
- 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) || '');
11563
+ window.location.href = window.getJointUtmLink(jumpLink || link || '');
11512
11564
  }
11513
11565
  }
11514
11566
  else {
11515
11567
  onClick === null || onClick === void 0 ? void 0 : onClick();
11516
11568
  }
11517
11569
  }, popup === null || popup === void 0 ? void 0 : popup.duration);
11518
- return (React.createElement("div", { ref: ref, className: className, style: style, onClick: handleClick }, children));
11570
+ React.useEffect(() => {
11571
+ if (element && !(popup === null || popup === void 0 ? void 0 : popup.id)) {
11572
+ element === null || element === void 0 ? void 0 : element.focus();
11573
+ setElement(null);
11574
+ }
11575
+ }, [element, popup]);
11576
+ 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));
11519
11577
  };
11520
11578
  var EventProvider$1 = React.memo(EventProvider);
11521
11579
 
11522
11580
  var styles$8 = {"tow-line-ellipsis":"index-module_tow-line-ellipsis__3bKKx"};
11523
11581
 
11524
11582
  const Commodity$1 = (_a) => {
11525
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
11583
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
11526
11584
  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"]);
11527
11585
  const { sxpParameter } = useSxpDataSource();
11528
11586
  const product = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProduct;
11529
11587
  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;
11530
- return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, className: css.css(Object.assign({}, style)), style: { display: 'flex' }, index: index }, props),
11588
+ return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, style: style, index: index }, props),
11531
11589
  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 }),
11532
11590
  React.createElement("div", { className: css.css({
11533
11591
  color: '#fff',
@@ -11540,8 +11598,8 @@ const Commodity$1 = (_a) => {
11540
11598
  React.createElement("div", { className: styles$8['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
11541
11599
  __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)
11542
11600
  } }),
11543
- React.createElement("div", { className: css.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: {
11544
- __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)
11601
+ 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.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: {
11602
+ __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)
11545
11603
  } }))));
11546
11604
  };
11547
11605
  var CommodityComponent = React.memo(Commodity$1);
@@ -11621,7 +11679,7 @@ const Appoint$1 = (_a) => {
11621
11679
  const { sxpParameter } = useSxpDataSource();
11622
11680
  const cta = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindCta;
11623
11681
  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;
11624
- return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, className: css.css(Object.assign({ alignItems: 'center' }, style)), style: { display: 'flex' }, index: index }, props),
11682
+ return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, style: Object.assign({ alignItems: 'center' }, style), index: index }, props),
11625
11683
  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 }),
11626
11684
  React.createElement("div", { className: css.css(Object.assign({ overflow: 'hidden', textOverflow: 'ellipsis' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
11627
11685
  __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)
@@ -11805,7 +11863,7 @@ const Link$1 = (_a) => {
11805
11863
  const cta = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindCta;
11806
11864
  (_c = recData === null || recData === void 0 ? void 0 : recData.video) === null || _c === void 0 ? void 0 : _c.bindProduct;
11807
11865
  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;
11808
- return (React.createElement(EventProvider$1, Object.assign({ index: index, rec: recData, className: css.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 : '' }),
11866
+ 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 : '' }),
11809
11867
  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 }),
11810
11868
  React.createElement("div", { className: css.css({
11811
11869
  display: 'flex',
@@ -11915,12 +11973,12 @@ var interactionRender$7 = [
11915
11973
  var styles$6 = {"tow-line-ellipsis":"index-module_tow-line-ellipsis__yyHVb"};
11916
11974
 
11917
11975
  const CommodityDiro$1 = (_a) => {
11918
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
11976
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
11919
11977
  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"]);
11920
11978
  const { sxpParameter } = useSxpDataSource();
11921
11979
  const product = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProduct;
11922
11980
  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;
11923
- return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, className: css.css(Object.assign({}, style)), style: { display: 'flex' }, index: index }, props),
11981
+ return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, style: style, index: index }, props),
11924
11982
  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 }),
11925
11983
  React.createElement("div", { className: css.css({
11926
11984
  color: '#fff',
@@ -11933,8 +11991,8 @@ const CommodityDiro$1 = (_a) => {
11933
11991
  React.createElement("div", { className: styles$6['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
11934
11992
  __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)
11935
11993
  } }),
11936
- React.createElement("div", { className: css.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: {
11937
- __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)
11994
+ 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.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: {
11995
+ __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)
11938
11996
  } }))));
11939
11997
  };
11940
11998
  var CommodityDiroComponent = React.memo(CommodityDiro$1);
@@ -12011,12 +12069,12 @@ var interactionRender$6 = [
12011
12069
  var styles$5 = {"tow-line-ellipsis":"index-module_tow-line-ellipsis__I-yCC"};
12012
12070
 
12013
12071
  const CommodityDiroNew$1 = (_a) => {
12014
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
12072
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
12015
12073
  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"]);
12016
12074
  const { sxpParameter } = useSxpDataSource();
12017
12075
  const product = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProduct;
12018
12076
  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;
12019
- return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, className: css.css(Object.assign({}, style)), style: { display: 'flex' }, index: index }, props),
12077
+ return (React.createElement(EventProvider$1, Object.assign({ isExternalLink: isExternalLink, rec: recData, style: style, index: index }, props),
12020
12078
  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 }),
12021
12079
  React.createElement("div", { className: css.css({
12022
12080
  color: '#fff',
@@ -12029,8 +12087,8 @@ const CommodityDiroNew$1 = (_a) => {
12029
12087
  React.createElement("div", { className: styles$5['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12030
12088
  __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)
12031
12089
  } }),
12032
- React.createElement("div", { className: css.css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12033
- __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)
12090
+ 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.css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12091
+ __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)
12034
12092
  } }))));
12035
12093
  };
12036
12094
  var CommodityDiroNewComponent = React.memo(CommodityDiroNew$1);
@@ -12109,45 +12167,28 @@ var styles$4 = {"two-line-ellipsis":"index-module_two-line-ellipsis__SFQwJ"};
12109
12167
 
12110
12168
  const MultiCommodityDiro$1 = (_a) => {
12111
12169
  var _b, _c;
12112
- 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"]);
12113
- const { ctaEvent, setPopupDetailData, sxpParameter } = useSxpDataSource();
12114
- const { popup } = useEditor();
12115
- const { jumpToWeb } = useEventReport();
12116
- const [products, setProducts] = React.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]);
12117
- const handleClick = lodash.throttle((item, multiCheckIndex) => {
12118
- ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
12119
- eventSubject: 'clickCta',
12120
- eventDescription: 'User clicked the CTA'
12121
- }, recData, item, index);
12122
- 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 }));
12123
- if (isExternalLink) {
12124
- if (item === null || item === void 0 ? void 0 : item.link) {
12125
- jumpToWeb(recData, item, item.bindCta, index);
12126
- window.location.href = window.getJointUtmLink(item.link);
12127
- }
12128
- }
12129
- else {
12130
- onClick === null || onClick === void 0 ? void 0 : onClick();
12131
- }
12132
- }, popup === null || popup === void 0 ? void 0 : popup.duration);
12133
- return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, index) => {
12134
- var _a, _b, _c, _d, _e, _f, _g, _h;
12135
- 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.css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item, index) }),
12136
- 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 }),
12137
- React.createElement("div", { className: css.css({
12138
- color: '#000',
12139
- display: 'flex',
12140
- flexDirection: 'column',
12141
- justifyContent: 'space-between',
12142
- width: '100%',
12143
- overflow: 'hidden'
12144
- }) },
12145
- React.createElement("div", { className: styles$4['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12146
- __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)
12147
- } }),
12148
- React.createElement("div", { className: css.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: {
12149
- __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)
12150
- } }))))));
12170
+ var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive"]);
12171
+ const { sxpParameter } = useSxpDataSource();
12172
+ const [products] = React.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]);
12173
+ return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
12174
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
12175
+ return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css.css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
12176
+ React.createElement(EventProvider$1, Object.assign({ rec: recData, multiCheckIndex: itemIndex }, props),
12177
+ 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 }),
12178
+ React.createElement("div", { className: css.css({
12179
+ color: '#000',
12180
+ display: 'flex',
12181
+ flexDirection: 'column',
12182
+ justifyContent: 'space-between',
12183
+ width: '100%',
12184
+ overflow: 'hidden'
12185
+ }) },
12186
+ React.createElement("div", { className: styles$4['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12187
+ __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)
12188
+ } }),
12189
+ 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.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: {
12190
+ __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)
12191
+ } })))))));
12151
12192
  })));
12152
12193
  };
12153
12194
  var MultiCommodityDiroComponent = React.memo(MultiCommodityDiro$1);
@@ -12225,46 +12266,28 @@ var styles$3 = {"two-line-ellipsis":"index-module_two-line-ellipsis__mdzn0"};
12225
12266
 
12226
12267
  const MultiCommodity$1 = (_a) => {
12227
12268
  var _b, _c;
12228
- 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"]);
12269
+ var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive"]);
12229
12270
  const { sxpParameter } = useSxpDataSource();
12230
- const { ctaEvent, setPopupDetailData } = useSxpDataSource();
12231
- const { popup } = useEditor();
12232
- const [products, setProducts] = React.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]);
12233
- const { jumpToWeb } = useEventReport();
12234
- const handleClick = lodash.throttle((item, multiCheckIndex) => {
12235
- ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
12236
- eventSubject: 'clickCta',
12237
- eventDescription: 'User clicked the CTA'
12238
- }, recData, item, index);
12239
- 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 }));
12240
- if (isExternalLink) {
12241
- if (item === null || item === void 0 ? void 0 : item.link) {
12242
- jumpToWeb(recData, item, item.bindCta, index);
12243
- window.location.href = window.getJointUtmLink(item.link);
12244
- }
12245
- }
12246
- else {
12247
- onClick === null || onClick === void 0 ? void 0 : onClick();
12248
- }
12249
- }, popup === null || popup === void 0 ? void 0 : popup.duration);
12250
- return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, index) => {
12251
- var _a, _b, _c, _d, _e, _f, _g, _h;
12252
- 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.css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item, index) }),
12253
- 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 }),
12254
- React.createElement("div", { className: css.css({
12255
- color: '#fff',
12256
- display: 'flex',
12257
- flexDirection: 'column',
12258
- justifyContent: 'space-between',
12259
- width: '100%',
12260
- overflow: 'hidden'
12261
- }) },
12262
- React.createElement("div", { className: styles$3['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12263
- __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)
12264
- } }),
12265
- React.createElement("div", { className: css.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: {
12266
- __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)
12267
- } }))))));
12271
+ const [products] = React.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]);
12272
+ return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
12273
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
12274
+ return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css.css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
12275
+ React.createElement(EventProvider$1, Object.assign({ rec: recData, multiCheckIndex: itemIndex }, props),
12276
+ 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 }),
12277
+ React.createElement("div", { className: css.css({
12278
+ color: '#fff',
12279
+ display: 'flex',
12280
+ flexDirection: 'column',
12281
+ justifyContent: 'space-between',
12282
+ width: '100%',
12283
+ overflow: 'hidden'
12284
+ }) },
12285
+ React.createElement("div", { className: styles$3['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12286
+ __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)
12287
+ } }),
12288
+ 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.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: {
12289
+ __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)
12290
+ } })))))));
12268
12291
  })));
12269
12292
  };
12270
12293
  var MultiCommodityComponent = React.memo(MultiCommodity$1);
@@ -12350,47 +12373,29 @@ var styles$2 = {"tow-line-ellipsis":"index-module_tow-line-ellipsis__fselR"};
12350
12373
 
12351
12374
  const MultiCommodityDiroNew$1 = (_a) => {
12352
12375
  var _b, _c;
12353
- 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"]);
12354
- const { ctaEvent, setPopupDetailData, sxpParameter } = useSxpDataSource();
12355
- const { popup } = useEditor();
12356
- const { jumpToWeb } = useEventReport();
12357
- const [products, setProducts] = React.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]);
12358
- const handleClick = lodash.throttle((item, multiCheckIndex) => {
12359
- ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
12360
- eventSubject: 'clickCta',
12361
- eventDescription: 'User clicked the CTA'
12362
- }, recData, item, index);
12363
- 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,
12364
- multiCheckIndex }));
12365
- if (isExternalLink) {
12366
- if (item === null || item === void 0 ? void 0 : item.link) {
12367
- jumpToWeb(recData, item, item.bindCta, index);
12368
- window.location.href = window.getJointUtmLink(item.link);
12369
- }
12370
- }
12371
- else {
12372
- onClick === null || onClick === void 0 ? void 0 : onClick();
12373
- }
12374
- }, popup === null || popup === void 0 ? void 0 : popup.duration);
12375
- return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, index) => {
12376
- var _a, _b, _c, _d, _e, _f, _g;
12377
- 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.css(Object.assign(Object.assign({}, style), { display: 'flex', flexShrink: 0, marginLeft: 0, marginRight: '8px' })) }, props, { onClick: () => handleClick(item, index) }),
12378
- 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 }),
12379
- React.createElement("div", { className: css.css({
12380
- color: '#fff',
12381
- display: 'flex',
12382
- flexDirection: 'column',
12383
- justifyContent: 'center',
12384
- width: '100%',
12385
- overflow: 'hidden',
12386
- lineHeight: '20px'
12387
- }) },
12388
- React.createElement("div", { className: styles$2['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12389
- __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)
12390
- } }),
12391
- React.createElement("div", { className: css.css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12392
- __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)
12393
- } }))))));
12376
+ var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive"]);
12377
+ const { sxpParameter } = useSxpDataSource();
12378
+ const [products] = React.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]);
12379
+ return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
12380
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
12381
+ return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css.css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
12382
+ React.createElement(EventProvider$1, Object.assign({ rec: recData, multiCheckIndex: itemIndex }, props),
12383
+ 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 }),
12384
+ React.createElement("div", { className: css.css({
12385
+ color: '#fff',
12386
+ display: 'flex',
12387
+ flexDirection: 'column',
12388
+ justifyContent: 'center',
12389
+ width: '100%',
12390
+ overflow: 'hidden',
12391
+ lineHeight: '20px'
12392
+ }) },
12393
+ React.createElement("div", { className: styles$2['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
12394
+ __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)
12395
+ } }),
12396
+ 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.css(Object.assign({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' }, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)), dangerouslySetInnerHTML: {
12397
+ __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)
12398
+ } })))))));
12394
12399
  })));
12395
12400
  };
12396
12401
  var MultiCommodityDiroNewComponent = React.memo(MultiCommodityDiroNew$1);
@@ -16546,7 +16551,7 @@ var PictureGroup$3 = React.memo(PictureGroup$2);
16546
16551
  * @Author: binruan@chatlabs.com
16547
16552
  * @Date: 2024-01-15 19:03:09
16548
16553
  * @LastEditors: binruan@chatlabs.com
16549
- * @LastEditTime: 2024-10-17 18:02:31
16554
+ * @LastEditTime: 2024-11-19 10:40:36
16550
16555
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Hashtag\index.tsx
16551
16556
  *
16552
16557
  */
@@ -16587,8 +16592,8 @@ const Hashtag = ({ tags, itemId, itemType, index, rec, hashTagStyle, hashTagRigh
16587
16592
  marginTop: `${(_a = hashTagStyle === null || hashTagStyle === void 0 ? void 0 : hashTagStyle.marginTop) !== null && _a !== void 0 ? _a : 16}px`,
16588
16593
  width: hashTagRightMargin
16589
16594
  } },
16590
- 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 },
16591
- React.createElement("div", { dangerouslySetInnerHTML: { __html: setFontForText(`#${item}`, hashTagStyle) } })))))));
16595
+ 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' },
16596
+ React.createElement("button", { className: 'clc-sxp-bottom-hashtag-item-button', "aria-label": item, "aria-describedby": item, dangerouslySetInnerHTML: { __html: setFontForText(`#${item}`, hashTagStyle) } })))))));
16592
16597
  };
16593
16598
  var Hashtag$1 = React.memo(Hashtag);
16594
16599
 
@@ -16804,7 +16809,7 @@ var ConsentPopup = React.memo(Consent);
16804
16809
  * @Author: binruan@chatlabs.com
16805
16810
  * @Date: 2024-03-20 10:27:31
16806
16811
  * @LastEditors: binruan@chatlabs.com
16807
- * @LastEditTime: 2024-11-05 18:13:15
16812
+ * @LastEditTime: 2024-11-19 09:47:45
16808
16813
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
16809
16814
  *
16810
16815
  */
@@ -17292,9 +17297,9 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
17292
17297
  alignItems: 'center'
17293
17298
  } },
17294
17299
  React.createElement("img", { width: 64, height: 64, src: loadingImage, alt: 'loading...', style: { objectFit: 'contain' } }))) : (React.createElement(React.Fragment, null,
17300
+ renderBottom(rec, index),
17295
17301
  renderLikeButton(rec, index, !(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconFixed)),
17296
17302
  renderToggleButton(!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconFixed)),
17297
- renderBottom(rec, index),
17298
17303
  renderContent(rec, index)))))));
17299
17304
  });
17300
17305
  }, [
@@ -17361,9 +17366,9 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
17361
17366
  }
17362
17367
  }
17363
17368
  }, direction: 'vertical', height: height },
17369
+ renderView,
17364
17370
  renderLikeButton(visList[activeIndex], activeIndex, !!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconFixed)),
17365
- renderToggleButton(!!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconFixed)),
17366
- renderView),
17371
+ renderToggleButton(!!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconFixed))),
17367
17372
  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)),
17368
17373
  React.createElement(ConsentPopup, { resolver: resolver, globalConfig: globalConfig })));
17369
17374
  };