@polyv/product-ui 1.0.0-rc-20250612.3 → 1.1.0-rc-20250703.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/address-edit.cjs.js +2 -2
- package/address-edit.es.js +22 -9
- package/address-edit.umd.js +2 -2
- package/address-item.cjs.js +2 -2
- package/address-item.es.js +12 -12
- package/address-item.umd.js +2 -2
- package/address-list.cjs.js +2 -2
- package/address-list.es.js +30 -18
- package/address-list.umd.js +3 -3
- package/big-card-popup.cjs.js +9 -0
- package/big-card-popup.es.d.ts +3 -0
- package/big-card-popup.es.js +4402 -0
- package/big-card-popup.umd.js +9 -0
- package/index.cjs.js +3 -3
- package/index.es.js +1438 -708
- package/index.umd.js +3 -3
- package/mobile-product-pendant.cjs.js +3 -3
- package/mobile-product-pendant.es.js +45 -35
- package/mobile-product-pendant.umd.js +3 -3
- package/order-confirm.cjs.js +2 -2
- package/order-confirm.es.js +30 -18
- package/order-confirm.umd.js +2 -2
- package/order-detail.cjs.js +2 -2
- package/order-detail.es.js +30 -18
- package/order-detail.umd.js +2 -2
- package/order-item.cjs.js +2 -2
- package/order-item.es.js +21 -9
- package/order-item.umd.js +2 -2
- package/order-list-popup.cjs.js +3 -3
- package/order-list-popup.es.js +40 -19
- package/order-list-popup.umd.js +2 -2
- package/order-list.cjs.js +2 -2
- package/order-list.es.js +21 -9
- package/order-list.umd.js +2 -2
- package/order-popup.cjs.js +2 -2
- package/order-popup.es.js +40 -19
- package/order-popup.umd.js +2 -2
- package/package.json +2 -1
- package/pc-product-pendant.cjs.js +3 -3
- package/pc-product-pendant.es.js +21 -9
- package/pc-product-pendant.umd.js +3 -3
- package/product-button.cjs.js +3 -3
- package/product-button.es.js +298 -261
- package/product-button.umd.js +3 -3
- package/product-detail-popup.cjs.js +3 -3
- package/product-detail-popup.es.js +265 -203
- package/product-detail-popup.umd.js +3 -3
- package/product-detail.cjs.js +3 -3
- package/product-detail.es.js +337 -283
- package/product-detail.umd.js +3 -3
- package/product-iframe-link-popup.cjs.js +2 -2
- package/product-iframe-link-popup.es.js +13 -4
- package/product-iframe-link-popup.umd.js +2 -2
- package/product-item.cjs.js +3 -3
- package/product-item.es.js +419 -222
- package/product-item.umd.js +3 -3
- package/product-list-popup.cjs.js +3 -3
- package/product-list-popup.es.js +445 -313
- package/product-list-popup.umd.js +3 -3
- package/product-list.cjs.js +3 -3
- package/product-list.es.js +436 -312
- package/product-list.umd.js +3 -3
- package/small-card.cjs.js +8 -0
- package/small-card.es.d.ts +3 -0
- package/small-card.es.js +4463 -0
- package/small-card.umd.js +9 -0
package/product-list.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(){"use strict";try{if("undefined"!=typeof document){var o=document.createElement("style");o.appendChild(document.createTextNode('@charset "UTF-8";@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-form-input{display:flex}.plv-product-form-input__main{position:relative;display:flex;flex:1;align-items:center;box-sizing:border-box;height:50px;overflow:hidden;border-radius:8px;background:#f7f8fa}.plv-product-form-input__input{display:block;flex:1;box-sizing:border-box;height:100%;color:inherit}.plv-product-form-input__input-inner{border:none;border-radius:0;outline:none;display:block;box-sizing:border-box;width:100%;height:100%;padding:0 12px;background:none;font-size:14px}.plv-product-form-input__input-inner::placeholder{color:#9e9e9e}.plv-product-form-input__input-inner::-webkit-outer-spin-button,.plv-product-form-input__input-inner::-webkit-inner-spin-button{margin:0;appearance:none!important}.plv-product-form-input__input-inner[type=number]{appearance:textfield}.plv-product-form-input__input-inner[disabled]{opacity:100%}.plv-product-form-input__input-inner[type=button],.plv-product-form-input__input-inner[type=submit],.plv-product-form-input__input-inner[type=reset]{appearance:none;background:#fff}.plv-product-form-input__clearable{display:flex;margin-right:16px;color:#999;font-size:20px}.plv-product-form-input__suffix-text{color:#aaa;font-size:16px}.plv-product-form-input--textarea .plv-product-form-input__main{height:initial}.plv-product-form-input--textarea .plv-product-form-input__input-inner{padding-top:8px}.plv-product-form-input__suffix{display:flex;align-items:center;padding-right:12px}.plv-product-form-input__suffix .polyv-icon{display:flex;color:#0006;font-size:18px}.plv-product-form-input__suffix:empty{display:none}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-loading{display:inline-block;width:32px;height:32px;background-image:url(data:image/png;base64,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);background-position:center;background-size:cover;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-label-panel{position:relative;background-color:#f7f8fa}.plv-product-c-label-list__wrapper{position:relative;z-index:1060;display:flex;box-sizing:border-box;margin-bottom:4px;padding:0 12px;background-color:#f7f8fa}.plv-product-c-label-list__inner{display:flex}.plv-product-c-label-list__item{display:flex;flex:none;flex-direction:column;align-items:center;box-sizing:border-box;height:26px;margin-right:8px;margin-bottom:8px;padding:4px 12px;border:1px solid rgba(0,0,0,.06);border-radius:20px;color:#0009;font-size:12px;line-height:18px}.plv-product-c-label-list__item.plv-product-c-label-list__item--active{border-color:#ff62644d;color:#ff6264;font-weight:500}.plv-product-c-label-list__arrow{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;box-sizing:border-box;width:26px;height:26px;margin-left:auto;border:1px solid rgba(0,0,0,.1);border-radius:20px}.plv-product-c-label-list__arrow-icon{display:flex;color:#0006;font-size:16px;transition:.3s}.plv-product-c-label-list__arrow--active .plv-product-c-label-list__arrow-icon{transform:rotate(180deg)}.plv-product-c-label-list__shadow{position:absolute;top:0;right:0;z-index:0;width:80px;height:42px;background:linear-gradient(90deg,#f7f8fa00,#f7f8fa 39%)}.plv-product-c-label-list-panel{position:absolute;top:100%;right:0;left:0;z-index:1050;box-sizing:border-box;padding:0 12px;border-bottom-right-radius:16px;border-bottom-left-radius:16px;background-color:#f7f8fa}.plv-product-c-label-list-panel__content{flex-wrap:wrap;box-sizing:border-box;max-height:216px;overflow-y:auto;transform:translateZ(0)}.slide-fade-enter-active,.slide-fade-leave-active{overflow:hidden;transition:transform .3s ease,opacity .3s ease}.slide-fade-enter,.slide-fade-leave-to{opacity:0%;transform:translateY(-10px)}.fade-overlay-enter-active,.fade-overlay-leave-active{transition:opacity .3s ease}.fade-overlay-enter,.fade-overlay-leave-to{opacity:0%}.plv-product-c-label-overlay{position:fixed;inset:45% 0 0;z-index:1040;background-color:#0006}.plv-product-c-label-overlay-pc{position:absolute;inset:45% 0 0;z-index:1040;height:600px;background-color:#0006}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-explain--explaining{display:flex;justify-content:center;align-items:center;width:100%;height:20px;border-radius:0 0 8px 8px;background:#ff6264cc;color:#fff;font-size:12px;font-weight:500;backdrop-filter:blur(3px)}.plv-product-c-explain--explaining .plv-product-c-explain--explaining-icon{width:14px;height:14px;margin-right:2px;vertical-align:top}.plv-product-c-explain--explained{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:20px;padding:4px 12px;border:1px solid rgba(255,98,100,.3);border-radius:20px;background:#fff;color:#ff6264;font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer}.plv-product-c-explain--not-explained{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:20px;padding:4px 12px;border:1px solid rgba(0,0,0,.1);border-radius:20px;background:#fff;color:#666;font-size:12px;font-weight:500;white-space:nowrap}.plv-product-c-explain--explaining-cover{position:absolute;bottom:0;left:0}.plv-product-c-explain--not-explained-cover,.plv-product-c-explain--explained-cover{position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.plv-product-c-explain--no-cover .plv-product-c-explain--explaining{width:52px;height:16px;padding:1px 2px;border:1px solid rgba(255,82,82,.6);border-radius:2px;background:#ff5252;color:#fff;font-size:12px;white-space:nowrap;transform:scale(.8333)}.plv-product-c-explain--no-cover .plv-product-c-explain--explained{width:60px;height:24px;padding:3px 12px;background:transparent;color:#ff5252;font-size:12px}.plv-product-c-explain--no-cover .plv-product-c-explain--not-explained{display:flex;box-sizing:border-box;height:16px;margin-left:4px;padding:1px 4px;border:.5px solid rgba(0,0,0,.2);border-radius:2px;color:#0009;font-size:12px;font-weight:500;white-space:nowrap}.plv-product-c-explain--no-cover .plv-product-c-explain--not-explained span{display:inline-block;transform:scale(.833);user-select:none}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-item__title-container{position:relative;margin-bottom:6px}.plv-product-c-item__title{color:#000c;font-size:14px;font-weight:500;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plv-product-c-item__title--single{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-c-item__title-more{position:absolute;top:22px;right:-6px;display:flex;border:none;background:none}.plv-product-c-item__title-more-icon{display:flex;color:#0006;font-size:16px}.plv-product-c-item__title--expanded{-webkit-line-clamp:unset}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-item__tag-container{box-sizing:border-box;margin-right:4px;padding:0 1px;border:.5px solid rgba(0,0,0,.2);border-radius:2px;color:#0009;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-c-item__tag{display:inline-block;transform:scale(.833);user-select:none}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-c-item__price-area{display:flex;align-items:baseline}.plv-product-c-item__price{color:#ff5252;font-size:18px}.plv-product-c-item__price-custom{font-size:14px}.plv-product-c-item__price-symbol{color:#ff5252;font-size:12px}.plv-product-c-item__price-placeholder{margin-left:2px;color:#ff5252;font-size:18px}.plv-product-c-item__placeholder-text{margin:6px 2px 0 3px;color:#0006;font-size:12px}.plv-product-c-item__original-price{margin-left:2px;color:#0006;font-size:12px;line-height:14px;text-decoration:line-through}.plv-product-c-item__price-finance{color:#ff5252;font-size:14px}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-button{position:relative}.plv-product-button__render{position:relative;z-index:10}.plv-product-button__inner{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;cursor:pointer}.plv-radio{cursor:pointer;line-height:16px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.plv-radio:last-of-type{margin-right:0}.plv-radio .plv-radio__inner{-ms-flex-negative:0;flex-shrink:0;-webkit-box-sizing:border-box;box-sizing:border-box;width:16px;height:16px;border-radius:8px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s;transition:border-color .35s;vertical-align:middle}.plv-radio .plv-radio__label{color:#1d2129;font-size:14px;padding-left:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;line-height:16px;word-break:break-word}.plv-radio:hover .plv-radio__inner{border-color:#3f76fc}.plv-radio.plv-radio--checked .plv-radio__inner{border-width:4px;border-color:#3f76fc}.plv-radio.plv-radio--disabled{cursor:not-allowed}.plv-radio.plv-radio--disabled .plv-radio__inner{border-color:#e5e5e5;background:#f9fafd}.plv-radio.plv-radio--disabled .plv-radio__label{color:#969ba5}.plv-radio.plv-radio--disabled.plv-radio--checked .plv-radio__inner{background:#f9fafd}.plv-radio.plv-radio--readonly{cursor:default}.plv-radio.plv-radio--readonly:hover .plv-radio__inner{border-color:#e5e5e5}.plv-radio.plv-radio--readonly:hover .plv-radio__inner.plv-radio__inner--checked{border-color:#3f76fc}.plv-radio--border{min-width:80px;height:36px!important;padding:0 16px;border-radius:2px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s;transition:border-color .35s;position:relative;margin-right:16px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.plv-radio--border:hover{border-color:#3f76fc}.plv-radio--border .plv-radio__label{padding-left:0;font-size:12px;float:none}.plv-radio--border.plv-radio--checked{border-width:2px;border-color:#3f76fc}.plv-radio--border .plv-radio__corner{position:absolute;right:-1px;bottom:-1px;width:18px;height:18px;background-image:url(data:image/png;base64,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);background-size:100% 100%}.plv-radio--border.plv-radio--disabled{background:#f9fafd;border-color:#e5e5e5!important}.plv-radio--border.plv-radio--disabled:hover,.plv-radio--border.plv-radio--readonly{border-color:#e5e5e5}.plv-radio--border.plv-radio--readonly.plv-radio--checked{border-color:#3f76fc}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-common-popup{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006}.plv-product-common-popup__body{position:absolute;display:flex;flex-direction:column;width:100%;max-height:90%;overflow:hidden;border-radius:16px 16px 0 0;background:#fff}.plv-product-common-popup__header{position:relative;z-index:2;display:flex;flex-shrink:0;justify-content:center;align-items:center;padding:0 54px}.plv-product-common-popup__back{position:absolute;top:50%;left:18px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:20px;transform:translateY(-50%);cursor:pointer}.plv-product-common-popup__title{color:#000c;font-size:16px;font-weight:500;text-align:center}.plv-product-common-popup__header-right{position:absolute;top:50%;right:12px;display:flex;align-items:center;transform:translateY(-50%)}.plv-product-common-popup__close{display:flex;color:#0009;font-size:24px;cursor:pointer}.plv-product-common-popup__content{position:relative;z-index:2;display:flex;flex:1;overflow:hidden}.plv-product-common-popup__inner{flex:1;overflow-y:auto}.plv-product-common-popup__body--bg1{background:linear-gradient(180deg,#fee5e1,#fef9f4)}.plv-product-common-popup__body--bg1:before{position:absolute;top:-26px;right:-87px;z-index:1;width:176px;height:168px;background:#fdf0d5;pointer-events:none;content:"";filter:blur(80px)}.plv-product-common-popup__body--bg1 .plv-product-common-popup__content{padding:0 12px 30px}.plv-product-common-popup__body--bg1 .plv-product-common-popup__inner{border-radius:12px;background:#fff}.plv-product-common-popup--hide-modal{background:none;pointer-events:none}.plv-product-common-popup--hide-modal .plv-product-common-popup__body{pointer-events:initial}.plv-product-common-popup--fill-body .plv-product-common-popup__content{height:90%}.plv-product-common-popup--mobile .plv-product-common-popup__body{border-radius:16px 16px 0 0}.plv-product-common-popup--position-bottom .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(0, 100%);--plv-product-popup-animation-end: translate(0, 0);bottom:0;left:0}.plv-product-common-popup--position-left .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(-100%, 0);--plv-product-popup-animation-end: translate(0, 0);top:0;left:0;height:100%;max-height:100%}.plv-product-common-popup--position-right .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(100%, 0);--plv-product-popup-animation-end: translate(0, 0);top:0;right:0;height:100%;max-height:100%}.plv-product-common-popup--position-center .plv-product-common-popup__body{top:50%;left:50%;max-height:90%;animation:none!important;transform:translate(-50%,-50%)}.plv-product-common-popup--horizontal-screen .plv-product-common-popup__body{border-radius:0}.plv-product-common-popup--page-fullscreen{top:50%;left:50%;width:100vh;height:100vw;transform:translate(-50%,-50%) rotate(90deg)}.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__body,.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__content{overflow:initial}.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__inner{overflow-y:initial}.plv-product-common-popup-slide-enter-active{animation:plv-product-common-popup-slide-in .2s ease-in-out}.plv-product-common-popup-slide-leave-active{animation:plv-product-common-popup-slide-in .15s reverse ease-in-out}@keyframes plv-product-common-popup-slide-in{0%{transform:var(--plv-product-popup-animation-start)}to{transform:var(--plv-product-popup-animation-end)}}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-item{position:relative;display:flex;box-sizing:border-box;height:124px;margin-bottom:8px;padding:12px;border-radius:8px;background-color:#fff;cursor:pointer}.plv-product-item__ranking{box-sizing:border-box;min-width:19px;height:16px;padding:1px 6px;border-radius:2px;background:#0006;color:#fff;font-size:12px;font-weight:700;line-height:14px}.plv-product-item__ranking--cover{position:absolute;top:2px;left:2px}.plv-product-item__cover-area{position:relative;flex:none;overflow:hidden;margin-right:8px;border-radius:4px}.plv-product-item__cover-stock{position:absolute;top:0;left:0;display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:#00000080;color:#fff;font-size:12px}.plv-product-item__cover{width:100px;height:100px;object-fit:cover}.plv-product-item__content{display:flex;flex-grow:1;flex-direction:column;justify-content:space-between;min-width:0}.plv-product-item__content .plv-product-c-item__title-container{min-width:0;margin-bottom:0}.plv-product-item__title-area{display:flex;align-items:center}.plv-product-item__tags{display:flex;flex-wrap:wrap;margin-top:6px;margin-bottom:6px}.plv-product-item__description{margin:0;color:#0006;font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-item__footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.plv-product-item__explained--no-cover{margin-right:12px;margin-left:auto}.plv-product-item__buy-button{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:24px;padding:3px 12px;border:none;border-radius:16px;background:#ff5252;color:#fff;font-size:12px;white-space:nowrap;outline:none}.plv-product-item__buy-button--disabled{background:#ff525299;color:#fff}.plv-product-item-no-cover .plv-product-c-item__title{margin-left:4px}.plv-product-item--topping{background:#f15d5d14}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-product-list-empty{position:absolute;top:50%;left:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box;padding:0 10px;font-size:14px;line-height:18px;text-align:center;transform:translate(-50%,-50%)}.plv-product-list-empty__icon{display:flex;opacity:40%;margin-bottom:16px;color:#999;font-size:70px}.plv-product-list-empty__text{color:#999}@font-face{font-family:D-DIN-PRO-Regular;src:url(https://s4.videocc.net/font/D-DIN-PRO-400-Regular.otf)}@font-face{font-family:D-DIN-PRO-Medium;src:url(https://s4.videocc.net/font/D-DIN-PRO-500-Medium.otf)}@font-face{font-family:D-DIN-PRO-Bold;src:url(https://s4.videocc.net/font/D-DIN-PRO-700-Bold.otf)}.plv-font-din-pro-regular{font-family:D-DIN-PRO-Regular,sans-serif}.plv-font-din-pro-medium{font-family:D-DIN-PRO-Medium,sans-serif}.plv-font-din-pro-bold{font-family:D-DIN-PRO-Bold,sans-serif}.plv-product-list{height:100%;overflow-y:auto;background-color:#f7f8fa;-webkit-overflow-scrolling:touch}.plv-product-list .plv-product-form-input.plv-product-form-input--theme-dark .plv-product-form-input__main{height:32px;border-radius:8px;background:#0000000a}.plv-product-list .plv-product-form-input.plv-product-form-input--theme-dark .plv-product-form-input__input-inner{padding-left:4px}.plv-product-list__header-search-icon{display:flex;margin-left:11px;color:#0006}.plv-product-list__header{position:sticky;top:0;left:0;z-index:30;padding-bottom:12px;background-color:#f7f8fa}.plv-product-list__header-search-wrapper{display:flex;align-items:center;margin:0 0 12px;padding:7px 12px 0}.plv-product-list__search-input{flex:1;margin-right:8px}.plv-product-list__header-right{display:flex;flex-direction:column;margin-left:auto;padding:6px 10px 3px}.plv-product-list__header-right-icon{display:flex;margin:0 auto 2px}.plv-product-list__header-right-text{color:#333a47;font-size:12px}.plv-product-list__wrapper{padding:0 8px}.plv-product-list__product-total{display:flex;align-items:center;margin-top:12px;padding:0 12px}.plv-product-list__product-total-icon{display:flex;margin-right:4px;color:#000c;font-size:12px}.plv-product-list__product-total-text,.plv-product-list__product-total-num{color:#0009;font-size:12px}.plv-product-list__product-total-num{margin-left:8px;font-weight:500}.plv-product-list__loading{position:absolute;top:0;left:0;z-index:999;display:flex;justify-content:center;align-items:center;width:100%;height:100%;background-color:#fff9}.plv-product-list-popup__icon-close{display:flex;margin:0 4px 0 8px;color:#0009;font-size:24px;cursor:pointer}')),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}}();
|
|
1
|
+
!function(){"use strict";try{if("undefined"!=typeof document){var o=document.createElement("style");o.appendChild(document.createTextNode('@charset "UTF-8";.plv-product-form-input{display:flex}.plv-product-form-input__main{position:relative;display:flex;flex:1;align-items:center;box-sizing:border-box;height:50px;overflow:hidden;border-radius:8px;background:#f7f8fa}.plv-product-form-input__input{display:block;flex:1;box-sizing:border-box;height:100%;color:inherit}.plv-product-form-input__input-inner{border:none;border-radius:0;outline:none;display:block;box-sizing:border-box;width:100%;height:100%;padding:0 12px;background:none;font-size:14px}.plv-product-form-input__input-inner::placeholder{color:#9e9e9e}.plv-product-form-input__input-inner::-webkit-outer-spin-button,.plv-product-form-input__input-inner::-webkit-inner-spin-button{margin:0;appearance:none!important}.plv-product-form-input__input-inner[type=number]{appearance:textfield}.plv-product-form-input__input-inner[disabled]{opacity:100%}.plv-product-form-input__input-inner[type=button],.plv-product-form-input__input-inner[type=submit],.plv-product-form-input__input-inner[type=reset]{appearance:none;background:#fff}.plv-product-form-input__clearable{display:flex;margin-right:16px;color:#999;font-size:20px}.plv-product-form-input__suffix-text{color:#aaa;font-size:16px}.plv-product-form-input--textarea .plv-product-form-input__main{height:initial}.plv-product-form-input--textarea .plv-product-form-input__input-inner{padding-top:8px}.plv-product-form-input__suffix{display:flex;align-items:center;padding-right:12px}.plv-product-form-input__suffix .polyv-icon{display:flex;color:#0006;font-size:18px}.plv-product-form-input__suffix:empty{display:none}.plv-product-c-loading{display:inline-block;width:32px;height:32px;background-image:url(data:image/png;base64,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);background-position:center;background-size:cover;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.plv-product-c-label-panel{position:relative;background-color:#f7f8fa}.plv-product-c-label-list__wrapper{position:relative;z-index:1060;display:flex;box-sizing:border-box;margin-bottom:4px;padding:0 12px;background-color:#f7f8fa}.plv-product-c-label-list__inner{display:flex}.plv-product-c-label-list__item{display:flex;flex:none;flex-direction:column;align-items:center;box-sizing:border-box;height:26px;margin-right:8px;margin-bottom:8px;padding:4px 12px;border:1px solid rgba(0,0,0,.06);border-radius:20px;color:#0009;font-size:12px;line-height:18px}.plv-product-c-label-list__item.plv-product-c-label-list__item--active{border-color:#ff62644d;color:#ff6264;font-weight:500}.plv-product-c-label-list__arrow{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;box-sizing:border-box;width:26px;height:26px;margin-left:auto;border:1px solid rgba(0,0,0,.1);border-radius:20px}.plv-product-c-label-list__arrow-icon{display:flex;color:#0006;font-size:16px;transition:.3s}.plv-product-c-label-list__arrow--active .plv-product-c-label-list__arrow-icon{transform:rotate(180deg)}.plv-product-c-label-list__shadow{position:absolute;top:0;right:0;z-index:0;width:80px;height:42px;background:linear-gradient(90deg,#f7f8fa00,#f7f8fa 39%)}.plv-product-c-label-list-panel{position:absolute;top:100%;right:0;left:0;z-index:1050;box-sizing:border-box;padding:0 12px;border-bottom-right-radius:16px;border-bottom-left-radius:16px;background-color:#f7f8fa}.plv-product-c-label-list-panel__content{flex-wrap:wrap;box-sizing:border-box;max-height:216px;overflow-y:auto;transform:translateZ(0)}.slide-fade-enter-active,.slide-fade-leave-active{overflow:hidden;transition:transform .3s ease,opacity .3s ease}.slide-fade-enter,.slide-fade-leave-to{opacity:0%;transform:translateY(-10px)}.fade-overlay-enter-active,.fade-overlay-leave-active{transition:opacity .3s ease}.fade-overlay-enter,.fade-overlay-leave-to{opacity:0%}.plv-product-c-label-overlay{position:fixed;inset:45% 0 0;z-index:1040;background-color:#0006}.plv-product-c-label-overlay-pc{position:absolute;inset:45% 0 0;z-index:1040;height:600px;background-color:#0006}.plv-product-c-explain--explaining{display:flex;justify-content:center;align-items:center;width:100%;height:20px;border-radius:0 0 4px 4px;background:#ff6264cc;color:#fff;font-size:12px;font-weight:500;backdrop-filter:blur(3px)}.plv-product-c-explain--explaining .plv-product-c-explain--explaining-icon{width:14px;height:14px;margin-right:2px;vertical-align:top}.plv-product-c-explain--explained{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:20px;padding:4px 12px;border:1px solid rgba(255,98,100,.3);border-radius:20px;background:#fff;color:#ff6264;font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer}.plv-product-c-explain--not-explained{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:20px;padding:4px 12px;border:1px solid rgba(0,0,0,.1);border-radius:20px;background:#fff;color:#666;font-size:12px;font-weight:500;white-space:nowrap}.plv-product-c-explain--explaining-cover{position:absolute;bottom:0;left:0}.plv-product-c-explain--not-explained-cover,.plv-product-c-explain--explained-cover{position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.plv-product-c-explain--no-cover .plv-product-c-explain--explaining{width:52px;height:16px;padding:1px 2px;border:1px solid rgba(255,82,82,.6);border-radius:2px;background:#ff5252;color:#fff;font-size:12px;white-space:nowrap;transform:scale(.8333)}.plv-product-c-explain--no-cover .plv-product-c-explain--explaining span{margin-top:2px}.plv-product-c-explain--no-cover .plv-product-c-explain--explained{width:60px;height:24px;padding:3px 12px;background:transparent;color:#ff5252;font-size:12px}.plv-product-c-explain--no-cover .plv-product-c-explain--not-explained{display:flex;box-sizing:border-box;height:16px;margin-left:4px;padding:1px 4px;border:.5px solid rgba(0,0,0,.2);border-radius:2px;color:#0009;font-size:12px;font-weight:500;white-space:nowrap}.plv-product-c-explain--no-cover .plv-product-c-explain--not-explained span{display:inline-block;transform:scale(.833);user-select:none}.plv-product-c-item__title-container{position:relative;margin-bottom:6px}.plv-product-c-item__title{color:#000c;font-size:14px;font-weight:500;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.plv-product-c-item__title--single{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-c-item__title-more{position:absolute;top:22px;right:-6px;display:flex;border:none;background:none}.plv-product-c-item__title-more-icon{display:flex;color:#0006;font-size:16px}.plv-product-c-item__title--expanded{-webkit-line-clamp:unset}.plv-product-c-item__tag-container{box-sizing:border-box;margin-right:4px;padding:0 1px;border:.5px solid rgba(0,0,0,.2);border-radius:2px;color:#0009;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-c-item__tag-container:last-child{margin-right:0}.plv-product-c-item__tag{display:inline-block;transform:scale(.833);user-select:none}.plv-product-c-item__price-area{display:flex;align-items:baseline}.plv-product-c-item__price{color:#ff5252;font-size:18px}.plv-product-c-item__price-custom{font-size:14px}.plv-product-c-item__price-symbol{color:#ff5252;font-size:12px}.plv-product-c-item__price-placeholder{margin-left:2px;color:#ff5252;font-size:18px}.plv-product-c-item__placeholder-text{margin:6px 2px 0 3px;color:#0006;font-size:12px}.plv-product-c-item__original-price{margin-left:2px;color:#0006;font-size:12px;line-height:14px;text-decoration:line-through}.plv-product-c-item__price-finance{color:#ff5252;font-size:14px}.plv-product-button{position:relative}.plv-product-button__render{position:relative;z-index:10}.plv-product-button__inner{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;cursor:pointer}.plv-radio{cursor:pointer;line-height:16px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:30px;-webkit-box-sizing:border-box;box-sizing:border-box}.plv-radio:last-of-type{margin-right:0}.plv-radio .plv-radio__inner{-ms-flex-negative:0;flex-shrink:0;-webkit-box-sizing:border-box;box-sizing:border-box;width:16px;height:16px;border-radius:8px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s;transition:border-color .35s;vertical-align:middle}.plv-radio .plv-radio__label{color:#1d2129;font-size:14px;padding-left:8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;line-height:16px;word-break:break-word}.plv-radio:hover .plv-radio__inner{border-color:#3f76fc}.plv-radio.plv-radio--checked .plv-radio__inner{border-width:4px;border-color:#3f76fc}.plv-radio.plv-radio--disabled{cursor:not-allowed}.plv-radio.plv-radio--disabled .plv-radio__inner{border-color:#e5e5e5;background:#f9fafd}.plv-radio.plv-radio--disabled .plv-radio__label{color:#969ba5}.plv-radio.plv-radio--disabled.plv-radio--checked .plv-radio__inner{background:#f9fafd}.plv-radio.plv-radio--readonly{cursor:default}.plv-radio.plv-radio--readonly:hover .plv-radio__inner{border-color:#e5e5e5}.plv-radio.plv-radio--readonly:hover .plv-radio__inner.plv-radio__inner--checked{border-color:#3f76fc}.plv-radio--border{min-width:80px;height:36px!important;padding:0 16px;border-radius:2px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s;transition:border-color .35s;position:relative;margin-right:16px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.plv-radio--border:hover{border-color:#3f76fc}.plv-radio--border .plv-radio__label{padding-left:0;font-size:12px;float:none}.plv-radio--border.plv-radio--checked{border-width:2px;border-color:#3f76fc}.plv-radio--border .plv-radio__corner{position:absolute;right:-1px;bottom:-1px;width:18px;height:18px;background-image:url(data:image/png;base64,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);background-size:100% 100%}.plv-radio--border.plv-radio--disabled{background:#f9fafd;border-color:#e5e5e5!important}.plv-radio--border.plv-radio--disabled:hover,.plv-radio--border.plv-radio--readonly{border-color:#e5e5e5}.plv-radio--border.plv-radio--readonly.plv-radio--checked{border-color:#3f76fc}.plv-product-common-popup{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006}.plv-product-common-popup__body{position:absolute;display:flex;flex-direction:column;width:100%;max-height:90%;overflow:hidden;border-radius:16px 16px 0 0;background:#fff}.plv-product-common-popup__header{position:relative;z-index:2;display:flex;flex-shrink:0;justify-content:center;align-items:center;padding:0 54px}.plv-product-common-popup__back{position:absolute;top:50%;left:18px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;font-size:20px;transform:translateY(-50%);cursor:pointer}.plv-product-common-popup__title{color:#000c;font-size:16px;font-weight:500;text-align:center}.plv-product-common-popup__header-right{position:absolute;top:50%;right:12px;display:flex;align-items:center;transform:translateY(-50%)}.plv-product-common-popup__close{display:flex;color:#0009;font-size:24px;cursor:pointer}.plv-product-common-popup__content{position:relative;z-index:2;display:flex;flex:1;overflow:hidden}.plv-product-common-popup__inner{flex:1;overflow-y:auto}.plv-product-common-popup__body--bg1{background:linear-gradient(180deg,#fee5e1,#fef9f4)}.plv-product-common-popup__body--bg1:before{position:absolute;top:-26px;right:-87px;z-index:1;width:176px;height:168px;background:#fdf0d5;pointer-events:none;content:"";filter:blur(80px)}.plv-product-common-popup__body--bg1 .plv-product-common-popup__content{padding:0 12px 30px}.plv-product-common-popup__body--bg1 .plv-product-common-popup__inner{border-radius:12px;background:#fff}.plv-product-common-popup--hide-modal{background:none;pointer-events:none}.plv-product-common-popup--hide-modal .plv-product-common-popup__body{pointer-events:initial}.plv-product-common-popup--fill-body .plv-product-common-popup__content{height:90%}.plv-product-common-popup--mobile .plv-product-common-popup__body{border-radius:16px 16px 0 0}.plv-product-common-popup--position-bottom .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(0, 100%);--plv-product-popup-animation-end: translate(0, 0);bottom:0;left:0}.plv-product-common-popup--position-left .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(-100%, 0);--plv-product-popup-animation-end: translate(0, 0);top:0;left:0;height:100%;max-height:100%}.plv-product-common-popup--position-right .plv-product-common-popup__body{--plv-product-popup-animation-start: translate(100%, 0);--plv-product-popup-animation-end: translate(0, 0);top:0;right:0;height:100%;max-height:100%}.plv-product-common-popup--position-center .plv-product-common-popup__body{top:50%;left:50%;max-height:90%;animation:none!important;transform:translate(-50%,-50%)}.plv-product-common-popup--horizontal-screen .plv-product-common-popup__body{border-radius:0}.plv-product-common-popup--page-fullscreen{top:50%;left:50%;width:100vh;height:100vw;transform:translate(-50%,-50%) rotate(90deg)}.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__body,.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__content{overflow:initial}.plv-product-common-popup--hide-scrollbar .plv-product-common-popup__inner{overflow-y:initial}.plv-product-common-popup-slide-enter-active{animation:plv-product-common-popup-slide-in .2s ease-in-out}.plv-product-common-popup-slide-leave-active{animation:plv-product-common-popup-slide-in .15s reverse ease-in-out}@keyframes plv-product-common-popup-slide-in{0%{transform:var(--plv-product-popup-animation-start)}to{transform:var(--plv-product-popup-animation-end)}}.plv-product-item{position:relative;display:flex;box-sizing:border-box;height:124px;margin-bottom:8px;padding:12px;border-radius:8px;background-color:#fff;cursor:pointer}.plv-product-item__ranking{box-sizing:border-box;min-width:19px;height:16px;padding:1px 6px;border-radius:2px;background:#0006;color:#fff;font-size:12px;font-weight:700;line-height:14px}.plv-product-item__ranking--cover{position:absolute;top:2px;left:2px}.plv-product-item__cover-area{position:relative;flex:none;overflow:hidden;margin-right:8px;border-radius:4px}.plv-product-item__cover-stock{position:absolute;top:0;left:0;display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:#00000080;color:#fff;font-size:12px}.plv-product-item__cover{width:100px;height:100px;object-fit:cover}.plv-product-item__content{display:flex;flex-grow:1;flex-direction:column;justify-content:space-between;min-width:0}.plv-product-item__content .plv-product-c-item__title-container{min-width:0;margin-bottom:0}.plv-product-item__title-area{display:flex;align-items:center}.plv-product-item__tags{display:flex;margin-top:6px;margin-bottom:6px}.plv-product-item__description{margin:0;color:#0006;font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-item__footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.plv-product-item__explained--no-cover{margin-right:12px;margin-left:auto}.plv-product-item__buy-button{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:24px;padding:3px 12px;border:none;border-radius:16px;background:#ff5252;color:#fff;font-size:12px;white-space:nowrap;outline:none}.plv-product-item__buy-button--disabled{background:#ff525299;color:#fff}.plv-product-item-no-cover .plv-product-c-item__title{margin-left:4px}.plv-product-item--topping{background:#f15d5d14}.plv-product-list-empty{position:absolute;top:50%;left:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box;padding:0 10px;font-size:14px;line-height:18px;text-align:center;transform:translate(-50%,-50%)}.plv-product-list-empty__icon{display:flex;opacity:40%;margin-bottom:16px;color:#999;font-size:70px}.plv-product-list-empty__text{color:#999}.plv-product-list{height:100%;overflow-y:auto;background-color:#f7f8fa;-webkit-overflow-scrolling:touch}.plv-product-list .plv-product-form-input.plv-product-form-input--theme-dark .plv-product-form-input__main{height:32px;border-radius:8px;background:#0000000a}.plv-product-list .plv-product-form-input.plv-product-form-input--theme-dark .plv-product-form-input__input-inner{padding-left:4px}.plv-product-list__header-search-icon{display:flex;margin-left:11px;color:#0006}.plv-product-list__header{position:sticky;top:0;left:0;z-index:30;padding-bottom:12px;background-color:#f7f8fa}.plv-product-list__header-search-wrapper{display:flex;align-items:center;margin:0 0 12px;padding:7px 12px 0}.plv-product-list__search-input{flex:1;margin-right:8px}.plv-product-list__header-right{display:flex;flex-direction:column;margin-left:auto;padding:6px 10px 3px}.plv-product-list__header-right-icon{display:flex;margin:0 auto 2px}.plv-product-list__header-right-text{color:#333a47;font-size:12px}.plv-product-list__wrapper{padding:0 8px}.plv-product-list__product-total{display:flex;align-items:center;margin-top:12px;padding:0 12px}.plv-product-list__product-total-icon{display:flex;margin-right:4px;color:#000c;font-size:12px}.plv-product-list__product-total-text,.plv-product-list__product-total-num{color:#0009;font-size:12px}.plv-product-list__product-total-num{margin-left:8px;font-weight:500}.plv-product-list__loading{position:absolute;top:0;left:0;z-index:999;display:flex;justify-content:center;align-items:center;width:100%;height:100%;background-color:#fff9}.plv-product-list-popup__icon-close{display:flex;margin:0 4px 0 8px;color:#0009;font-size:24px;cursor:pointer}')),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defProps = Object.defineProperties;
|
|
4
4
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
@@ -39,7 +39,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
39
39
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
40
40
|
});
|
|
41
41
|
};
|
|
42
|
-
import { getCurrentInstance, computed, inject, unref, ref, defineComponent, onBeforeUnmount, onMounted, watch, nextTick, onUnmounted, provide,
|
|
42
|
+
import { getCurrentInstance, computed, inject, unref, ref, defineComponent, onBeforeUnmount, onMounted, watch, nextTick, onUnmounted, provide, shallowRef, watchEffect } from "vue";
|
|
43
43
|
function getDefaultExportFromCjs(x2) {
|
|
44
44
|
return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
|
|
45
45
|
}
|
|
@@ -1040,12 +1040,12 @@ function getCurrentUAInfo() {
|
|
|
1040
1040
|
return currentUAInfo || (currentUAInfo = Object.freeze("undefined" != typeof window ? new UAInfo(window.navigator.userAgent, window.navigator) : new UAInfo(""))), currentUAInfo;
|
|
1041
1041
|
}
|
|
1042
1042
|
const ua = navigator.userAgent.toLowerCase();
|
|
1043
|
-
const uaInfo = getCurrentUAInfo();
|
|
1044
|
-
const isAndroid = uaInfo.os.isAndroid;
|
|
1045
|
-
const isIOS = uaInfo.os.isIOS;
|
|
1046
|
-
const weixinVersion = uaInfo.client.version;
|
|
1047
|
-
const isWeixin = uaInfo.client.isWx;
|
|
1048
|
-
const isWorkWeixin = uaInfo.client.isWxWork;
|
|
1043
|
+
const uaInfo$1 = getCurrentUAInfo();
|
|
1044
|
+
const isAndroid$1 = uaInfo$1.os.isAndroid;
|
|
1045
|
+
const isIOS$1 = uaInfo$1.os.isIOS;
|
|
1046
|
+
const weixinVersion = uaInfo$1.client.version;
|
|
1047
|
+
const isWeixin = uaInfo$1.client.isWx;
|
|
1048
|
+
const isWorkWeixin = uaInfo$1.client.isWxWork;
|
|
1049
1049
|
const isPcMiniProgram = (isWeixin || isWorkWeixin) && /miniprogramenv/.test(ua);
|
|
1050
1050
|
function __isMobile() {
|
|
1051
1051
|
const ua2 = navigator.userAgent;
|
|
@@ -1062,7 +1062,7 @@ function __isMobile() {
|
|
|
1062
1062
|
function __isTablet() {
|
|
1063
1063
|
const ua2 = navigator.userAgent;
|
|
1064
1064
|
if (/(?:iPad|PlayBook)/.test(ua2)) return true;
|
|
1065
|
-
if (uaInfo.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
|
|
1065
|
+
if (uaInfo$1.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
|
|
1066
1066
|
return false;
|
|
1067
1067
|
}
|
|
1068
1068
|
const isMob = __isMobile();
|
|
@@ -2186,6 +2186,7 @@ const useGlobalInject = () => {
|
|
|
2186
2186
|
};
|
|
2187
2187
|
const order$5 = { "title": "订单中心", "chooseAddress": "请添加收货地址", "add": "去添加", "phone": "手机号码:", "phonePlaceholder": "请输入手机号码", "submitOrder": "提交订单", "addAddress": "添加地址", "applyRefund": "申请退款", "refundTips": "退款金额 ", "confirmRefund": "退款", "refundFailed": "退款失败", "failed": "发起失败", "list": { "all": "全部", "waitPay": "待支付", "waitDelivery": "待发货", "delivering": "待收货", "finish": "已完成", "close": "已取消", "refunding": "退款中", "refunded": "已退款", "total": "合计", "waitPayBtnText": "立即支付", "waitDeliveryBtnText": "查看详情", "deliveringBtnText": "确认收货", "finishBtnText": "查看详情", "closeBtnText": "查看详情", "emptyText": "暂无订单" }, "detail": { "orderNo": "订单号", "createTime": "下单时间", "payTime": "支付时间", "deliveryTime": "发货时间", "finishTime": "完成时间", "actualPay": "实付", "payNow": "立即支付", "confirmReceipt": "确认收货", "expired": "已失效", "payAutoCancel": " 后自动取消", "cancelReason": "取消原因", "payTimeOut": "超时未支付", "refundTips": "退款金额原路返回", "qrCodeTips": "长按识别或截图保存,联系客服", "qrCodeExpiredTips": "二维码已失效,暂时无法联系客服", "paymentMethod": "支付方式", "wechat": "微信", "alipay": "支付宝" }, "confirmOrder": "确认订单", "shippingAddress": "收货地址", "noAddressTips": "请填写收货地址", "paySuccess": "支付成功", "cancelPay": "取消支付", "payFailed": "支付失败", "createOrderFailed": "无法创建订单,请稍后重试", "wechatPayTips": "请在微信中打开本页进行支付", "confirmReceiptTips": "请确认已经收到包裹", "confirmedReceipt": "已确认收货" };
|
|
2188
2188
|
const addressEdit$5 = { "name": "联系人", "namePlaceholder": "请填写联系人姓名", "choiceAddress": "选择地区", "addressPlaceholder": "请选择地区", "phone": "手机号码", "phonePlaceholder": "请填写手机号码", "phoneError": "请输入正确的手机号", "addressDetail": "详细地址", "addressDetailPlaceholder": "请填写详细地址", "error": "请完善信息", "submit": "保存", "deleteConfirm": "确定要删除该地址吗?", "addAddress": "添加地址", "editAddress": "修改地址", "deleteAddress": "删除地址", "addSuccess": "保存成功", "addError": "保存失败", "editSuccess": "修改成功", "editError": "修改失败" };
|
|
2189
|
+
const bigCard$5 = { "title": "商品推荐" };
|
|
2189
2190
|
const zhCNLang = {
|
|
2190
2191
|
"common.confirm": "确认",
|
|
2191
2192
|
"common.cancel": "取消",
|
|
@@ -2213,10 +2214,12 @@ const zhCNLang = {
|
|
|
2213
2214
|
"product.allProduct": "全部商品",
|
|
2214
2215
|
"product.stock.soldOut": "已抢光",
|
|
2215
2216
|
order: order$5,
|
|
2216
|
-
addressEdit: addressEdit$5
|
|
2217
|
+
addressEdit: addressEdit$5,
|
|
2218
|
+
bigCard: bigCard$5
|
|
2217
2219
|
};
|
|
2218
2220
|
const order$4 = { "title": "訂單中心", "chooseAddress": "請添加收貨地址", "add": "去添加", "phone": "手機號碼:", "phonePlaceholder": "請輸入手機號碼", "submitOrder": "提交訂單", "addAddress": "添加地址", "applyRefund": "申請退款", "refundTips": "退款金額 ", "confirmRefund": "退款", "refundFailed": "退款失敗", "failed": "发起失敗", "list": { "all": "全部", "waitPay": "待支付", "waitDelivery": "待發貨", "delivering": "待收貨", "finish": "已完成", "close": "已取消", "refunding": "退款中", "refunded": "已退款", "total": "合計", "waitPayBtnText": "立即支付", "waitDeliveryBtnText": "查看詳情", "deliveringBtnText": "確認收貨", "finishBtnText": "查看詳情", "closeBtnText": "查看詳情", "emptyText": "暫無訂單" }, "detail": { "orderNo": "訂單號", "createTime": "下單時間", "payTime": "支付時間", "deliveryTime": "發貨時間", "finishTime": "完成時間", "actualPay": "實付", "payNow": "立即支付", "confirmReceipt": "確認收貨", "expired": "已失效", "payAutoCancel": " 後自動取消", "cancelReason": "取消原因", "payTimeOut": "超時未支付", "refundTips": "退款金額原路返回", "qrCodeTips": "長按識別或截圖保存,聯繫客服", "qrCodeExpiredTips": "二維碼已失效,暫時無法聯繫客服", "paymentMethod": "支付方式", "wechat": "微信", "alipay": "支付寶" }, "confirmOrder": "確認訂單", "shippingAddress": "收貨地址", "noAddressTips": "請填寫收貨地址", "paySuccess": "支付成功", "payFailed": "支付失敗", "cancelPay": "取消支付", "createOrderFailed": "無法創建訂單,請稍後重試", "wechatPayTips": "請在微信中打開本頁進行支付", "confirmReceiptTips": "請確認已經收到包裹", "confirmedReceipt": "已確認收貨" };
|
|
2219
2221
|
const addressEdit$4 = { "name": "聯絡人", "namePlaceholder": "請填寫聯絡人", "choiceAddress": "選擇地區", "addressPlaceholder": "請選擇地區", "phone": "手機號碼", "phonePlaceholder": "請填寫手機號碼", "phoneError": "請輸入正確的手機號", "addressDetail": "詳細地址", "addressDetailPlaceholder": "請填寫詳細地址", "error": "請完善信息", "submit": "保存", "deleteConfirm": "確定要刪除該地址嗎?", "deleteAddress": "刪除地址", "addAddress": "添加地址", "editAddress": "修改地址", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "修改成功", "editError": "修改失敗" };
|
|
2222
|
+
const bigCard$4 = { "title": "商品推薦" };
|
|
2220
2223
|
const zhTWLang = {
|
|
2221
2224
|
"common.confirm": "確認",
|
|
2222
2225
|
"common.cancel": "取消",
|
|
@@ -2244,10 +2247,12 @@ const zhTWLang = {
|
|
|
2244
2247
|
"product.allProduct": "全部商品",
|
|
2245
2248
|
"product.stock.soldOut": "已搶光",
|
|
2246
2249
|
order: order$4,
|
|
2247
|
-
addressEdit: addressEdit$4
|
|
2250
|
+
addressEdit: addressEdit$4,
|
|
2251
|
+
bigCard: bigCard$4
|
|
2248
2252
|
};
|
|
2249
2253
|
const order$3 = { "title": "Order Center", "chooseAddress": "Add Shipping Address", "add": "Add Shipping Address", "phone": "Phone:", "phonePlaceholder": "Enter Phone", "submitOrder": "Submit", "addAddress": "Add Address", "applyRefund": "Apply Refund", "refundTips": "Refund Amount ", "confirmRefund": "Refund", "refundFailed": "Refund Failed", "failed": "Failed", "list": { "all": "All", "waitPay": "Wait Payment", "waitDelivery": "Wait Delivery", "delivering": "Delivering", "finish": "Finished", "close": "Closed", "refunding": "Refunding", "refunded": "Refunded", "total": "Total", "waitPayBtnText": "Pay Now", "waitDeliveryBtnText": "View Details", "deliveringBtnText": "Confirm Receipt", "finishBtnText": "View Details", "closeBtnText": "View Details", "emptyText": "No Order History" }, "detail": { "orderNo": "Order Number", "createTime": "Order Time", "payTime": "Payment Time", "deliveryTime": "Delivery Time", "finishTime": "Completion Time", "actualPay": "Total Amount", "payNow": "Pay Now", "confirmReceipt": "Confirm Receipt", "expired": "Expired", "payAutoCancel": "Cancel", "cancelReason": "Cancel Reason", "payTimeOut": "Pay Time Out", "refundTips": "Refund amount returned to the original path", "qrCodeTips": "Long press to scan or save screenshot for support", "qrCodeExpiredTips": "QR code expired, support unavailable", "paymentMethod": "Payment Method", "wechat": "Wechat", "alipay": "Alipay" }, "confirmOrder": "Confirm Order", "shippingAddress": "Shipping Address", "noAddressTips": "Please fill in the shipping address", "paySuccess": "Payment Success", "cancelPay": "Cancel Payment", "payFailed": "Payment Failed", "createOrderFailed": "Failed to create order, please try again later", "wechatPayTips": "Please open this page in WeChat to pay", "confirmReceiptTips": "Have you received the package?", "confirmedReceipt": "Confirmed Receipt" };
|
|
2250
2254
|
const addressEdit$3 = { "name": "Name", "namePlaceholder": "Enter Name", "choiceAddress": "Select Area", "addressPlaceholder": "Select Area", "phone": "Phone", "phonePlaceholder": "Enter Phone", "phoneError": "Please enter a valid phone number", "addressDetail": "Address Detail", "addressDetailPlaceholder": "Enter Address Detail", "error": "Please fill in all required fields", "submit": "Save", "deleteConfirm": "Delete this address?", "deleteAddress": "Yes", "addAddress": "Add Address", "editAddress": "Edit Address", "addSuccess": "Save Success", "addError": "Save Failed", "editSuccess": "Edit Success", "editError": "Edit Failed" };
|
|
2255
|
+
const bigCard$3 = { "title": "Top Picks" };
|
|
2251
2256
|
const enLang = {
|
|
2252
2257
|
"common.confirm": "Confirm",
|
|
2253
2258
|
"common.cancel": "Cancel",
|
|
@@ -2275,10 +2280,12 @@ const enLang = {
|
|
|
2275
2280
|
"product.allProduct": "Products",
|
|
2276
2281
|
"product.stock.soldOut": "Sold Out",
|
|
2277
2282
|
order: order$3,
|
|
2278
|
-
addressEdit: addressEdit$3
|
|
2283
|
+
addressEdit: addressEdit$3,
|
|
2284
|
+
bigCard: bigCard$3
|
|
2279
2285
|
};
|
|
2280
2286
|
const order$2 = { "title": "注文中心", "chooseAddress": "配送先を追加", "add": "配送先を追加", "phone": "電話番号:", "phonePlaceholder": "電話番号を入力", "submitOrder": "注文を提出", "addAddress": "配送先を追加", "applyRefund": "退款申請", "refundTips": "退款金額 ", "confirmRefund": "退款", "refundFailed": "退款失敗", "failed": "失敗", "list": { "all": "全て", "waitPay": "支払い待ち", "waitDelivery": "発送待ち", "delivering": "配送中", "finish": "完了", "close": "キャンセル", "refunding": "退款中", "refunded": "退款完了", "total": "合計", "waitPayBtnText": "支払い", "waitDeliveryBtnText": "詳細を見る", "deliveringBtnText": "確認受け取り", "finishBtnText": "詳細を見る", "closeBtnText": "詳細を見る", "emptyText": "注文履歴がありません" }, "detail": { "orderNo": "注文番号", "createTime": "注文日時", "payTime": "支払い日時", "deliveryTime": "発送日時", "finishTime": "完了日時", "actualPay": "実払い", "payNow": "支払い", "confirmReceipt": "確認受け取り", "expired": "失効", "payAutoCancel": " 後自動キャンセル", "cancelReason": "キャンセル理由", "payTimeOut": "超時未支払い", "refundTips": "退款金額原路返回", "qrCodeTips": "長押し識別またはスクリーンショット保存、サポートにお問い合わせください", "qrCodeExpiredTips": "QRコードは失効しました。暫時的にサポートに連絡できません", "paymentMethod": "支払い方法", "wechat": "ウェブアプリ", "alipay": "アリペイ" }, "confirmOrder": "注文を確認", "shippingAddress": "配送先", "noAddressTips": "配送先を入力してください", "paySuccess": "支払い成功", "cancelPay": "支払いをキャンセル", "payFailed": "支払い失敗", "createOrderFailed": "注文の作成に失敗しました。後で再試行してください。", "wechatPayTips": "WeChatでこのページを開いて支払いしてください", "confirmReceiptTips": "パッケージを確認しましたか?", "confirmedReceipt": "確認受け取り完了" };
|
|
2281
2287
|
const addressEdit$2 = { "name": "連絡先", "namePlaceholder": "連絡先を入力", "choiceAddress": "地域を選択", "addressPlaceholder": "地域を選択", "phone": "電話番号", "phonePlaceholder": "電話番号を入力", "phoneError": "正しい電話番号を入力してください", "addressDetail": "詳細住所", "addressDetailPlaceholder": "詳細住所を入力", "error": "情報を入力してください", "submit": "保存", "deleteConfirm": "この住所を削除しますか?", "deleteAddress": "住所を削除", "addAddress": "住所を追加", "editAddress": "住所を編集", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "編集成功", "editError": "編集失敗" };
|
|
2288
|
+
const bigCard$2 = { "title": "商品推薦" };
|
|
2282
2289
|
const jaLang = {
|
|
2283
2290
|
"common.confirm": "確認",
|
|
2284
2291
|
"common.cancel": "キャンセル",
|
|
@@ -2306,10 +2313,12 @@ const jaLang = {
|
|
|
2306
2313
|
"product.allProduct": "すべての商品",
|
|
2307
2314
|
"product.stock.soldOut": "売り切れ",
|
|
2308
2315
|
order: order$2,
|
|
2309
|
-
addressEdit: addressEdit$2
|
|
2316
|
+
addressEdit: addressEdit$2,
|
|
2317
|
+
bigCard: bigCard$2
|
|
2310
2318
|
};
|
|
2311
2319
|
const order$1 = { "title": "주문 센터", "chooseAddress": "주문 주소 추가", "add": "주문 주소 추가", "phone": "전화번호:", "phonePlaceholder": "전화번호 입력", "submitOrder": "주문 제출", "addAddress": "주문 주소 추가", "applyRefund": "환불 신청", "refundTips": "환불 금액 ", "confirmRefund": "환불", "refundFailed": "환불 실패", "failed": "실패", "list": { "all": "전체", "waitPay": "결제 대기", "waitDelivery": "배송 대기", "delivering": "배송 중", "finish": "완료", "close": "취소", "refunding": "환불 중", "refunded": "환불 완료", "total": "총 금액", "waitPayBtnText": "결제하기", "waitDeliveryBtnText": "상세 보기", "deliveringBtnText": "확인 받기", "finishBtnText": "상세 보기", "closeBtnText": "상세 보기", "emptyText": "주문 내역이 없습니다." }, "detail": { "orderNo": "주문번호", "createTime": "주문일시", "payTime": "결제일시", "deliveryTime": "배송일시", "finishTime": "완료일시", "actualPay": "총 금액", "payNow": "결제하기", "confirmReceipt": "확인 받기", "expired": "만료", "payAutoCancel": " 후 자동 취소", "cancelReason": "취소 사유", "payTimeOut": "결제 시간 초과", "refundTips": "환불 금액 원래 경로로 반환", "qrCodeTips": "장치 인식 또는 스크린샷 저장 후 문의", "qrCodeExpiredTips": "이미 만료되었습니다. 잠시 후 다시 시도해주세요.", "paymentMethod": "결제 방법", "wechat": "웹앱", "alipay": "알리페이" }, "confirmOrder": "주문 확인", "shippingAddress": "배송 주소", "noAddressTips": "배송 주소를 입력해주세요", "paySuccess": "결제 성공", "cancelPay": "결제 취소", "payFailed": "결제 실패", "createOrderFailed": "주문 생성에 실패했습니다. 나중에 다시 시도해주세요.", "wechatPayTips": "카카오톡에서 이 페이지를 열어 결제해주세요", "confirmReceiptTips": "패키지를 확인하셨습니까?", "confirmedReceipt": "확인 받기 완료" };
|
|
2312
2320
|
const addressEdit$1 = { "name": "연락처", "namePlaceholder": "연락처 입력", "choiceAddress": "지역 선택", "addressPlaceholder": "지역 선택", "phone": "전화번호", "phonePlaceholder": "전화번호 입력", "phoneError": "올바른 전화번호를 입력해주세요", "addressDetail": "상세 주소", "addressDetailPlaceholder": "상세 주소 입력", "error": "정보를 입력해주세요.", "submit": "저장", "deleteConfirm": "주소를 삭제하시겠습니까?", "deleteAddress": "주소 삭제", "addAddress": "주소 추가", "editAddress": "주소 수정", "addSuccess": "저장 성공", "addError": "저장 실패", "editSuccess": "수정 성공", "editError": "수정 실패" };
|
|
2321
|
+
const bigCard$1 = { "title": "상품 추천" };
|
|
2313
2322
|
const koLang = {
|
|
2314
2323
|
"common.confirm": "확인",
|
|
2315
2324
|
"common.cancel": "취소",
|
|
@@ -2337,10 +2346,12 @@ const koLang = {
|
|
|
2337
2346
|
"product.allProduct": "모든 상품",
|
|
2338
2347
|
"product.stock.soldOut": "품절",
|
|
2339
2348
|
order: order$1,
|
|
2340
|
-
addressEdit: addressEdit$1
|
|
2349
|
+
addressEdit: addressEdit$1,
|
|
2350
|
+
bigCard: bigCard$1
|
|
2341
2351
|
};
|
|
2342
2352
|
const order = { "title": "Центр заказов", "chooseAddress": "Пожалуйста, добавьте адрес доставки", "add": "Добавить", "phone": "Номер телефона:", "phonePlaceholder": "Пожалуйста, введите номер телефона", "submitOrder": "Отправить заказ", "addAddress": "Добавить адрес", "applyRefund": "Заявить о возврате", "refundTips": "Сумма возврата ", "confirmRefund": "Возврат", "refundFailed": "Возврат не удался", "failed": "Не удалось инициировать", "list": { "all": "Все", "waitPay": "Ожидает оплаты", "waitDelivery": "Ожидает отправки", "delivering": "Ожидает получения", "finish": "Завершено", "close": "Отменено", "refunding": "В процессе возврата", "refunded": "Возвращено", "total": "Итого", "waitPayBtnText": "Оплатить сейчас", "waitDeliveryBtnText": "Посмотреть детали", "deliveringBtnText": "Подтвердить получение", "finishBtnText": "Посмотреть детали", "closeBtnText": "Посмотреть детали", "emptyText": "Пока нет заказов" }, "detail": { "orderNo": "Номер заказа", "createTime": "Время создания заказа", "payTime": "Время оплаты", "deliveryTime": "Время отправки", "finishTime": "Время завершения", "actualPay": "Фактически оплачено", "payNow": "Оплатить сейчас", "confirmReceipt": "Подтвердить получение", "expired": "Истек срок действия", "payAutoCancel": " автоматическая отмена", "cancelReason": "Причина отмены", "payTimeOut": "Время оплаты истекло", "refundTips": "Сумма возврата вернется тем же способом", "qrCodeTips": "Долго нажмите для распознавания или сохраните скриншот, свяжитесь с сервисом", "qrCodeExpiredTips": "QR-код истек, временно невозможно связаться с сервисом", "paymentMethod": "Способ оплаты", "wechat": "Веб-приложение", "alipay": "АлиПай" }, "confirmOrder": "Подтвердить заказ", "shippingAddress": "Адрес доставки", "noAddressTips": "Пожалуйста, заполните адрес доставки", "paySuccess": "Оплата успешна", "cancelPay": "Отменить оплату", "payFailed": "Оплата не удалась", "createOrderFailed": "Не удается создать заказ, попробуйте позже", "wechatPayTips": "Пожалуйста, откройте эту страницу в WeChat для оплаты", "confirmReceiptTips": "Пожалуйста, подтвердите, что посылка получена", "confirmedReceipt": "Получение подтверждено" };
|
|
2343
2353
|
const addressEdit = { "name": "Контактное лицо", "namePlaceholder": "Пожалуйста, введите имя контактного лица", "choiceAddress": "Выберите регион", "addressPlaceholder": "Пожалуйста, выберите регион", "phone": "Номер телефона", "phonePlaceholder": "Пожалуйста, введите номер телефона", "phoneError": "Пожалуйста, введите правильный номер телефона", "addressDetail": "Подробный адрес", "addressDetailPlaceholder": "Пожалуйста, заполните подробный адрес", "error": "Пожалуйста, дополните информацию", "submit": "Сохранить", "deleteConfirm": "Вы уверены, что хотите удалить этот адрес?", "addAddress": "Добавить адрес", "editAddress": "Изменить адрес", "deleteAddress": "Удалить адрес", "addSuccess": "Успешно сохранено", "addError": "Не удалось сохранить", "editSuccess": "Успешно изменено", "editError": "Не удалось изменить" };
|
|
2354
|
+
const bigCard = { "title": "Товары" };
|
|
2344
2355
|
const ruLang = {
|
|
2345
2356
|
"common.confirm": "Подтвердить",
|
|
2346
2357
|
"common.cancel": "Отмена",
|
|
@@ -2368,7 +2379,8 @@ const ruLang = {
|
|
|
2368
2379
|
"product.allProduct": "Все товары",
|
|
2369
2380
|
"product.stock.soldOut": "Распродано",
|
|
2370
2381
|
order,
|
|
2371
|
-
addressEdit
|
|
2382
|
+
addressEdit,
|
|
2383
|
+
bigCard
|
|
2372
2384
|
};
|
|
2373
2385
|
const fullI18nData = {
|
|
2374
2386
|
[LangType.ZH_CN]: zhCNLang,
|
|
@@ -2774,7 +2786,8 @@ function getProductTargetExport(productTarget) {
|
|
|
2774
2786
|
ProductExplainStatus: productTarget.ProductExplainStatus,
|
|
2775
2787
|
ProductMediaType: productTarget.ProductMediaType,
|
|
2776
2788
|
ProductDeliveryType: productTarget.ProductDeliveryType,
|
|
2777
|
-
ProductEvents: productTarget.ProductEvents
|
|
2789
|
+
ProductEvents: productTarget.ProductEvents,
|
|
2790
|
+
ProductPushRule: productTarget.ProductPushRule
|
|
2778
2791
|
};
|
|
2779
2792
|
}
|
|
2780
2793
|
const PRODUCT_PROVIDE_KEY = Symbol("PRODUCT_PROVIDE_KEY");
|
|
@@ -2873,6 +2886,37 @@ const useProductStock = (options) => {
|
|
|
2873
2886
|
isSoldOut
|
|
2874
2887
|
};
|
|
2875
2888
|
};
|
|
2889
|
+
const useProductExplain = (options) => {
|
|
2890
|
+
const { props } = options;
|
|
2891
|
+
const productExplainEnabled = ref(false);
|
|
2892
|
+
function getProductExplainEnabled() {
|
|
2893
|
+
return __async(this, null, function* () {
|
|
2894
|
+
if (!props.productTarget) return;
|
|
2895
|
+
const enabled = yield props.productTarget.getProductExplainEnabled();
|
|
2896
|
+
productExplainEnabled.value = enabled;
|
|
2897
|
+
});
|
|
2898
|
+
}
|
|
2899
|
+
function handleClickExplain(product) {
|
|
2900
|
+
return __async(this, null, function* () {
|
|
2901
|
+
if (typeof props.productConfig.customClickExplainHandler === "function") {
|
|
2902
|
+
props.productConfig.customClickExplainHandler(product);
|
|
2903
|
+
return;
|
|
2904
|
+
}
|
|
2905
|
+
if (!props.productTarget) return;
|
|
2906
|
+
const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
|
|
2907
|
+
if (url) {
|
|
2908
|
+
window.open(url, "_blank");
|
|
2909
|
+
}
|
|
2910
|
+
});
|
|
2911
|
+
}
|
|
2912
|
+
onMounted(() => {
|
|
2913
|
+
getProductExplainEnabled();
|
|
2914
|
+
});
|
|
2915
|
+
return {
|
|
2916
|
+
productExplainEnabled,
|
|
2917
|
+
handleClickExplain
|
|
2918
|
+
};
|
|
2919
|
+
};
|
|
2876
2920
|
const liveGif = "data:image/gif;base64,R0lGODlhKgAqAKIEAP7//////v3//////////wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzFEQjYxNzBBNjg5MTFFQjhBN0REMjM4Qzk4RDRFMzciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzFEQjYxNzFBNjg5MTFFQjhBN0REMjM4Qzk4RDRFMzciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzE0QTU2QkE2NkUxMUVCOEE3REQyMzhDOThENEUzNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENzE0QTU2Q0E2NkUxMUVCOEE3REQyMzhDOThENEUzNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS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";
|
|
2877
2921
|
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
2878
2922
|
__name: "product-explain",
|
|
@@ -2931,24 +2975,31 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
2931
2975
|
}
|
|
2932
2976
|
function isTitleOverflowing() {
|
|
2933
2977
|
const titleEl = titleRef.value;
|
|
2934
|
-
if (!titleEl)
|
|
2978
|
+
if (!titleEl || !titleEl.parentElement) {
|
|
2979
|
+
return false;
|
|
2980
|
+
}
|
|
2981
|
+
const originalRect = titleEl.getBoundingClientRect();
|
|
2935
2982
|
const clone = titleEl.cloneNode(true);
|
|
2936
|
-
const computedStyle = window.getComputedStyle(titleEl);
|
|
2937
|
-
clone.style.font = computedStyle.font;
|
|
2938
|
-
clone.style.lineHeight = computedStyle.lineHeight;
|
|
2939
|
-
clone.style.display = "block";
|
|
2940
|
-
clone.style.width = titleEl.clientWidth + "px";
|
|
2941
|
-
clone.style.visibility = "hidden";
|
|
2942
2983
|
clone.style.position = "absolute";
|
|
2984
|
+
clone.style.top = "-9999px";
|
|
2985
|
+
clone.style.left = "-9999px";
|
|
2986
|
+
clone.style.visibility = "hidden";
|
|
2987
|
+
clone.style.width = `${originalRect.width}px`;
|
|
2988
|
+
clone.style.boxSizing = "border-box";
|
|
2943
2989
|
clone.style.whiteSpace = "normal";
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2990
|
+
clone.style.webkitLineClamp = "unset";
|
|
2991
|
+
clone.style.display = "block";
|
|
2992
|
+
titleEl.parentElement.appendChild(clone);
|
|
2993
|
+
const cloneHeight = clone.getBoundingClientRect().height;
|
|
2994
|
+
titleEl.parentElement.removeChild(clone);
|
|
2995
|
+
return cloneHeight > originalRect.height + 1;
|
|
2948
2996
|
}
|
|
2949
|
-
|
|
2997
|
+
const checkOverflow = () => {
|
|
2950
2998
|
moreArrowVisible.value = isTitleOverflowing();
|
|
2951
|
-
}
|
|
2999
|
+
};
|
|
3000
|
+
onMounted(() => {
|
|
3001
|
+
checkOverflow();
|
|
3002
|
+
});
|
|
2952
3003
|
watch(
|
|
2953
3004
|
() => props.title,
|
|
2954
3005
|
() => {
|
|
@@ -2956,14 +3007,11 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
2956
3007
|
titleRef.value.classList.remove("plv-product-c-item__title--expanded");
|
|
2957
3008
|
}
|
|
2958
3009
|
nextTick(() => {
|
|
2959
|
-
|
|
3010
|
+
checkOverflow();
|
|
2960
3011
|
});
|
|
2961
3012
|
}
|
|
2962
3013
|
);
|
|
2963
|
-
|
|
2964
|
-
checkTitleOverflow();
|
|
2965
|
-
});
|
|
2966
|
-
return { __sfc: true, props, titleRef, moreArrowVisible, handleExpand, isTitleOverflowing, checkTitleOverflow, ProductIconArrowDown };
|
|
3014
|
+
return { __sfc: true, props, titleRef, moreArrowVisible, handleExpand, isTitleOverflowing, checkOverflow, ProductIconArrowDown };
|
|
2967
3015
|
}
|
|
2968
3016
|
});
|
|
2969
3017
|
var _sfc_render$6 = function render5() {
|
|
@@ -3097,6 +3145,104 @@ function concat(i2, r2, t2) {
|
|
|
3097
3145
|
let e = n2.search || "";
|
|
3098
3146
|
return e && "&" !== e.slice(-1) && (e += "&"), e += r2, n2.search = e, joinURL(n2);
|
|
3099
3147
|
}
|
|
3148
|
+
var __awaiter = function(i2, n2, o2, t2) {
|
|
3149
|
+
return new (o2 || (o2 = Promise))(function(e, a2) {
|
|
3150
|
+
function r2(i3) {
|
|
3151
|
+
try {
|
|
3152
|
+
k2(t2.next(i3));
|
|
3153
|
+
} catch (i4) {
|
|
3154
|
+
a2(i4);
|
|
3155
|
+
}
|
|
3156
|
+
}
|
|
3157
|
+
function l2(i3) {
|
|
3158
|
+
try {
|
|
3159
|
+
k2(t2.throw(i3));
|
|
3160
|
+
} catch (i4) {
|
|
3161
|
+
a2(i4);
|
|
3162
|
+
}
|
|
3163
|
+
}
|
|
3164
|
+
function k2(i3) {
|
|
3165
|
+
var n3;
|
|
3166
|
+
i3.done ? e(i3.value) : (n3 = i3.value, n3 instanceof o2 ? n3 : new o2(function(i4) {
|
|
3167
|
+
i4(n3);
|
|
3168
|
+
})).then(r2, l2);
|
|
3169
|
+
}
|
|
3170
|
+
k2((t2 = t2.apply(i2, n2 || [])).next());
|
|
3171
|
+
});
|
|
3172
|
+
};
|
|
3173
|
+
const uaInfo = getCurrentUAInfo();
|
|
3174
|
+
const isAndroid = uaInfo.os.isAndroid;
|
|
3175
|
+
const isIOS = uaInfo.os.isIOS;
|
|
3176
|
+
var LinkType;
|
|
3177
|
+
!function(i2) {
|
|
3178
|
+
i2[i2.Normal = 10] = "Normal", i2[i2.MultiPlatform = 11] = "MultiPlatform", i2[i2.Native = 12] = "Native";
|
|
3179
|
+
}(LinkType || (LinkType = {}));
|
|
3180
|
+
var LinkJumpWay;
|
|
3181
|
+
function getNativeToPointMallFn() {
|
|
3182
|
+
var i2, n2, o2, t2;
|
|
3183
|
+
return isAndroid ? null === (i2 = window.AndroidNative) || void 0 === i2 ? void 0 : i2.toPointMall : isIOS ? null === (t2 = null === (o2 = null === (n2 = window.webkit) || void 0 === n2 ? void 0 : n2.messageHandlers) || void 0 === o2 ? void 0 : o2.gotoPointsMall) || void 0 === t2 ? void 0 : t2.postMessage : void 0;
|
|
3184
|
+
}
|
|
3185
|
+
function toNativeLink(i2) {
|
|
3186
|
+
const { androidLink: n2, iosLink: o2, otherLink: t2 } = i2, e = getNativeToPointMallFn();
|
|
3187
|
+
if (e) {
|
|
3188
|
+
let i3 = isAndroid ? n2 : o2;
|
|
3189
|
+
const t3 = encodeURIComponent(location.href);
|
|
3190
|
+
i3 = concat(i3, { plt_back_uri: t3 });
|
|
3191
|
+
e(JSON.stringify({ url: i3 }));
|
|
3192
|
+
} else window.open(t2, "_blank", "noopener=yes");
|
|
3193
|
+
}
|
|
3194
|
+
function toPlvWebviewBridge(i2) {
|
|
3195
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3196
|
+
const { getPlvWebviewSmallWindowSize: n2, getPlvWebviewBridge: o2 } = i2, t2 = (null == n2 ? void 0 : n2()) || { width: 90, height: 160 }, e = yield null == o2 ? void 0 : o2();
|
|
3197
|
+
e && e.sendData("clickProduct", { width: t2.width, height: t2.height, newPage: true, link: i2.link, data: i2.data });
|
|
3198
|
+
});
|
|
3199
|
+
}
|
|
3200
|
+
function toMultiPlatformLink(i2) {
|
|
3201
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3202
|
+
const { linkData: n2, isWxMiniProgramEnv: o2, toWxMiniProgram: t2, openLink: e, getLinkParams: a2, isMobile: r2 } = i2, { wxMiniprogramLink: l2, mobileLink: k2, pcLink: d2 } = n2, s2 = (null == r2 ? void 0 : r2()) || false;
|
|
3203
|
+
let u2 = false;
|
|
3204
|
+
try {
|
|
3205
|
+
u2 = (yield null == o2 ? void 0 : o2()) || false;
|
|
3206
|
+
} catch (i3) {
|
|
3207
|
+
u2 = false;
|
|
3208
|
+
}
|
|
3209
|
+
u2 && l2 && t2 ? t2(formatLink(l2, a2)) : s2 && k2 ? e(formatLink(k2, a2), LinkJumpWay.NewWindow) : !s2 && d2 && e(formatLink(d2, a2), LinkJumpWay.NewWindow);
|
|
3210
|
+
});
|
|
3211
|
+
}
|
|
3212
|
+
!function(i2) {
|
|
3213
|
+
i2.PopUp = "POP_UP", i2.NewWindow = "NEW_WINDOW", i2.CurrentWindow = "CURRENT_WINDOW";
|
|
3214
|
+
}(LinkJumpWay || (LinkJumpWay = {}));
|
|
3215
|
+
function formatLink(i2, n2) {
|
|
3216
|
+
let o2 = {};
|
|
3217
|
+
if (n2) {
|
|
3218
|
+
const t2 = n2(i2);
|
|
3219
|
+
o2 = Object.assign({}, o2, t2);
|
|
3220
|
+
}
|
|
3221
|
+
return concat(i2, o2);
|
|
3222
|
+
}
|
|
3223
|
+
function navigateToLink(i2) {
|
|
3224
|
+
const { linkData: n2, openLink: o2, isPlvWebview: t2, getPlvWebviewSmallWindowSize: e, getPlvWebviewBridge: a2, isWxMiniProgramEnv: r2, toWxMiniProgram: l2, getLinkParams: k2, isMobile: d2 } = i2, { linkType: s2 } = n2, u2 = (null == t2 ? void 0 : t2()) || false;
|
|
3225
|
+
if (s2 !== LinkType.Native) {
|
|
3226
|
+
if (u2) {
|
|
3227
|
+
let i3 = "";
|
|
3228
|
+
const { link: o3, mobileLink: t3, mobileAppLink: r3, wxMiniprogramOriginalId: l3, wxMiniprogramLink: d3 } = n2;
|
|
3229
|
+
switch (s2) {
|
|
3230
|
+
case LinkType.Normal:
|
|
3231
|
+
i3 = o3;
|
|
3232
|
+
break;
|
|
3233
|
+
case LinkType.MultiPlatform:
|
|
3234
|
+
i3 = r3 || t3;
|
|
3235
|
+
}
|
|
3236
|
+
let u3 = null;
|
|
3237
|
+
return s2 !== LinkType.Normal && (u3 = { mobileLink: formatLink(t3, k2), wxMiniprogramOriginalId: l3, wxMiniprogramLink: formatLink(d3, k2), mobileAppLink: formatLink(r3, k2) }), void toPlvWebviewBridge({ link: formatLink(i3, k2), data: u3, getPlvWebviewSmallWindowSize: e, getPlvWebviewBridge: a2 });
|
|
3238
|
+
}
|
|
3239
|
+
if (s2 !== LinkType.Normal) s2 === LinkType.MultiPlatform && toMultiPlatformLink({ linkData: n2, getLinkParams: k2, isWxMiniProgramEnv: r2, toWxMiniProgram: l2, openLink: o2, isMobile: d2 });
|
|
3240
|
+
else {
|
|
3241
|
+
const { link: i3, jumpWay: t3 } = n2;
|
|
3242
|
+
o2(formatLink(i3, k2), t3);
|
|
3243
|
+
}
|
|
3244
|
+
} else toNativeLink({ androidLink: formatLink(n2.androidLink, k2), iosLink: formatLink(n2.iosLink, k2), otherLink: formatLink(n2.otherLink, k2) });
|
|
3245
|
+
}
|
|
3100
3246
|
const useTrackEvent = (iarCore) => {
|
|
3101
3247
|
const { injectData } = useGlobalInject();
|
|
3102
3248
|
function trackEvent(data) {
|
|
@@ -3110,7 +3256,7 @@ const useTrackEvent = (iarCore) => {
|
|
|
3110
3256
|
trackEvent
|
|
3111
3257
|
};
|
|
3112
3258
|
};
|
|
3113
|
-
const htmlChars = ['"', "'", "&", "<", ">"], htmlEntities = [""", "'", "&", "<", ">"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
3259
|
+
const htmlChars = ['"', "'", "&", "<", ">", " "], htmlEntities = [""", "'", "&", "<", ">", " "], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
3114
3260
|
htmlChars.forEach((n2, e) => {
|
|
3115
3261
|
charsToEntities[n2] = htmlEntities[e], entitiesToChars[htmlEntities[e]] = n2;
|
|
3116
3262
|
});
|
|
@@ -3165,7 +3311,7 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
3165
3311
|
}
|
|
3166
3312
|
const wx = yield injectData.getWeixinSdk();
|
|
3167
3313
|
(_a = wx == null ? void 0 : wx.miniProgram) == null ? void 0 : _a.navigateTo({
|
|
3168
|
-
url
|
|
3314
|
+
url: url.startsWith("/") ? url : `/${url}`
|
|
3169
3315
|
});
|
|
3170
3316
|
return;
|
|
3171
3317
|
});
|
|
@@ -3220,7 +3366,9 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
3220
3366
|
watch(
|
|
3221
3367
|
() => [weixinBtnRef.value, supportWxOpenLaunchWeapp.value, buttonOptions.value],
|
|
3222
3368
|
() => {
|
|
3223
|
-
|
|
3369
|
+
setTimeout(() => {
|
|
3370
|
+
createWxMiniProgramButton();
|
|
3371
|
+
}, 500);
|
|
3224
3372
|
},
|
|
3225
3373
|
{
|
|
3226
3374
|
immediate: true
|
|
@@ -3237,25 +3385,25 @@ const useWeixinButton = (hookOptions = {}) => {
|
|
|
3237
3385
|
};
|
|
3238
3386
|
};
|
|
3239
3387
|
const useAppNative = () => {
|
|
3240
|
-
function
|
|
3388
|
+
function getNativeToPointMallFn2() {
|
|
3241
3389
|
var _a, _b, _c, _d;
|
|
3242
|
-
if (isAndroid) {
|
|
3390
|
+
if (isAndroid$1) {
|
|
3243
3391
|
return (_a = window.AndroidNative) == null ? void 0 : _a.toPointMall;
|
|
3244
|
-
} else if (isIOS) {
|
|
3392
|
+
} else if (isIOS$1) {
|
|
3245
3393
|
return (_d = (_c = (_b = window.webkit) == null ? void 0 : _b.messageHandlers) == null ? void 0 : _c.gotoPointsMall) == null ? void 0 : _d.postMessage;
|
|
3246
3394
|
}
|
|
3247
3395
|
}
|
|
3248
3396
|
function supportNativeToPointMall() {
|
|
3249
|
-
return !!
|
|
3397
|
+
return !!getNativeToPointMallFn2();
|
|
3250
3398
|
}
|
|
3251
3399
|
const supportAppNative = computed(() => {
|
|
3252
3400
|
return supportNativeToPointMall();
|
|
3253
3401
|
});
|
|
3254
|
-
function
|
|
3402
|
+
function toNativeLink2(options) {
|
|
3255
3403
|
const { androidLink, iosLink, otherLink } = options;
|
|
3256
|
-
const nativePointMallFn =
|
|
3404
|
+
const nativePointMallFn = getNativeToPointMallFn2();
|
|
3257
3405
|
if (nativePointMallFn) {
|
|
3258
|
-
let url = isAndroid ? androidLink : iosLink;
|
|
3406
|
+
let url = isAndroid$1 ? androidLink : iosLink;
|
|
3259
3407
|
const pltBackUri = encodeURIComponent(location.href);
|
|
3260
3408
|
url = concat(url, {
|
|
3261
3409
|
plt_back_uri: pltBackUri
|
|
@@ -3269,60 +3417,10 @@ const useAppNative = () => {
|
|
|
3269
3417
|
window.open(otherLink, "_blank", "noopener=yes");
|
|
3270
3418
|
}
|
|
3271
3419
|
return {
|
|
3272
|
-
getNativeToPointMallFn,
|
|
3420
|
+
getNativeToPointMallFn: getNativeToPointMallFn2,
|
|
3273
3421
|
supportNativeToPointMall,
|
|
3274
3422
|
supportAppNative,
|
|
3275
|
-
toNativeLink
|
|
3276
|
-
};
|
|
3277
|
-
};
|
|
3278
|
-
const usePolyvWebview = () => {
|
|
3279
|
-
const { injectData } = useGlobalInject();
|
|
3280
|
-
const isPlvWebview = ref(false);
|
|
3281
|
-
const supportPlvWebview = computed(() => {
|
|
3282
|
-
return isPlvWebview.value;
|
|
3283
|
-
});
|
|
3284
|
-
function getPlvWebviewBridge() {
|
|
3285
|
-
return __async(this, null, function* () {
|
|
3286
|
-
if (injectData.getPlvWebviewBridge) {
|
|
3287
|
-
return yield injectData.getPlvWebviewBridge();
|
|
3288
|
-
}
|
|
3289
|
-
});
|
|
3290
|
-
}
|
|
3291
|
-
function toPlvWebviewBridge(options) {
|
|
3292
|
-
return __async(this, null, function* () {
|
|
3293
|
-
if (!supportPlvWebview.value) {
|
|
3294
|
-
return;
|
|
3295
|
-
}
|
|
3296
|
-
let plvWebviewDataSize = {
|
|
3297
|
-
width: 90,
|
|
3298
|
-
height: 160
|
|
3299
|
-
};
|
|
3300
|
-
if (injectData.getPlvWebviewSmallWindowSize) {
|
|
3301
|
-
plvWebviewDataSize = injectData.getPlvWebviewSmallWindowSize();
|
|
3302
|
-
}
|
|
3303
|
-
const webviewBridge = yield getPlvWebviewBridge();
|
|
3304
|
-
if (!webviewBridge) {
|
|
3305
|
-
return;
|
|
3306
|
-
}
|
|
3307
|
-
webviewBridge.sendData("clickProduct", {
|
|
3308
|
-
width: plvWebviewDataSize.width,
|
|
3309
|
-
height: plvWebviewDataSize.height,
|
|
3310
|
-
newPage: true,
|
|
3311
|
-
link: options.link,
|
|
3312
|
-
data: options.data
|
|
3313
|
-
});
|
|
3314
|
-
});
|
|
3315
|
-
}
|
|
3316
|
-
onMounted(() => {
|
|
3317
|
-
if (injectData.isPlvWebview) {
|
|
3318
|
-
isPlvWebview.value = injectData.isPlvWebview();
|
|
3319
|
-
}
|
|
3320
|
-
});
|
|
3321
|
-
return {
|
|
3322
|
-
isPlvWebview,
|
|
3323
|
-
supportPlvWebview,
|
|
3324
|
-
getPlvWebviewBridge,
|
|
3325
|
-
toPlvWebviewBridge
|
|
3423
|
+
toNativeLink: toNativeLink2
|
|
3326
3424
|
};
|
|
3327
3425
|
};
|
|
3328
3426
|
const productButtonProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
@@ -3341,12 +3439,12 @@ const useProductButton = (options) => {
|
|
|
3341
3439
|
const { isSoldOut } = useProductStock({
|
|
3342
3440
|
product: () => props.productData
|
|
3343
3441
|
});
|
|
3344
|
-
const { getEmitter } = useGlobalInject();
|
|
3442
|
+
const { getEmitter, injectData } = useGlobalInject();
|
|
3345
3443
|
const { $t } = useI18n();
|
|
3346
3444
|
const productConfig = computed(() => {
|
|
3347
3445
|
return props.productConfig;
|
|
3348
3446
|
});
|
|
3349
|
-
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram } = useWeixinButton({
|
|
3447
|
+
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram, supportWxMiniProgramNavigateTo } = useWeixinButton({
|
|
3350
3448
|
getButtonOptions: () => {
|
|
3351
3449
|
const productData = props.productData;
|
|
3352
3450
|
return {
|
|
@@ -3357,10 +3455,9 @@ const useProductButton = (options) => {
|
|
|
3357
3455
|
},
|
|
3358
3456
|
launchCallback: () => sendClickEvent()
|
|
3359
3457
|
});
|
|
3360
|
-
const { supportAppNative
|
|
3361
|
-
const { supportPlvWebview, toPlvWebviewBridge } = usePolyvWebview();
|
|
3458
|
+
const { supportAppNative } = useAppNative();
|
|
3362
3459
|
const { trackEvent } = useTrackEvent(props.productTarget.iarCore);
|
|
3363
|
-
const { ProductBuyType, ProductType
|
|
3460
|
+
const { ProductBuyType, ProductType } = getProductTargetExport(props.productTarget);
|
|
3364
3461
|
const isDirectBuy = computed(() => {
|
|
3365
3462
|
return props.productData.productType === ProductType.Normal && props.productData.buyType === ProductBuyType.DirectBuy;
|
|
3366
3463
|
});
|
|
@@ -3387,13 +3484,13 @@ const useProductButton = (options) => {
|
|
|
3387
3484
|
if (isDirectBuy.value) {
|
|
3388
3485
|
return false;
|
|
3389
3486
|
}
|
|
3390
|
-
if (productData.linkType ===
|
|
3487
|
+
if (productData.linkType === LinkType.Normal) {
|
|
3391
3488
|
return !productData.link;
|
|
3392
3489
|
}
|
|
3393
|
-
if (productData.linkType ===
|
|
3490
|
+
if (productData.linkType === LinkType.MultiPlatform) {
|
|
3394
3491
|
return isMultiPlatformDisabled.value;
|
|
3395
3492
|
}
|
|
3396
|
-
if (productData.linkType ===
|
|
3493
|
+
if (productData.linkType === LinkType.Native) {
|
|
3397
3494
|
if (supportAppNative.value) {
|
|
3398
3495
|
return !productData.androidLink && !productData.iosLink;
|
|
3399
3496
|
}
|
|
@@ -3452,9 +3549,26 @@ const useProductButton = (options) => {
|
|
|
3452
3549
|
}
|
|
3453
3550
|
return concat(url, urlParams);
|
|
3454
3551
|
}
|
|
3552
|
+
function getLinkData() {
|
|
3553
|
+
const productData = props.productData;
|
|
3554
|
+
const linkData = {
|
|
3555
|
+
linkType: productData.linkType,
|
|
3556
|
+
jumpWay: productData.jumpWay,
|
|
3557
|
+
link: productData.link,
|
|
3558
|
+
pcLink: productData.pcLink,
|
|
3559
|
+
mobileLink: productData.mobileLink,
|
|
3560
|
+
mobileAppLink: productData.mobileAppLink,
|
|
3561
|
+
androidLink: productData.androidLink,
|
|
3562
|
+
iosLink: productData.iosLink,
|
|
3563
|
+
otherLink: productData.otherLink,
|
|
3564
|
+
wxMiniprogramOriginalId: productData.wxMiniprogramOriginalId,
|
|
3565
|
+
wxMiniprogramAppId: productData.wxMiniprogramAppId,
|
|
3566
|
+
wxMiniprogramLink: productData.wxMiniprogramLink
|
|
3567
|
+
};
|
|
3568
|
+
return linkData;
|
|
3569
|
+
}
|
|
3455
3570
|
function onClickLinkBtn() {
|
|
3456
3571
|
const productData = props.productData;
|
|
3457
|
-
const { linkType } = productData;
|
|
3458
3572
|
sendClickEvent();
|
|
3459
3573
|
if (productConfig.value.customClickButtonHandler) {
|
|
3460
3574
|
productConfig.value.customClickButtonHandler(productData);
|
|
@@ -3464,70 +3578,28 @@ const useProductButton = (options) => {
|
|
|
3464
3578
|
toDirectBuy();
|
|
3465
3579
|
return;
|
|
3466
3580
|
}
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
case ProductLinkType.Normal:
|
|
3480
|
-
linkTo = link;
|
|
3481
|
-
break;
|
|
3482
|
-
case ProductLinkType.MultiPlatform:
|
|
3483
|
-
linkTo = mobileAppLink || mobileLink;
|
|
3484
|
-
break;
|
|
3485
|
-
}
|
|
3486
|
-
let otherData = null;
|
|
3487
|
-
if (productData.linkType !== ProductLinkType.Normal) {
|
|
3488
|
-
otherData = {
|
|
3489
|
-
mobileLink: formatProductLink(mobileLink),
|
|
3490
|
-
wxMiniprogramOriginalId,
|
|
3491
|
-
wxMiniprogramLink: formatProductLink(wxMiniprogramLink),
|
|
3492
|
-
mobileAppLink: formatProductLink(mobileAppLink)
|
|
3493
|
-
};
|
|
3494
|
-
}
|
|
3495
|
-
toPlvWebviewBridge({
|
|
3496
|
-
link: formatProductLink(linkTo),
|
|
3497
|
-
data: otherData
|
|
3498
|
-
});
|
|
3499
|
-
return;
|
|
3500
|
-
}
|
|
3501
|
-
if (linkType === ProductLinkType.Normal) {
|
|
3502
|
-
const { link, jumpWay } = productData;
|
|
3503
|
-
openLink(formatProductLink(link), jumpWay);
|
|
3504
|
-
return;
|
|
3505
|
-
}
|
|
3506
|
-
if (linkType === ProductLinkType.MultiPlatform) {
|
|
3507
|
-
const { wxMiniprogramLink, mobileLink, pcLink } = productData;
|
|
3508
|
-
if (isWxMiniProgramWebview.value && wxMiniprogramLink) {
|
|
3509
|
-
toWxMiniProgram(formatProductLink(wxMiniprogramLink));
|
|
3510
|
-
return;
|
|
3511
|
-
}
|
|
3512
|
-
if (isMobile) {
|
|
3513
|
-
openLink(formatProductLink(mobileLink), ProductLinkJumpWay.NewWindow);
|
|
3514
|
-
return;
|
|
3515
|
-
}
|
|
3516
|
-
if (!isMobile) {
|
|
3517
|
-
openLink(formatProductLink(pcLink), ProductLinkJumpWay.NewWindow);
|
|
3518
|
-
return;
|
|
3519
|
-
}
|
|
3520
|
-
}
|
|
3581
|
+
const linkData = getLinkData();
|
|
3582
|
+
navigateToLink({
|
|
3583
|
+
linkData,
|
|
3584
|
+
getLinkParams: productConfig.value.getLinkParams,
|
|
3585
|
+
openLink,
|
|
3586
|
+
isPlvWebview: injectData.isPlvWebview,
|
|
3587
|
+
isMobile: injectData.isMobile,
|
|
3588
|
+
getPlvWebviewBridge: injectData.getPlvWebviewBridge,
|
|
3589
|
+
getPlvWebviewSmallWindowSize: injectData.getPlvWebviewSmallWindowSize,
|
|
3590
|
+
isWxMiniProgramEnv: supportWxMiniProgramNavigateTo,
|
|
3591
|
+
toWxMiniProgram
|
|
3592
|
+
});
|
|
3521
3593
|
}
|
|
3522
3594
|
function openLink(url, jumpWay) {
|
|
3523
3595
|
switch (jumpWay) {
|
|
3524
|
-
case
|
|
3596
|
+
case LinkJumpWay.NewWindow:
|
|
3525
3597
|
window.open(url, "_blank", "noopener=yes");
|
|
3526
3598
|
break;
|
|
3527
|
-
case
|
|
3599
|
+
case LinkJumpWay.CurrentWindow:
|
|
3528
3600
|
window.location.href = url;
|
|
3529
3601
|
break;
|
|
3530
|
-
case
|
|
3602
|
+
case LinkJumpWay.PopUp:
|
|
3531
3603
|
getEmitter().emit(productEvents.OpenProductIframeLinkPopup, url);
|
|
3532
3604
|
break;
|
|
3533
3605
|
default:
|
|
@@ -3550,7 +3622,7 @@ const useProductButton = (options) => {
|
|
|
3550
3622
|
name: productData.name,
|
|
3551
3623
|
productId: productData.productId,
|
|
3552
3624
|
productType: productData.productType,
|
|
3553
|
-
productPushRule: data == null ? void 0 : data.pushRule
|
|
3625
|
+
productPushRule: (data == null ? void 0 : data.pushRule) || ""
|
|
3554
3626
|
}
|
|
3555
3627
|
});
|
|
3556
3628
|
props.productTarget.sendProductClickEvent({
|
|
@@ -4491,6 +4563,7 @@ const useDynamicHeight = (options) => {
|
|
|
4491
4563
|
if (props.fillBody) {
|
|
4492
4564
|
return "90%";
|
|
4493
4565
|
}
|
|
4566
|
+
if (isHorizontalScreenOrientation.value) return document.documentElement.clientHeight;
|
|
4494
4567
|
if (props.enableDynamicHeight) {
|
|
4495
4568
|
return document.documentElement.clientHeight * dynamicContentHeightPercent.value;
|
|
4496
4569
|
}
|
|
@@ -4605,63 +4678,194 @@ const useDynamicHeight = (options) => {
|
|
|
4605
4678
|
}
|
|
4606
4679
|
});
|
|
4607
4680
|
const supportWebP = /* @__PURE__ */ (() => {
|
|
4608
|
-
let
|
|
4681
|
+
let e;
|
|
4609
4682
|
return () => {
|
|
4610
|
-
if (null ==
|
|
4611
|
-
|
|
4612
|
-
const
|
|
4613
|
-
if (
|
|
4614
|
-
const
|
|
4615
|
-
return 0 ===
|
|
4683
|
+
if (null == e) try {
|
|
4684
|
+
e = function() {
|
|
4685
|
+
const e2 = document.createElement("canvas");
|
|
4686
|
+
if (e2.getContext && e2.getContext("2d")) {
|
|
4687
|
+
const A2 = "image/webp";
|
|
4688
|
+
return 0 === e2.toDataURL(A2).indexOf("data:" + A2);
|
|
4616
4689
|
}
|
|
4617
4690
|
return false;
|
|
4691
|
+
}() || function() {
|
|
4692
|
+
let e2 = false;
|
|
4693
|
+
const A2 = navigator.userAgent, t2 = /\bOS\s([\d_.]+)\slike\sMac\sOS\sX\b/.exec(A2);
|
|
4694
|
+
if (t2) e2 = parseInt(t2[1]) >= 14;
|
|
4695
|
+
else {
|
|
4696
|
+
const t3 = /\bVersion\/([\d.]+)\sSafari\b/.exec(A2);
|
|
4697
|
+
t3 && (e2 = parseInt(t3[1]) >= 16);
|
|
4698
|
+
}
|
|
4699
|
+
return e2;
|
|
4618
4700
|
}();
|
|
4619
|
-
} catch (
|
|
4620
|
-
|
|
4701
|
+
} catch (A2) {
|
|
4702
|
+
e = false;
|
|
4621
4703
|
}
|
|
4622
|
-
return
|
|
4704
|
+
return e;
|
|
4623
4705
|
};
|
|
4624
4706
|
})();
|
|
4625
|
-
function getExtname(
|
|
4626
|
-
const
|
|
4707
|
+
function getExtname(e) {
|
|
4708
|
+
const A2 = (e || "").split("."), t2 = A2[A2.length - 1];
|
|
4627
4709
|
return t2 ? t2.toLowerCase() : "";
|
|
4628
4710
|
}
|
|
4629
|
-
function handleCompressOptions(
|
|
4630
|
-
var
|
|
4631
|
-
const
|
|
4632
|
-
return
|
|
4711
|
+
function handleCompressOptions(e) {
|
|
4712
|
+
var A2, t2;
|
|
4713
|
+
const n2 = "number" == typeof e ? { width: e } : e;
|
|
4714
|
+
return n2.allowJPG = null === (A2 = n2.allowJPG) || void 0 === A2 || A2, n2.allowWebP = null !== (t2 = n2.allowWebP) && void 0 !== t2 ? t2 : "auto", n2;
|
|
4633
4715
|
}
|
|
4634
|
-
function createURLObject(
|
|
4635
|
-
let
|
|
4716
|
+
function createURLObject(e) {
|
|
4717
|
+
let A2;
|
|
4636
4718
|
if ("undefined" != typeof document) {
|
|
4637
4719
|
const t2 = document.createElement("a");
|
|
4638
|
-
t2.href =
|
|
4720
|
+
t2.href = e, A2 = t2;
|
|
4639
4721
|
} else if ("function" == typeof URL) try {
|
|
4640
|
-
|
|
4641
|
-
} catch (
|
|
4722
|
+
A2 = new URL(/^\/\//.test(e) ? "https:" + e : e);
|
|
4723
|
+
} catch (e2) {
|
|
4642
4724
|
}
|
|
4643
|
-
return
|
|
4725
|
+
return A2;
|
|
4644
4726
|
}
|
|
4645
|
-
function genOSSCompressParams(
|
|
4727
|
+
function genOSSCompressParams(e, A2) {
|
|
4646
4728
|
let t2 = "";
|
|
4647
|
-
return null ==
|
|
4729
|
+
return null == A2.width && null == A2.height || (t2 += "/resize", A2.width && (t2 += ",w_" + A2.width), A2.height && (t2 += ",h_" + A2.height), t2 += ",limit_1"), A2.allowAVIF && "gif" !== e ? t2 += "/format,avif" : true === A2.allowWebP || "auto" === A2.allowWebP && supportWebP() ? t2 += "/format,webp/quality,Q_80" : A2.allowJPG && "gif" !== e && (t2 += "/format,jpg/quality,Q_80"), t2;
|
|
4648
4730
|
}
|
|
4649
|
-
function setOSSCompressParams(
|
|
4731
|
+
function setOSSCompressParams(e, A2) {
|
|
4650
4732
|
let t2 = false;
|
|
4651
|
-
return
|
|
4652
|
-
}
|
|
4653
|
-
function ossCompress(
|
|
4654
|
-
const t2 = createURLObject(
|
|
4655
|
-
if (!t2) return
|
|
4656
|
-
|
|
4657
|
-
|
|
4733
|
+
return e = e.replace(/([?&]x-oss-process)(?:=([^&]*))?/, (e2, n2, r2) => (t2 = true, /^image/.test(r2) ? n2 + "=" + r2.replace(/\/(?:resize|format|quality)[^/]*/gi, "") + A2 : e2)), t2 ? e : e + (-1 === e.indexOf("?") ? "?" : "&") + "x-oss-process=image" + A2;
|
|
4734
|
+
}
|
|
4735
|
+
function ossCompress(e, A2) {
|
|
4736
|
+
const t2 = createURLObject(e);
|
|
4737
|
+
if (!t2) return e;
|
|
4738
|
+
const n2 = getExtname(t2.pathname.split("/").pop());
|
|
4739
|
+
if (!/\.videocc\.net$/i.test(t2.hostname) || "svg" === n2) return e;
|
|
4740
|
+
const r2 = genOSSCompressParams(n2, handleCompressOptions(A2));
|
|
4658
4741
|
return r2 && (t2.search = setOSSCompressParams(t2.search, r2)), t2.href;
|
|
4659
4742
|
}
|
|
4743
|
+
var ProductItemScene = /* @__PURE__ */ ((ProductItemScene2) => {
|
|
4744
|
+
ProductItemScene2["ProductList"] = "productList";
|
|
4745
|
+
ProductItemScene2["BigCard"] = "bigCard";
|
|
4746
|
+
ProductItemScene2["AggregateStation"] = "aggregateStation";
|
|
4747
|
+
return ProductItemScene2;
|
|
4748
|
+
})(ProductItemScene || {});
|
|
4749
|
+
const useProductTrack = (options) => {
|
|
4750
|
+
const { productTarget } = options;
|
|
4751
|
+
const { ProductType } = getProductTargetExport(productTarget);
|
|
4752
|
+
const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
|
|
4753
|
+
const trackedProductIds = ref({});
|
|
4754
|
+
const productListRef = ref(null);
|
|
4755
|
+
const productItemsRef = shallowRef([]);
|
|
4756
|
+
function setItemRef(el) {
|
|
4757
|
+
if (el) {
|
|
4758
|
+
productItemsRef.value.push(el);
|
|
4759
|
+
}
|
|
4760
|
+
}
|
|
4761
|
+
function trackProductViewEvent(productData) {
|
|
4762
|
+
const specAttrs = {
|
|
4763
|
+
name: productData.name,
|
|
4764
|
+
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : "",
|
|
4765
|
+
productId: productData.productId,
|
|
4766
|
+
productType: productData.productType,
|
|
4767
|
+
productFeature: JSON.stringify(productData.featureTags)
|
|
4768
|
+
};
|
|
4769
|
+
if (productData.productType === ProductType.Normal && productData.originPrice !== void 0) {
|
|
4770
|
+
specAttrs.price = productData.originPrice;
|
|
4771
|
+
}
|
|
4772
|
+
trackEvent({
|
|
4773
|
+
event_id: "product_list_item_view",
|
|
4774
|
+
event_type: "show",
|
|
4775
|
+
spec_attrs: specAttrs
|
|
4776
|
+
});
|
|
4777
|
+
}
|
|
4778
|
+
function isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom) {
|
|
4779
|
+
const offsetTop = element.offsetTop;
|
|
4780
|
+
const offsetHeight = element.offsetHeight;
|
|
4781
|
+
const elementBottom = offsetTop + offsetHeight;
|
|
4782
|
+
const isFullyAbove = elementBottom <= containerScrollTop;
|
|
4783
|
+
const isBottomBelowViewportBottom = containerViewportBottom < elementBottom;
|
|
4784
|
+
return !isFullyAbove && !isBottomBelowViewportBottom;
|
|
4785
|
+
}
|
|
4786
|
+
function checkAndTrackProductItem(itemInstance, containerScrollTop, containerViewportBottom) {
|
|
4787
|
+
if (!itemInstance || !itemInstance.$el || !itemInstance.product || !itemInstance.product.productId) {
|
|
4788
|
+
return;
|
|
4789
|
+
}
|
|
4790
|
+
const element = itemInstance.$el;
|
|
4791
|
+
const productId = itemInstance.product.productId;
|
|
4792
|
+
const isVisible = isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom);
|
|
4793
|
+
if (isVisible && !trackedProductIds.value[productId]) {
|
|
4794
|
+
trackedProductIds.value = __spreadProps(__spreadValues({}, trackedProductIds.value), { [productId]: true });
|
|
4795
|
+
trackProductViewEvent(itemInstance.product);
|
|
4796
|
+
}
|
|
4797
|
+
}
|
|
4798
|
+
function trackProduct() {
|
|
4799
|
+
return __async(this, null, function* () {
|
|
4800
|
+
yield nextTick();
|
|
4801
|
+
const container = productListRef.value;
|
|
4802
|
+
if (!container || !productItemsRef.value.length) return;
|
|
4803
|
+
const scrollTop = container.scrollTop;
|
|
4804
|
+
const scrollClientHeight = container.clientHeight;
|
|
4805
|
+
const viewportBottom = scrollTop + scrollClientHeight;
|
|
4806
|
+
productItemsRef.value.forEach((itemInstance) => {
|
|
4807
|
+
checkAndTrackProductItem(itemInstance, scrollTop, viewportBottom);
|
|
4808
|
+
});
|
|
4809
|
+
});
|
|
4810
|
+
}
|
|
4811
|
+
function clearTrackedProducts() {
|
|
4812
|
+
trackedProductIds.value = {};
|
|
4813
|
+
productItemsRef.value = [];
|
|
4814
|
+
}
|
|
4815
|
+
function getCommonSpecAttrs(productData) {
|
|
4816
|
+
return {
|
|
4817
|
+
clickTime: (/* @__PURE__ */ new Date()).getTime(),
|
|
4818
|
+
linkType: isMobile ? "mobile" : "pc",
|
|
4819
|
+
productName: productData.name,
|
|
4820
|
+
productId: productData.productId,
|
|
4821
|
+
productType: productData.productType,
|
|
4822
|
+
feature: JSON.stringify(productData.featureTags),
|
|
4823
|
+
price: productData.productType === ProductType.Normal ? productData.originPrice : "",
|
|
4824
|
+
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : ""
|
|
4825
|
+
};
|
|
4826
|
+
}
|
|
4827
|
+
function trackProductItemClick(productData) {
|
|
4828
|
+
trackEvent({
|
|
4829
|
+
event_id: "product_list_item_click",
|
|
4830
|
+
event_type: "click",
|
|
4831
|
+
spec_attrs: __spreadValues({}, getCommonSpecAttrs(productData))
|
|
4832
|
+
});
|
|
4833
|
+
}
|
|
4834
|
+
function trackProductPushItemClick(productData) {
|
|
4835
|
+
trackEvent({
|
|
4836
|
+
event_id: "product_push_item_click",
|
|
4837
|
+
event_type: "click",
|
|
4838
|
+
spec_attrs: __spreadProps(__spreadValues({}, getCommonSpecAttrs(productData)), {
|
|
4839
|
+
pushId: productData.pushLogId || ""
|
|
4840
|
+
})
|
|
4841
|
+
});
|
|
4842
|
+
}
|
|
4843
|
+
function trackProductPushItemView(productData) {
|
|
4844
|
+
trackEvent({
|
|
4845
|
+
event_id: "product_push_item_view",
|
|
4846
|
+
event_type: "show",
|
|
4847
|
+
spec_attrs: {
|
|
4848
|
+
linkType: isMobile ? "mobile" : "pc",
|
|
4849
|
+
productId: productData.productId,
|
|
4850
|
+
pushId: productData.pushLogId || ""
|
|
4851
|
+
}
|
|
4852
|
+
});
|
|
4853
|
+
}
|
|
4854
|
+
return {
|
|
4855
|
+
productListRef,
|
|
4856
|
+
setItemRef,
|
|
4857
|
+
trackProduct,
|
|
4858
|
+
clearTrackedProducts,
|
|
4859
|
+
trackProductItemClick,
|
|
4860
|
+
trackProductPushItemClick,
|
|
4861
|
+
trackProductPushItemView
|
|
4862
|
+
};
|
|
4863
|
+
};
|
|
4660
4864
|
const productItemProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
4661
|
-
product: PropUtils.object().isRequired
|
|
4865
|
+
product: PropUtils.object().isRequired,
|
|
4866
|
+
scene: PropUtils.enum()
|
|
4662
4867
|
});
|
|
4663
4868
|
const productItemEmits = () => ({
|
|
4664
|
-
"click-explain": emitFunc(),
|
|
4665
4869
|
"click-product-item": emitFunc(),
|
|
4666
4870
|
"direct-buy": emitFunc()
|
|
4667
4871
|
});
|
|
@@ -4669,20 +4873,14 @@ const useProductItem = (options) => {
|
|
|
4669
4873
|
const { props, emit } = options;
|
|
4670
4874
|
const { ProductType, ProductBuyType } = getProductTargetExport(props.productTarget);
|
|
4671
4875
|
const { getEmitter } = useGlobalInject();
|
|
4672
|
-
const productExplainEnabled =
|
|
4876
|
+
const { productExplainEnabled, handleClickExplain } = useProductExplain({ props });
|
|
4877
|
+
const { trackProductItemClick, trackProductPushItemClick } = useProductTrack({ productTarget: props.productTarget });
|
|
4673
4878
|
const isProductRedirectLinkDirectly = ref(false);
|
|
4674
4879
|
const shouldEllipsisTitle = computed(() => {
|
|
4675
4880
|
const { product } = props;
|
|
4676
4881
|
return !!(product.name && product.featureTags.length && (product.description && product.productType !== ProductType.Position));
|
|
4677
4882
|
});
|
|
4678
|
-
function
|
|
4679
|
-
return __async(this, null, function* () {
|
|
4680
|
-
if (!props.productTarget) return;
|
|
4681
|
-
const enabled = yield props.productTarget.getProductExplainEnabled();
|
|
4682
|
-
productExplainEnabled.value = enabled;
|
|
4683
|
-
});
|
|
4684
|
-
}
|
|
4685
|
-
function setIsProductRedirectLinkDirectly() {
|
|
4883
|
+
function getIsProductRedirectLinkDirectly() {
|
|
4686
4884
|
return __async(this, null, function* () {
|
|
4687
4885
|
const { product, productTarget } = props;
|
|
4688
4886
|
if (!product || !productTarget) return false;
|
|
@@ -4690,11 +4888,13 @@ const useProductItem = (options) => {
|
|
|
4690
4888
|
isProductRedirectLinkDirectly.value = product.productType === ProductType.Normal && product.buyType === ProductBuyType.Link && enabled;
|
|
4691
4889
|
});
|
|
4692
4890
|
}
|
|
4693
|
-
function onClickExplain(product) {
|
|
4694
|
-
emit("click-explain", product);
|
|
4695
|
-
}
|
|
4696
4891
|
function onClickProductItem() {
|
|
4697
4892
|
emit("click-product-item", props.product);
|
|
4893
|
+
if (props.scene === ProductItemScene.BigCard) {
|
|
4894
|
+
trackProductPushItemClick(props.product);
|
|
4895
|
+
} else {
|
|
4896
|
+
trackProductItemClick(props.product);
|
|
4897
|
+
}
|
|
4698
4898
|
if (props.product.productType !== ProductType.Finance) {
|
|
4699
4899
|
getEmitter().emit(productEvents.OpenProductDetailPopup, props.product);
|
|
4700
4900
|
}
|
|
@@ -4702,18 +4902,15 @@ const useProductItem = (options) => {
|
|
|
4702
4902
|
function onDirectBuy(product) {
|
|
4703
4903
|
emit("direct-buy", product);
|
|
4704
4904
|
}
|
|
4705
|
-
onMounted(() => {
|
|
4706
|
-
setProductExplainEnabled();
|
|
4707
|
-
});
|
|
4708
4905
|
watchEffect(() => {
|
|
4709
|
-
|
|
4906
|
+
getIsProductRedirectLinkDirectly();
|
|
4710
4907
|
});
|
|
4711
4908
|
return {
|
|
4712
4909
|
productExplainEnabled,
|
|
4713
4910
|
isProductRedirectLinkDirectly,
|
|
4714
4911
|
shouldEllipsisTitle,
|
|
4715
4912
|
onDirectBuy,
|
|
4716
|
-
|
|
4913
|
+
handleClickExplain,
|
|
4717
4914
|
onClickProductItem
|
|
4718
4915
|
};
|
|
4719
4916
|
};
|
|
@@ -4733,22 +4930,22 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
4733
4930
|
isProductRedirectLinkDirectly,
|
|
4734
4931
|
shouldEllipsisTitle,
|
|
4735
4932
|
onDirectBuy,
|
|
4736
|
-
|
|
4737
|
-
|
|
4933
|
+
onClickProductItem,
|
|
4934
|
+
handleClickExplain
|
|
4738
4935
|
} = useProductItem({
|
|
4739
4936
|
props,
|
|
4740
4937
|
emit
|
|
4741
4938
|
});
|
|
4742
|
-
return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy,
|
|
4939
|
+
return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy, onClickProductItem, handleClickExplain, ProductExplain, ProductTitle, ProductFeatureTag, ProductPrice, ProductButton, ossCompress, ProductItemScene };
|
|
4743
4940
|
}
|
|
4744
4941
|
});
|
|
4745
4942
|
var _sfc_render$2 = function render9() {
|
|
4746
4943
|
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
4747
|
-
return _c(_setup.ProductButton, { attrs: { "product-data": _vm.product, "product-target": _vm.productTarget, "product-config": _vm.productConfig, "disabled": !_setup.isProductRedirectLinkDirectly } }, [_c("div", { class: ["plv-product-item", { "plv-product-item-no-cover": !_vm.product.cover, "plv-product-item--topping": _vm.product.isTopping }], on: { "click": _setup.onClickProductItem } }, [_vm.product.cover ? _c("div", { staticClass: "plv-product-item__cover-area" }, [_c("img", { staticClass: "plv-product-item__cover", attrs: { "src": _setup.ossCompress(_vm.product.cover, { width: 300 }), "alt": _vm.product.name } }), _setup.isSoldOut ? _c("div", { staticClass: "plv-product-item__cover-stock" }, [_vm._v(" - " + _vm._s(_setup.$t("product.stock.soldOut")) + " - ")]) : _vm._e(), _vm.product.displayNumber ? _c("div", { staticClass: "plv-product-item__ranking plv-product-item__ranking--cover plv-font-din-pro-regular" }, [_vm._v(" " + _vm._s(_vm.product.displayNumber) + " ")]) : _vm._e(), _setup.productExplainEnabled ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explain", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.
|
|
4944
|
+
return _c(_setup.ProductButton, { attrs: { "product-data": _vm.product, "product-target": _vm.productTarget, "product-config": _vm.productConfig, "disabled": !_setup.isProductRedirectLinkDirectly } }, [_c("div", { class: ["plv-product-item", { "plv-product-item-no-cover": !_vm.product.cover, "plv-product-item--topping": _vm.product.isTopping }], on: { "click": _setup.onClickProductItem } }, [_vm.product.cover ? _c("div", { staticClass: "plv-product-item__cover-area" }, [_c("img", { staticClass: "plv-product-item__cover", attrs: { "src": _setup.ossCompress(_vm.product.cover, { width: 300 }), "alt": _vm.product.name } }), _setup.isSoldOut ? _c("div", { staticClass: "plv-product-item__cover-stock" }, [_vm._v(" - " + _vm._s(_setup.$t("product.stock.soldOut")) + " - ")]) : _vm._e(), _vm.product.displayNumber ? _c("div", { staticClass: "plv-product-item__ranking plv-product-item__ranking--cover plv-font-din-pro-regular" }, [_vm._v(" " + _vm._s(_vm.product.displayNumber) + " ")]) : _vm._e(), _setup.productExplainEnabled ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explain", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.handleClickExplain } }) : _vm._e()], 1) : _vm._e(), _c("div", { staticClass: "plv-product-item__content" }, [_c("div", { staticClass: "plv-product-item__title-area" }, [_vm.product.displayNumber && !_vm.product.cover ? _c("div", { staticClass: "plv-product-item__ranking plv-font-din-pro-regular" }, [_vm._v(" " + _vm._s(_vm.product.displayNumber) + " ")]) : _vm._e(), _setup.productExplainEnabled && !_vm.product.cover && _vm.product.explainStatus !== _setup.ProductExplainStatus.Explained ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explain", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.handleClickExplain } }) : _vm._e(), _c(_setup.ProductTitle, { attrs: { "title": _vm.product.name, "use-ellipsis": _setup.shouldEllipsisTitle } })], 1), _c("div", { staticClass: "plv-product-item__tags" }, _vm._l(_vm.product.featureTags, function(tag, index) {
|
|
4748
4945
|
return _c(_setup.ProductFeatureTag, { key: index, attrs: { "tag": tag } });
|
|
4749
|
-
}), 1), _vm.product.description ? _c("p", { staticClass: "plv-product-item__description" }, [_vm._v(" " + _vm._s(_vm.product.description) + " ")]) : _vm._e(), _c("div", { staticClass: "plv-product-item__footer" }, [_c(_setup.ProductPrice, { attrs: { "product": _vm.product } }), _setup.productExplainEnabled && _vm.product.explainStatus === _setup.ProductExplainStatus.Explained && !_vm.product.cover ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explained--no-cover", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.
|
|
4946
|
+
}), 1), _vm.product.description ? _c("p", { staticClass: "plv-product-item__description" }, [_vm._v(" " + _vm._s(_vm.product.description) + " ")]) : _vm._e(), _c("div", { staticClass: "plv-product-item__footer" }, [_c(_setup.ProductPrice, { attrs: { "product": _vm.product } }), _setup.productExplainEnabled && _vm.product.explainStatus === _setup.ProductExplainStatus.Explained && !_vm.product.cover ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explained--no-cover", attrs: { "product": _vm.product, "product-target": _vm.productTarget }, on: { "click-explain": _setup.handleClickExplain } }) : _vm._e(), _vm.scene !== _setup.ProductItemScene.BigCard ? _c(_setup.ProductButton, { attrs: { "product-data": _vm.product, "product-target": _vm.productTarget, "product-config": _vm.productConfig }, on: { "direct-buy": _setup.onDirectBuy }, scopedSlots: _vm._u([{ key: "default", fn: function({ buttonText, disabled }) {
|
|
4750
4947
|
return [_c("button", { staticClass: "plv-product-item__buy-button", class: { "plv-product-item__buy-button--disabled": disabled } }, [_vm._v(" " + _vm._s(buttonText) + " ")])];
|
|
4751
|
-
} }]) })], 1)])])]);
|
|
4948
|
+
} }], null, false, 477326030) }) : _vm._e()], 1)])])]);
|
|
4752
4949
|
};
|
|
4753
4950
|
var _sfc_staticRenderFns$2 = [];
|
|
4754
4951
|
var __component__$2 = /* @__PURE__ */ normalizeComponent(
|
|
@@ -4775,79 +4972,6 @@ var __component__$1 = /* @__PURE__ */ normalizeComponent(
|
|
|
4775
4972
|
_sfc_staticRenderFns$1
|
|
4776
4973
|
);
|
|
4777
4974
|
const ProductEmpty = __component__$1.exports;
|
|
4778
|
-
const useProductTrack = (options) => {
|
|
4779
|
-
const { productTarget, ProductType } = options;
|
|
4780
|
-
const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
|
|
4781
|
-
const trackedProductIds = ref({});
|
|
4782
|
-
const productListRef = ref(null);
|
|
4783
|
-
const productItemsRef = shallowRef([]);
|
|
4784
|
-
function setItemRef(el) {
|
|
4785
|
-
if (el) {
|
|
4786
|
-
productItemsRef.value.push(el);
|
|
4787
|
-
}
|
|
4788
|
-
}
|
|
4789
|
-
function trackProductViewEvent(productData) {
|
|
4790
|
-
const specAttrs = {
|
|
4791
|
-
exposureTime: (/* @__PURE__ */ new Date()).getTime(),
|
|
4792
|
-
name: productData.name,
|
|
4793
|
-
realPrice: productData.productType === ProductType.Normal ? productData.realPrice : "",
|
|
4794
|
-
productId: productData.productId,
|
|
4795
|
-
productType: productData.productType,
|
|
4796
|
-
productFeature: JSON.stringify(productData.featureTags)
|
|
4797
|
-
};
|
|
4798
|
-
if (productData.productType === ProductType.Normal && productData.originPrice !== void 0) {
|
|
4799
|
-
specAttrs.price = productData.originPrice;
|
|
4800
|
-
}
|
|
4801
|
-
trackEvent({
|
|
4802
|
-
event_id: "product_list_item_view",
|
|
4803
|
-
event_type: "show",
|
|
4804
|
-
spec_attrs: specAttrs
|
|
4805
|
-
});
|
|
4806
|
-
}
|
|
4807
|
-
function isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom) {
|
|
4808
|
-
const offsetTop = element.offsetTop;
|
|
4809
|
-
const offsetHeight = element.offsetHeight;
|
|
4810
|
-
const elementBottom = offsetTop + offsetHeight;
|
|
4811
|
-
const isFullyAbove = elementBottom <= containerScrollTop;
|
|
4812
|
-
const isBottomBelowViewportBottom = containerViewportBottom < elementBottom;
|
|
4813
|
-
return !isFullyAbove && !isBottomBelowViewportBottom;
|
|
4814
|
-
}
|
|
4815
|
-
function checkAndTrackProductItem(itemInstance, containerScrollTop, containerViewportBottom) {
|
|
4816
|
-
if (!itemInstance || !itemInstance.$el || !itemInstance.product || !itemInstance.product.productId) {
|
|
4817
|
-
return;
|
|
4818
|
-
}
|
|
4819
|
-
const element = itemInstance.$el;
|
|
4820
|
-
const productId = itemInstance.product.productId;
|
|
4821
|
-
const isVisible = isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom);
|
|
4822
|
-
if (isVisible && !trackedProductIds.value[productId]) {
|
|
4823
|
-
trackedProductIds.value = __spreadProps(__spreadValues({}, trackedProductIds.value), { [productId]: true });
|
|
4824
|
-
trackProductViewEvent(itemInstance.product);
|
|
4825
|
-
}
|
|
4826
|
-
}
|
|
4827
|
-
function trackProduct() {
|
|
4828
|
-
return __async(this, null, function* () {
|
|
4829
|
-
yield nextTick();
|
|
4830
|
-
const container = productListRef.value;
|
|
4831
|
-
if (!container || !productItemsRef.value.length) return;
|
|
4832
|
-
const scrollTop = container.scrollTop;
|
|
4833
|
-
const scrollClientHeight = container.clientHeight;
|
|
4834
|
-
const viewportBottom = scrollTop + scrollClientHeight;
|
|
4835
|
-
productItemsRef.value.forEach((itemInstance) => {
|
|
4836
|
-
checkAndTrackProductItem(itemInstance, scrollTop, viewportBottom);
|
|
4837
|
-
});
|
|
4838
|
-
});
|
|
4839
|
-
}
|
|
4840
|
-
function clearTrackedProducts() {
|
|
4841
|
-
trackedProductIds.value = {};
|
|
4842
|
-
productItemsRef.value = [];
|
|
4843
|
-
}
|
|
4844
|
-
return {
|
|
4845
|
-
productListRef,
|
|
4846
|
-
setItemRef,
|
|
4847
|
-
trackProduct,
|
|
4848
|
-
clearTrackedProducts
|
|
4849
|
-
};
|
|
4850
|
-
};
|
|
4851
4975
|
const useTargetEventEmitter = (eventEmitter, listeners) => {
|
|
4852
4976
|
onMounted(() => {
|
|
4853
4977
|
if (!eventEmitter) return;
|
|
@@ -4870,7 +4994,7 @@ const useProductList = (options) => {
|
|
|
4870
4994
|
const { props } = options;
|
|
4871
4995
|
const { getEmitter } = useGlobalInject();
|
|
4872
4996
|
const { ProductStatus, ProductType, ProductEvents } = getProductTargetExport(props.productTarget);
|
|
4873
|
-
const { productListRef, setItemRef, trackProduct } = useProductTrack({ productTarget: props.productTarget
|
|
4997
|
+
const { productListRef, setItemRef, trackProduct } = useProductTrack({ productTarget: props.productTarget });
|
|
4874
4998
|
const { isSupportPay, getPayProviders } = usePayment({ props });
|
|
4875
4999
|
const pageNumber = ref(1);
|
|
4876
5000
|
const pageSize = ref(10);
|
|
@@ -4981,18 +5105,6 @@ const useProductList = (options) => {
|
|
|
4981
5105
|
}
|
|
4982
5106
|
});
|
|
4983
5107
|
}
|
|
4984
|
-
function handleClickExplain(product) {
|
|
4985
|
-
return __async(this, null, function* () {
|
|
4986
|
-
if (typeof props.productConfig.customClickExplainHandler === "function") {
|
|
4987
|
-
props.productConfig.customClickExplainHandler(product);
|
|
4988
|
-
return;
|
|
4989
|
-
}
|
|
4990
|
-
const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
|
|
4991
|
-
if (url) {
|
|
4992
|
-
window.open(url, "_blank");
|
|
4993
|
-
}
|
|
4994
|
-
});
|
|
4995
|
-
}
|
|
4996
5108
|
function getProductOrderEnabled() {
|
|
4997
5109
|
return __async(this, null, function* () {
|
|
4998
5110
|
if (!props.productTarget) return;
|
|
@@ -5038,10 +5150,24 @@ const useProductList = (options) => {
|
|
|
5038
5150
|
const productTarget = props.productTarget;
|
|
5039
5151
|
if (!productTarget) return;
|
|
5040
5152
|
const ProductEvents2 = productTarget.ProductEvents;
|
|
5153
|
+
productTarget.eventEmitter.on(ProductEvents2.OnSaleProduct, refreshProductList);
|
|
5154
|
+
productTarget.eventEmitter.on(ProductEvents2.OffSaleProduct, refreshProductList);
|
|
5155
|
+
productTarget.eventEmitter.on(ProductEvents2.DeleteProduct, refreshProductList);
|
|
5156
|
+
productTarget.eventEmitter.on(ProductEvents2.AddProduct, refreshProductList);
|
|
5157
|
+
productTarget.eventEmitter.on(ProductEvents2.ChangeProduct, refreshProductList);
|
|
5158
|
+
productTarget.eventEmitter.on(ProductEvents2.MoveProduct, refreshProductList);
|
|
5159
|
+
productTarget.eventEmitter.on(ProductEvents2.ChangeProductRank, refreshProductList);
|
|
5041
5160
|
productTarget.eventEmitter.on(ProductEvents2.RefreshProductList, refreshProductList);
|
|
5042
5161
|
}
|
|
5043
5162
|
function unbindProductEvent() {
|
|
5044
5163
|
const ProductEvents2 = props.productTarget.ProductEvents;
|
|
5164
|
+
props.productTarget.eventEmitter.off(ProductEvents2.OnSaleProduct, refreshProductList);
|
|
5165
|
+
props.productTarget.eventEmitter.off(ProductEvents2.OffSaleProduct, refreshProductList);
|
|
5166
|
+
props.productTarget.eventEmitter.off(ProductEvents2.DeleteProduct, refreshProductList);
|
|
5167
|
+
props.productTarget.eventEmitter.off(ProductEvents2.AddProduct, refreshProductList);
|
|
5168
|
+
props.productTarget.eventEmitter.off(ProductEvents2.ChangeProduct, refreshProductList);
|
|
5169
|
+
props.productTarget.eventEmitter.off(ProductEvents2.MoveProduct, refreshProductList);
|
|
5170
|
+
props.productTarget.eventEmitter.off(ProductEvents2.ChangeProductRank, refreshProductList);
|
|
5045
5171
|
props.productTarget.eventEmitter.off(ProductEvents2.RefreshProductList, refreshProductList);
|
|
5046
5172
|
}
|
|
5047
5173
|
function init() {
|
|
@@ -5116,7 +5242,6 @@ const useProductList = (options) => {
|
|
|
5116
5242
|
productList: productList2,
|
|
5117
5243
|
toppingProduct,
|
|
5118
5244
|
onScroll,
|
|
5119
|
-
handleClickExplain,
|
|
5120
5245
|
openOrderList
|
|
5121
5246
|
};
|
|
5122
5247
|
};
|
|
@@ -5152,11 +5277,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
5152
5277
|
productTotal,
|
|
5153
5278
|
orderEntranceVisible,
|
|
5154
5279
|
onScroll,
|
|
5155
|
-
handleClickExplain,
|
|
5156
5280
|
openOrderList
|
|
5157
5281
|
} = useProductList({ props });
|
|
5158
5282
|
expose(instance);
|
|
5159
|
-
return { __sfc: true, props, $t, closeProductListPopup, emitNotSupportDirectBuy, handleDirectBuy, getPayProviders, instance, productListRef, productTagPanelRef, setItemRef, initialLoading, searchKeyword, activeTagId, isSearchMode, isLoading, productList: productList2, productTotal, orderEntranceVisible, onScroll,
|
|
5283
|
+
return { __sfc: true, props, $t, closeProductListPopup, emitNotSupportDirectBuy, handleDirectBuy, getPayProviders, instance, productListRef, productTagPanelRef, setItemRef, initialLoading, searchKeyword, activeTagId, isSearchMode, isLoading, productList: productList2, productTotal, orderEntranceVisible, onScroll, openOrderList, FormInput, FormTheme, Loading, ProductIconClose, ProductIconOrderEnter, ProductIconSearch, ProductIconProduct, ProductTagPanel, isMobile, ProductItem, ProductEmpty };
|
|
5160
5284
|
}
|
|
5161
5285
|
});
|
|
5162
5286
|
var _sfc_render = function render11() {
|
|
@@ -5166,7 +5290,7 @@ var _sfc_render = function render11() {
|
|
|
5166
5290
|
}, expression: "searchKeyword" } }, [_c(_setup.ProductIconSearch, { staticClass: "plv-product-list__header-search-icon", attrs: { "slot": "prefix" }, slot: "prefix" })], 1), _setup.orderEntranceVisible ? _c("div", { staticClass: "plv-product-list__header-right", on: { "click": _setup.openOrderList } }, [_c(_setup.ProductIconOrderEnter, { staticClass: "plv-product-list__header-right-icon" }), _c("div", { staticClass: "plv-product-list__header-right-text" }, [_vm._v(" " + _vm._s(_setup.$t("product.order")) + " ")])], 1) : _vm._e(), !_setup.isMobile ? _c(_setup.ProductIconClose, { staticClass: "plv-product-list-popup__icon-close", on: { "click": _setup.closeProductListPopup } }) : _vm._e()], 1), !_setup.isSearchMode ? [_c(_setup.ProductTagPanel, { ref: "productTagPanelRef", attrs: { "product-target": _vm.productTarget }, model: { value: _setup.activeTagId, callback: function($$v) {
|
|
5167
5291
|
_setup.activeTagId = $$v;
|
|
5168
5292
|
}, expression: "activeTagId" } }), _c("div", { staticClass: "plv-product-list__product-total" }, [_c(_setup.ProductIconProduct, { staticClass: "plv-product-list__product-total-icon" }), _c("div", { staticClass: "plv-product-list__product-total-text" }, [_vm._v(" " + _vm._s(_setup.$t("product.num")) + ": ")]), _c("div", { staticClass: "plv-product-list__product-total-num" }, [_vm._v(" " + _vm._s(_setup.productTotal) + " ")])], 1)] : _vm._e()], 2), !_setup.initialLoading ? [_setup.productList.length ? _c("div", { staticClass: "plv-product-list__wrapper" }, _vm._l(_setup.productList, function(product, index) {
|
|
5169
|
-
return _c(_setup.ProductItem, { key: index, ref: _setup.setItemRef, refInFor: true, attrs: { "product": product, "product-target": _vm.productTarget, "product-config": _vm.productConfig }, on: { "
|
|
5293
|
+
return _c(_setup.ProductItem, { key: index, ref: _setup.setItemRef, refInFor: true, attrs: { "product": product, "product-target": _vm.productTarget, "product-config": _vm.productConfig }, on: { "direct-buy": _setup.handleDirectBuy } });
|
|
5170
5294
|
}), 1) : _c(_setup.ProductEmpty)] : _vm._e(), _setup.isLoading ? _c("div", { staticClass: "plv-product-list__loading" }, [_c(_setup.Loading)], 1) : _vm._e()], 2);
|
|
5171
5295
|
};
|
|
5172
5296
|
var _sfc_staticRenderFns = [];
|
|
@@ -5181,8 +5305,8 @@ console.log(
|
|
|
5181
5305
|
"%c@polyv/product-ui",
|
|
5182
5306
|
"background:#409EFF;padding: 2px 6px;border-radius: 3px;color: #fff",
|
|
5183
5307
|
"[component: product-list]",
|
|
5184
|
-
"[version: 1.
|
|
5185
|
-
"[buildTime: 2025-
|
|
5308
|
+
"[version: 1.1.0-rc-20250703.1]",
|
|
5309
|
+
"[buildTime: 2025-07-03 01:48:08]"
|
|
5186
5310
|
);
|
|
5187
5311
|
export {
|
|
5188
5312
|
productList as default
|