@polyv/product-ui 1.0.0-rc-20250612.4 → 1.2.0-rc-20250724.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/address-edit.cjs.js +7 -3
  2. package/address-edit.es.js +1194 -1143
  3. package/address-edit.umd.js +7 -3
  4. package/address-item.cjs.js +2 -2
  5. package/address-item.es.js +12 -12
  6. package/address-item.umd.js +4 -3
  7. package/address-list.cjs.js +3 -3
  8. package/address-list.es.js +36 -18
  9. package/address-list.umd.js +3 -3
  10. package/big-card-popup.cjs.js +11 -0
  11. package/big-card-popup.es.d.ts +3 -0
  12. package/big-card-popup.es.js +4439 -0
  13. package/big-card-popup.umd.js +11 -0
  14. package/index.cjs.js +7 -3
  15. package/index.es.js +2644 -1847
  16. package/index.umd.js +7 -3
  17. package/mobile-product-pendant.cjs.js +3 -3
  18. package/mobile-product-pendant.es.js +46 -36
  19. package/mobile-product-pendant.umd.js +3 -3
  20. package/order-confirm.cjs.js +5 -3
  21. package/order-confirm.es.js +311 -293
  22. package/order-confirm.umd.js +5 -3
  23. package/order-detail.cjs.js +5 -3
  24. package/order-detail.es.js +311 -293
  25. package/order-detail.umd.js +5 -3
  26. package/order-item.cjs.js +2 -2
  27. package/order-item.es.js +27 -9
  28. package/order-item.umd.js +4 -3
  29. package/order-list-popup.cjs.js +5 -3
  30. package/order-list-popup.es.js +329 -297
  31. package/order-list-popup.umd.js +5 -3
  32. package/order-list.cjs.js +3 -3
  33. package/order-list.es.js +27 -9
  34. package/order-list.umd.js +3 -3
  35. package/order-popup.cjs.js +7 -3
  36. package/order-popup.es.js +1215 -1156
  37. package/order-popup.umd.js +7 -3
  38. package/package.json +3 -2
  39. package/pc-product-pendant.cjs.js +3 -3
  40. package/pc-product-pendant.es.js +27 -9
  41. package/pc-product-pendant.umd.js +3 -3
  42. package/product-button.cjs.js +3 -3
  43. package/product-button.es.js +318 -267
  44. package/product-button.umd.js +3 -3
  45. package/product-detail-popup.cjs.js +5 -3
  46. package/product-detail-popup.es.js +560 -473
  47. package/product-detail-popup.umd.js +5 -3
  48. package/product-detail.cjs.js +5 -3
  49. package/product-detail.es.js +632 -553
  50. package/product-detail.umd.js +5 -3
  51. package/product-iframe-link-popup.cjs.js +5 -3
  52. package/product-iframe-link-popup.es.js +296 -282
  53. package/product-iframe-link-popup.umd.js +5 -3
  54. package/product-item.cjs.js +5 -3
  55. package/product-item.es.js +720 -494
  56. package/product-item.umd.js +5 -3
  57. package/product-list-popup.cjs.js +5 -3
  58. package/product-list-popup.es.js +753 -585
  59. package/product-list-popup.umd.js +5 -3
  60. package/product-list.cjs.js +5 -3
  61. package/product-list.es.js +744 -584
  62. package/product-list.umd.js +5 -3
  63. package/small-card.cjs.js +10 -0
  64. package/small-card.es.d.ts +3 -0
  65. package/small-card.es.js +4496 -0
  66. package/small-card.umd.js +11 -0
@@ -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;-webkit-tap-highlight-color:transparent;-webkit-focus-ring-color:transparent;tap-highlight-color:transparent;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--explained-cover{z-index:12}.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;flex-wrap:wrap;gap:2px;align-items:baseline}.plv-product-c-item__price{color:#ff5252;font-size:18px;line-height:18px;word-break:break-all}.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{color:#0006;font-size:12px;line-height:14px;text-decoration:line-through;word-break:break-all}.plv-product-c-item__price-finance{color:#ff5252;font-size:14px}.plv-product-button,.plv-product-button__render{position:relative}.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:56px;height:36px!important;padding:0 16px;border-radius:4px;border:1px solid #e5e5e5;-webkit-transition:border-color .35s ease-in-out;transition:border-color .35s ease-in-out;position:relative;margin-right:16px;margin-bottom:8px;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 .plv-radio__label{padding-left:0;font-size:12px;float:none;-webkit-transition:color .35s ease-in-out;transition:color .35s ease-in-out}.plv-radio--border:hover{border-color:#3f76fc;-webkit-transition:border-color .35s ease-in-out;transition:border-color .35s ease-in-out}.plv-radio--border:hover .plv-radio__label{-webkit-transition:color .35s ease-in-out;transition:color .35s ease-in-out;color:#3f76fc}.plv-radio--border.plv-radio--checked{border-width:1px;border-color:#3f76fc;background:#3f76fc1a}.plv-radio--border.plv-radio--checked:hover{border-color:#3f76fc}.plv-radio--border.plv-radio--checked .plv-radio__label{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{opacity:.6}.plv-radio--border.plv-radio--disabled:hover{border-color:#e5e5e5}.plv-radio--border.plv-radio--disabled:hover .plv-radio__label{color:#969ba5}.plv-radio--border.plv-radio--disabled.plv-radio--checked:hover{border-color:#3f76fc}.plv-radio--border.plv-radio--disabled.plv-radio--checked:hover .plv-radio__label{color:#3f76fc}.plv-radio--border.plv-radio--readonly{border-color:#e5e5e5;pointer-events:none}.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;min-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-shrink:0;width:100px;height:100px;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;gap:4px;justify-content:space-between;align-items:flex-end;margin-top:auto}.plv-product-item__position-detail-button{position:relative;z-index:12;box-sizing:border-box;width:64px;max-width:64px;height:24px;margin-right:12px;margin-left:auto;padding:0 4px;border:1px solid rgba(0,0,0,.2);border-radius:456px;background:transparent;color:#0009;font-size:12px;line-height:23px;text-align:center;cursor:pointer;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plv-product-item__explained--no-cover{margin-right:12px;margin-left:auto}.plv-product-item__explained--no-cover-position{margin-left:0}.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, watchEffect, shallowRef } from "vue";
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": "取消",
@@ -2212,11 +2213,14 @@ const zhCNLang = {
2212
2213
  "product.disableBuy": "暂不支持购买",
2213
2214
  "product.allProduct": "全部商品",
2214
2215
  "product.stock.soldOut": "已抢光",
2216
+ "product.position.detail": "职位详情",
2215
2217
  order: order$5,
2216
- addressEdit: addressEdit$5
2218
+ addressEdit: addressEdit$5,
2219
+ bigCard: bigCard$5
2217
2220
  };
2218
2221
  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
2222
  const addressEdit$4 = { "name": "聯絡人", "namePlaceholder": "請填寫聯絡人", "choiceAddress": "選擇地區", "addressPlaceholder": "請選擇地區", "phone": "手機號碼", "phonePlaceholder": "請填寫手機號碼", "phoneError": "請輸入正確的手機號", "addressDetail": "詳細地址", "addressDetailPlaceholder": "請填寫詳細地址", "error": "請完善信息", "submit": "保存", "deleteConfirm": "確定要刪除該地址嗎?", "deleteAddress": "刪除地址", "addAddress": "添加地址", "editAddress": "修改地址", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "修改成功", "editError": "修改失敗" };
2223
+ const bigCard$4 = { "title": "商品推薦" };
2220
2224
  const zhTWLang = {
2221
2225
  "common.confirm": "確認",
2222
2226
  "common.cancel": "取消",
@@ -2243,11 +2247,14 @@ const zhTWLang = {
2243
2247
  "product.disableBuy": "暫不支持購買",
2244
2248
  "product.allProduct": "全部商品",
2245
2249
  "product.stock.soldOut": "已搶光",
2250
+ "product.position.detail": "職位詳情",
2246
2251
  order: order$4,
2247
- addressEdit: addressEdit$4
2252
+ addressEdit: addressEdit$4,
2253
+ bigCard: bigCard$4
2248
2254
  };
2249
2255
  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
2256
  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" };
2257
+ const bigCard$3 = { "title": "Top Picks" };
2251
2258
  const enLang = {
2252
2259
  "common.confirm": "Confirm",
2253
2260
  "common.cancel": "Cancel",
@@ -2274,11 +2281,14 @@ const enLang = {
2274
2281
  "product.disableBuy": "Purchase not supported",
2275
2282
  "product.allProduct": "Products",
2276
2283
  "product.stock.soldOut": "Sold Out",
2284
+ "product.position.detail": "Job Details",
2277
2285
  order: order$3,
2278
- addressEdit: addressEdit$3
2286
+ addressEdit: addressEdit$3,
2287
+ bigCard: bigCard$3
2279
2288
  };
2280
2289
  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
2290
  const addressEdit$2 = { "name": "連絡先", "namePlaceholder": "連絡先を入力", "choiceAddress": "地域を選択", "addressPlaceholder": "地域を選択", "phone": "電話番号", "phonePlaceholder": "電話番号を入力", "phoneError": "正しい電話番号を入力してください", "addressDetail": "詳細住所", "addressDetailPlaceholder": "詳細住所を入力", "error": "情報を入力してください", "submit": "保存", "deleteConfirm": "この住所を削除しますか?", "deleteAddress": "住所を削除", "addAddress": "住所を追加", "editAddress": "住所を編集", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "編集成功", "editError": "編集失敗" };
2291
+ const bigCard$2 = { "title": "商品推薦" };
2282
2292
  const jaLang = {
2283
2293
  "common.confirm": "確認",
2284
2294
  "common.cancel": "キャンセル",
@@ -2305,11 +2315,14 @@ const jaLang = {
2305
2315
  "product.disableBuy": "購入不可",
2306
2316
  "product.allProduct": "すべての商品",
2307
2317
  "product.stock.soldOut": "売り切れ",
2318
+ "product.position.detail": "職務詳細",
2308
2319
  order: order$2,
2309
- addressEdit: addressEdit$2
2320
+ addressEdit: addressEdit$2,
2321
+ bigCard: bigCard$2
2310
2322
  };
2311
2323
  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
2324
  const addressEdit$1 = { "name": "연락처", "namePlaceholder": "연락처 입력", "choiceAddress": "지역 선택", "addressPlaceholder": "지역 선택", "phone": "전화번호", "phonePlaceholder": "전화번호 입력", "phoneError": "올바른 전화번호를 입력해주세요", "addressDetail": "상세 주소", "addressDetailPlaceholder": "상세 주소 입력", "error": "정보를 입력해주세요.", "submit": "저장", "deleteConfirm": "주소를 삭제하시겠습니까?", "deleteAddress": "주소 삭제", "addAddress": "주소 추가", "editAddress": "주소 수정", "addSuccess": "저장 성공", "addError": "저장 실패", "editSuccess": "수정 성공", "editError": "수정 실패" };
2325
+ const bigCard$1 = { "title": "상품 추천" };
2313
2326
  const koLang = {
2314
2327
  "common.confirm": "확인",
2315
2328
  "common.cancel": "취소",
@@ -2336,11 +2349,14 @@ const koLang = {
2336
2349
  "product.disableBuy": "구매 불가",
2337
2350
  "product.allProduct": "모든 상품",
2338
2351
  "product.stock.soldOut": "품절",
2352
+ "product.position.detail": "직무 상세",
2339
2353
  order: order$1,
2340
- addressEdit: addressEdit$1
2354
+ addressEdit: addressEdit$1,
2355
+ bigCard: bigCard$1
2341
2356
  };
2342
2357
  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
2358
  const addressEdit = { "name": "Контактное лицо", "namePlaceholder": "Пожалуйста, введите имя контактного лица", "choiceAddress": "Выберите регион", "addressPlaceholder": "Пожалуйста, выберите регион", "phone": "Номер телефона", "phonePlaceholder": "Пожалуйста, введите номер телефона", "phoneError": "Пожалуйста, введите правильный номер телефона", "addressDetail": "Подробный адрес", "addressDetailPlaceholder": "Пожалуйста, заполните подробный адрес", "error": "Пожалуйста, дополните информацию", "submit": "Сохранить", "deleteConfirm": "Вы уверены, что хотите удалить этот адрес?", "addAddress": "Добавить адрес", "editAddress": "Изменить адрес", "deleteAddress": "Удалить адрес", "addSuccess": "Успешно сохранено", "addError": "Не удалось сохранить", "editSuccess": "Успешно изменено", "editError": "Не удалось изменить" };
2359
+ const bigCard = { "title": "Товары" };
2344
2360
  const ruLang = {
2345
2361
  "common.confirm": "Подтвердить",
2346
2362
  "common.cancel": "Отмена",
@@ -2367,8 +2383,10 @@ const ruLang = {
2367
2383
  "product.disableBuy": "Покупка временно недоступна",
2368
2384
  "product.allProduct": "Все товары",
2369
2385
  "product.stock.soldOut": "Распродано",
2386
+ "product.position.detail": "Детали вакансии",
2370
2387
  order,
2371
- addressEdit
2388
+ addressEdit,
2389
+ bigCard
2372
2390
  };
2373
2391
  const fullI18nData = {
2374
2392
  [LangType.ZH_CN]: zhCNLang,
@@ -2774,7 +2792,8 @@ function getProductTargetExport(productTarget) {
2774
2792
  ProductExplainStatus: productTarget.ProductExplainStatus,
2775
2793
  ProductMediaType: productTarget.ProductMediaType,
2776
2794
  ProductDeliveryType: productTarget.ProductDeliveryType,
2777
- ProductEvents: productTarget.ProductEvents
2795
+ ProductEvents: productTarget.ProductEvents,
2796
+ ProductPushRule: productTarget.ProductPushRule
2778
2797
  };
2779
2798
  }
2780
2799
  const PRODUCT_PROVIDE_KEY = Symbol("PRODUCT_PROVIDE_KEY");
@@ -2839,17 +2858,25 @@ const useProductStock = (options) => {
2839
2858
  ProductBuyType = result.ProductBuyType;
2840
2859
  }
2841
2860
  function getStock(target) {
2842
- if (!ProductType || !ProductBuyType) {
2861
+ if (!ProductType || !ProductBuyType || !target) {
2843
2862
  return {
2844
2863
  enabled: false,
2845
2864
  stock: 0
2846
2865
  };
2847
2866
  }
2848
- if ((target == null ? void 0 : target.productType) === ProductType.Normal && target.buyType === ProductBuyType.DirectBuy && (target == null ? void 0 : target.stockEnabled)) {
2849
- return {
2850
- enabled: true,
2851
- stock: target.stock
2852
- };
2867
+ if (target.productType === ProductType.Normal) {
2868
+ if (target.buyType === ProductBuyType.Link && target.forceShowSoldOut) {
2869
+ return {
2870
+ enabled: true,
2871
+ stock: 0
2872
+ };
2873
+ }
2874
+ if (target.buyType === ProductBuyType.DirectBuy && (target == null ? void 0 : target.stockEnabled)) {
2875
+ return {
2876
+ enabled: true,
2877
+ stock: target.stock
2878
+ };
2879
+ }
2853
2880
  }
2854
2881
  return {
2855
2882
  enabled: false,
@@ -2873,6 +2900,37 @@ const useProductStock = (options) => {
2873
2900
  isSoldOut
2874
2901
  };
2875
2902
  };
2903
+ const useProductExplain = (options) => {
2904
+ const { props } = options;
2905
+ const productExplainEnabled = ref(false);
2906
+ function getProductExplainEnabled() {
2907
+ return __async(this, null, function* () {
2908
+ if (!props.productTarget) return;
2909
+ const enabled = yield props.productTarget.getProductExplainEnabled();
2910
+ productExplainEnabled.value = enabled;
2911
+ });
2912
+ }
2913
+ function handleClickExplain(product) {
2914
+ return __async(this, null, function* () {
2915
+ if (typeof props.productConfig.customClickExplainHandler === "function") {
2916
+ props.productConfig.customClickExplainHandler(product);
2917
+ return;
2918
+ }
2919
+ if (!props.productTarget) return;
2920
+ const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
2921
+ if (url) {
2922
+ window.open(url, "_blank");
2923
+ }
2924
+ });
2925
+ }
2926
+ onMounted(() => {
2927
+ getProductExplainEnabled();
2928
+ });
2929
+ return {
2930
+ productExplainEnabled,
2931
+ handleClickExplain
2932
+ };
2933
+ };
2876
2934
  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
2935
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2878
2936
  __name: "product-explain",
@@ -3039,12 +3097,22 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3039
3097
  if (isFreeProduct.value) return $t("product.price.free");
3040
3098
  return props.product.realPrice;
3041
3099
  });
3042
- return { __sfc: true, props, $t, ProductType, ProductPriceType, isFreeProduct, hiddenPriceMarks, displayPrice };
3100
+ const originPrice = computed(() => {
3101
+ if (!props.product || props.product.productType !== ProductType.Normal) return;
3102
+ if (props.product.originPriceType === ProductPriceType.Amount) {
3103
+ if (!props.product.originPrice) {
3104
+ return;
3105
+ }
3106
+ return `¥${props.product.originPrice}`;
3107
+ }
3108
+ return props.product.customOriginalPrice;
3109
+ });
3110
+ return { __sfc: true, props, $t, ProductType, ProductPriceType, isFreeProduct, hiddenPriceMarks, displayPrice, originPrice };
3043
3111
  }
3044
3112
  });
3045
3113
  var _sfc_render$4 = function render7() {
3046
3114
  var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
3047
- return _vm.product ? _c("div", { staticClass: "plv-product-c-item__price-area" }, [_vm.product.productType === _setup.ProductType.Normal ? [_c("span", { staticClass: "plv-product-c-item__price" }, [!_setup.isFreeProduct && _vm.product.priceType === _setup.ProductPriceType.Amount ? _c("span", { staticClass: "plv-product-c-item__price-symbol" }, [_vm._v("¥")]) : _vm._e(), _vm.product.priceVisible || _setup.isFreeProduct ? _c("span", [_vm.product.priceType === _setup.ProductPriceType.Custom ? _c("span", { staticClass: "plv-product-c-item__price-custom" }, [_vm._v(_vm._s(_vm.product.customPrice))]) : _c("span", { staticClass: "plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.displayPrice))])]) : [_c("span", { staticClass: "plv-product-c-item__price-placeholder plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.hiddenPriceMarks))]), _c("span", { staticClass: "plv-product-c-item__placeholder-text plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.$t("product.price.hidden")))])]], 2), _vm.product.originPrice ? _c("span", { staticClass: "plv-product-c-item__original-price" }, [_vm._v("¥" + _vm._s(_vm.product.originPrice))]) : _vm._e()] : _vm._e(), _vm.product.productType === _setup.ProductType.Finance ? [_c("div", { staticClass: "plv-product-c-item__price-finance" }, [_vm._v(" " + _vm._s(_vm.product.yield) + " ")])] : _vm._e(), _vm.product.productType === _setup.ProductType.Position ? [_c("div", { staticClass: "plv-product-c-item__price-finance" }, [_vm._v(" " + _vm._s(_vm.product.treatment) + " ")])] : _vm._e()], 2) : _vm._e();
3115
+ return _vm.product ? _c("div", { staticClass: "plv-product-c-item__price-area" }, [_vm.product.productType === _setup.ProductType.Normal ? [_c("span", { staticClass: "plv-product-c-item__price" }, [!_setup.isFreeProduct && _vm.product.priceType === _setup.ProductPriceType.Amount ? _c("span", { staticClass: "plv-product-c-item__price-symbol" }, [_vm._v("¥")]) : _vm._e(), _vm.product.priceVisible || _setup.isFreeProduct ? _c("span", [_vm.product.priceType === _setup.ProductPriceType.Custom ? _c("span", { staticClass: "plv-product-c-item__price-custom" }, [_vm._v(_vm._s(_vm.product.customPrice))]) : _c("span", { staticClass: "plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.displayPrice))])]) : [_c("span", { staticClass: "plv-product-c-item__price-placeholder plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.hiddenPriceMarks))]), _c("span", { staticClass: "plv-product-c-item__placeholder-text plv-font-din-pro-regular" }, [_vm._v(_vm._s(_setup.$t("product.price.hidden")))])]], 2), _setup.originPrice ? _c("span", { staticClass: "plv-product-c-item__original-price" }, [_vm._v(_vm._s(_setup.originPrice))]) : _vm._e()] : _vm._e(), _vm.product.productType === _setup.ProductType.Finance ? [_c("div", { staticClass: "plv-product-c-item__price-finance" }, [_vm._v(" " + _vm._s(_vm.product.yield) + " ")])] : _vm._e(), _vm.product.productType === _setup.ProductType.Position ? [_c("div", { staticClass: "plv-product-c-item__price-finance" }, [_vm._v(" " + _vm._s(_vm.product.treatment) + " ")])] : _vm._e()], 2) : _vm._e();
3048
3116
  };
3049
3117
  var _sfc_staticRenderFns$4 = [];
3050
3118
  var __component__$4 = /* @__PURE__ */ normalizeComponent(
@@ -3101,6 +3169,104 @@ function concat(i2, r2, t2) {
3101
3169
  let e = n2.search || "";
3102
3170
  return e && "&" !== e.slice(-1) && (e += "&"), e += r2, n2.search = e, joinURL(n2);
3103
3171
  }
3172
+ var __awaiter = function(i2, n2, o2, t2) {
3173
+ return new (o2 || (o2 = Promise))(function(e, a2) {
3174
+ function r2(i3) {
3175
+ try {
3176
+ k2(t2.next(i3));
3177
+ } catch (i4) {
3178
+ a2(i4);
3179
+ }
3180
+ }
3181
+ function l2(i3) {
3182
+ try {
3183
+ k2(t2.throw(i3));
3184
+ } catch (i4) {
3185
+ a2(i4);
3186
+ }
3187
+ }
3188
+ function k2(i3) {
3189
+ var n3;
3190
+ i3.done ? e(i3.value) : (n3 = i3.value, n3 instanceof o2 ? n3 : new o2(function(i4) {
3191
+ i4(n3);
3192
+ })).then(r2, l2);
3193
+ }
3194
+ k2((t2 = t2.apply(i2, n2 || [])).next());
3195
+ });
3196
+ };
3197
+ const uaInfo = getCurrentUAInfo();
3198
+ const isAndroid = uaInfo.os.isAndroid;
3199
+ const isIOS = uaInfo.os.isIOS;
3200
+ var LinkType;
3201
+ !function(i2) {
3202
+ i2[i2.Normal = 10] = "Normal", i2[i2.MultiPlatform = 11] = "MultiPlatform", i2[i2.Native = 12] = "Native";
3203
+ }(LinkType || (LinkType = {}));
3204
+ var LinkJumpWay;
3205
+ function getNativeToPointMallFn() {
3206
+ var i2, n2, o2, t2;
3207
+ 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;
3208
+ }
3209
+ function toNativeLink(i2) {
3210
+ const { androidLink: n2, iosLink: o2, otherLink: t2 } = i2, e = getNativeToPointMallFn();
3211
+ if (e) {
3212
+ let i3 = isAndroid ? n2 : o2;
3213
+ const t3 = encodeURIComponent(location.href);
3214
+ i3 = concat(i3, { plt_back_uri: t3 });
3215
+ e(JSON.stringify({ url: i3 }));
3216
+ } else window.open(t2, "_blank", "noopener=yes");
3217
+ }
3218
+ function toPlvWebviewBridge(i2) {
3219
+ return __awaiter(this, void 0, void 0, function* () {
3220
+ const { getPlvWebviewSmallWindowSize: n2, getPlvWebviewBridge: o2 } = i2, t2 = (null == n2 ? void 0 : n2()) || { width: 90, height: 160 }, e = yield null == o2 ? void 0 : o2();
3221
+ e && e.sendData("clickProduct", { width: t2.width, height: t2.height, newPage: true, link: i2.link, data: i2.data });
3222
+ });
3223
+ }
3224
+ function toMultiPlatformLink(i2) {
3225
+ return __awaiter(this, void 0, void 0, function* () {
3226
+ 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;
3227
+ let u2 = false;
3228
+ try {
3229
+ u2 = (yield null == o2 ? void 0 : o2()) || false;
3230
+ } catch (i3) {
3231
+ u2 = false;
3232
+ }
3233
+ u2 && l2 && t2 ? t2(formatLink(l2, a2)) : s2 && k2 ? e(formatLink(k2, a2), LinkJumpWay.NewWindow) : !s2 && d2 && e(formatLink(d2, a2), LinkJumpWay.NewWindow);
3234
+ });
3235
+ }
3236
+ !function(i2) {
3237
+ i2.PopUp = "POP_UP", i2.NewWindow = "NEW_WINDOW", i2.CurrentWindow = "CURRENT_WINDOW";
3238
+ }(LinkJumpWay || (LinkJumpWay = {}));
3239
+ function formatLink(i2, n2) {
3240
+ let o2 = {};
3241
+ if (n2) {
3242
+ const t2 = n2(i2);
3243
+ o2 = Object.assign({}, o2, t2);
3244
+ }
3245
+ return concat(i2, o2);
3246
+ }
3247
+ function navigateToLink(i2) {
3248
+ 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;
3249
+ if (s2 !== LinkType.Native) {
3250
+ if (u2) {
3251
+ let i3 = "";
3252
+ const { link: o3, mobileLink: t3, mobileAppLink: r3, wxMiniprogramOriginalId: l3, wxMiniprogramLink: d3 } = n2;
3253
+ switch (s2) {
3254
+ case LinkType.Normal:
3255
+ i3 = o3;
3256
+ break;
3257
+ case LinkType.MultiPlatform:
3258
+ i3 = r3 || t3;
3259
+ }
3260
+ let u3 = null;
3261
+ 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 });
3262
+ }
3263
+ if (s2 !== LinkType.Normal) s2 === LinkType.MultiPlatform && toMultiPlatformLink({ linkData: n2, getLinkParams: k2, isWxMiniProgramEnv: r2, toWxMiniProgram: l2, openLink: o2, isMobile: d2 });
3264
+ else {
3265
+ const { link: i3, jumpWay: t3 } = n2;
3266
+ o2(formatLink(i3, k2), t3);
3267
+ }
3268
+ } else toNativeLink({ androidLink: formatLink(n2.androidLink, k2), iosLink: formatLink(n2.iosLink, k2), otherLink: formatLink(n2.otherLink, k2) });
3269
+ }
3104
3270
  const useTrackEvent = (iarCore) => {
3105
3271
  const { injectData } = useGlobalInject();
3106
3272
  function trackEvent(data) {
@@ -3114,7 +3280,7 @@ const useTrackEvent = (iarCore) => {
3114
3280
  trackEvent
3115
3281
  };
3116
3282
  };
3117
- const htmlChars = ['"', "'", "&", "<", ">"], htmlEntities = ["&quot;", "&#39;", "&amp;", "&lt;", "&gt;"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
3283
+ const htmlChars = ['"', "'", "&", "<", ">", " "], htmlEntities = ["&quot;", "&#39;", "&amp;", "&lt;", "&gt;", "&nbsp;"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
3118
3284
  htmlChars.forEach((n2, e) => {
3119
3285
  charsToEntities[n2] = htmlEntities[e], entitiesToChars[htmlEntities[e]] = n2;
3120
3286
  });
@@ -3169,7 +3335,7 @@ const useWeixinButton = (hookOptions = {}) => {
3169
3335
  }
3170
3336
  const wx = yield injectData.getWeixinSdk();
3171
3337
  (_a = wx == null ? void 0 : wx.miniProgram) == null ? void 0 : _a.navigateTo({
3172
- url
3338
+ url: url.startsWith("/") ? url : `/${url}`
3173
3339
  });
3174
3340
  return;
3175
3341
  });
@@ -3224,7 +3390,9 @@ const useWeixinButton = (hookOptions = {}) => {
3224
3390
  watch(
3225
3391
  () => [weixinBtnRef.value, supportWxOpenLaunchWeapp.value, buttonOptions.value],
3226
3392
  () => {
3227
- createWxMiniProgramButton();
3393
+ setTimeout(() => {
3394
+ createWxMiniProgramButton();
3395
+ }, 500);
3228
3396
  },
3229
3397
  {
3230
3398
  immediate: true
@@ -3241,25 +3409,25 @@ const useWeixinButton = (hookOptions = {}) => {
3241
3409
  };
3242
3410
  };
3243
3411
  const useAppNative = () => {
3244
- function getNativeToPointMallFn() {
3412
+ function getNativeToPointMallFn2() {
3245
3413
  var _a, _b, _c, _d;
3246
- if (isAndroid) {
3414
+ if (isAndroid$1) {
3247
3415
  return (_a = window.AndroidNative) == null ? void 0 : _a.toPointMall;
3248
- } else if (isIOS) {
3416
+ } else if (isIOS$1) {
3249
3417
  return (_d = (_c = (_b = window.webkit) == null ? void 0 : _b.messageHandlers) == null ? void 0 : _c.gotoPointsMall) == null ? void 0 : _d.postMessage;
3250
3418
  }
3251
3419
  }
3252
3420
  function supportNativeToPointMall() {
3253
- return !!getNativeToPointMallFn();
3421
+ return !!getNativeToPointMallFn2();
3254
3422
  }
3255
3423
  const supportAppNative = computed(() => {
3256
3424
  return supportNativeToPointMall();
3257
3425
  });
3258
- function toNativeLink(options) {
3426
+ function toNativeLink2(options) {
3259
3427
  const { androidLink, iosLink, otherLink } = options;
3260
- const nativePointMallFn = getNativeToPointMallFn();
3428
+ const nativePointMallFn = getNativeToPointMallFn2();
3261
3429
  if (nativePointMallFn) {
3262
- let url = isAndroid ? androidLink : iosLink;
3430
+ let url = isAndroid$1 ? androidLink : iosLink;
3263
3431
  const pltBackUri = encodeURIComponent(location.href);
3264
3432
  url = concat(url, {
3265
3433
  plt_back_uri: pltBackUri
@@ -3273,60 +3441,10 @@ const useAppNative = () => {
3273
3441
  window.open(otherLink, "_blank", "noopener=yes");
3274
3442
  }
3275
3443
  return {
3276
- getNativeToPointMallFn,
3444
+ getNativeToPointMallFn: getNativeToPointMallFn2,
3277
3445
  supportNativeToPointMall,
3278
3446
  supportAppNative,
3279
- toNativeLink
3280
- };
3281
- };
3282
- const usePolyvWebview = () => {
3283
- const { injectData } = useGlobalInject();
3284
- const isPlvWebview = ref(false);
3285
- const supportPlvWebview = computed(() => {
3286
- return isPlvWebview.value;
3287
- });
3288
- function getPlvWebviewBridge() {
3289
- return __async(this, null, function* () {
3290
- if (injectData.getPlvWebviewBridge) {
3291
- return yield injectData.getPlvWebviewBridge();
3292
- }
3293
- });
3294
- }
3295
- function toPlvWebviewBridge(options) {
3296
- return __async(this, null, function* () {
3297
- if (!supportPlvWebview.value) {
3298
- return;
3299
- }
3300
- let plvWebviewDataSize = {
3301
- width: 90,
3302
- height: 160
3303
- };
3304
- if (injectData.getPlvWebviewSmallWindowSize) {
3305
- plvWebviewDataSize = injectData.getPlvWebviewSmallWindowSize();
3306
- }
3307
- const webviewBridge = yield getPlvWebviewBridge();
3308
- if (!webviewBridge) {
3309
- return;
3310
- }
3311
- webviewBridge.sendData("clickProduct", {
3312
- width: plvWebviewDataSize.width,
3313
- height: plvWebviewDataSize.height,
3314
- newPage: true,
3315
- link: options.link,
3316
- data: options.data
3317
- });
3318
- });
3319
- }
3320
- onMounted(() => {
3321
- if (injectData.isPlvWebview) {
3322
- isPlvWebview.value = injectData.isPlvWebview();
3323
- }
3324
- });
3325
- return {
3326
- isPlvWebview,
3327
- supportPlvWebview,
3328
- getPlvWebviewBridge,
3329
- toPlvWebviewBridge
3447
+ toNativeLink: toNativeLink2
3330
3448
  };
3331
3449
  };
3332
3450
  const productButtonProps = () => __spreadProps(__spreadValues({}, productProps()), {
@@ -3345,12 +3463,12 @@ const useProductButton = (options) => {
3345
3463
  const { isSoldOut } = useProductStock({
3346
3464
  product: () => props.productData
3347
3465
  });
3348
- const { getEmitter } = useGlobalInject();
3466
+ const { getEmitter, injectData } = useGlobalInject();
3349
3467
  const { $t } = useI18n();
3350
3468
  const productConfig = computed(() => {
3351
3469
  return props.productConfig;
3352
3470
  });
3353
- const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram } = useWeixinButton({
3471
+ const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram, supportWxMiniProgramNavigateTo } = useWeixinButton({
3354
3472
  getButtonOptions: () => {
3355
3473
  const productData = props.productData;
3356
3474
  return {
@@ -3361,10 +3479,9 @@ const useProductButton = (options) => {
3361
3479
  },
3362
3480
  launchCallback: () => sendClickEvent()
3363
3481
  });
3364
- const { supportAppNative, toNativeLink } = useAppNative();
3365
- const { supportPlvWebview, toPlvWebviewBridge } = usePolyvWebview();
3482
+ const { supportAppNative } = useAppNative();
3366
3483
  const { trackEvent } = useTrackEvent(props.productTarget.iarCore);
3367
- const { ProductBuyType, ProductType, ProductLinkType, ProductLinkJumpWay } = getProductTargetExport(props.productTarget);
3484
+ const { ProductBuyType, ProductType } = getProductTargetExport(props.productTarget);
3368
3485
  const isDirectBuy = computed(() => {
3369
3486
  return props.productData.productType === ProductType.Normal && props.productData.buyType === ProductBuyType.DirectBuy;
3370
3487
  });
@@ -3391,13 +3508,13 @@ const useProductButton = (options) => {
3391
3508
  if (isDirectBuy.value) {
3392
3509
  return false;
3393
3510
  }
3394
- if (productData.linkType === ProductLinkType.Normal) {
3511
+ if (productData.linkType === LinkType.Normal) {
3395
3512
  return !productData.link;
3396
3513
  }
3397
- if (productData.linkType === ProductLinkType.MultiPlatform) {
3514
+ if (productData.linkType === LinkType.MultiPlatform) {
3398
3515
  return isMultiPlatformDisabled.value;
3399
3516
  }
3400
- if (productData.linkType === ProductLinkType.Native) {
3517
+ if (productData.linkType === LinkType.Native) {
3401
3518
  if (supportAppNative.value) {
3402
3519
  return !productData.androidLink && !productData.iosLink;
3403
3520
  }
@@ -3456,9 +3573,26 @@ const useProductButton = (options) => {
3456
3573
  }
3457
3574
  return concat(url, urlParams);
3458
3575
  }
3576
+ function getLinkData() {
3577
+ const productData = props.productData;
3578
+ const linkData = {
3579
+ linkType: productData.linkType,
3580
+ jumpWay: productData.jumpWay,
3581
+ link: productData.link,
3582
+ pcLink: productData.pcLink,
3583
+ mobileLink: productData.mobileLink,
3584
+ mobileAppLink: productData.mobileAppLink,
3585
+ androidLink: productData.androidLink,
3586
+ iosLink: productData.iosLink,
3587
+ otherLink: productData.otherLink,
3588
+ wxMiniprogramOriginalId: productData.wxMiniprogramOriginalId,
3589
+ wxMiniprogramAppId: productData.wxMiniprogramAppId,
3590
+ wxMiniprogramLink: productData.wxMiniprogramLink
3591
+ };
3592
+ return linkData;
3593
+ }
3459
3594
  function onClickLinkBtn() {
3460
3595
  const productData = props.productData;
3461
- const { linkType } = productData;
3462
3596
  sendClickEvent();
3463
3597
  if (productConfig.value.customClickButtonHandler) {
3464
3598
  productConfig.value.customClickButtonHandler(productData);
@@ -3468,70 +3602,28 @@ const useProductButton = (options) => {
3468
3602
  toDirectBuy();
3469
3603
  return;
3470
3604
  }
3471
- if (productData.linkType === ProductLinkType.Native) {
3472
- toNativeLink({
3473
- androidLink: formatProductLink(productData.androidLink),
3474
- iosLink: formatProductLink(productData.iosLink),
3475
- otherLink: formatProductLink(productData.otherLink)
3476
- });
3477
- return;
3478
- }
3479
- if (supportPlvWebview.value) {
3480
- let linkTo = "";
3481
- const { link, mobileLink, mobileAppLink, wxMiniprogramOriginalId, wxMiniprogramLink } = productData;
3482
- switch (productData.linkType) {
3483
- case ProductLinkType.Normal:
3484
- linkTo = link;
3485
- break;
3486
- case ProductLinkType.MultiPlatform:
3487
- linkTo = mobileAppLink || mobileLink;
3488
- break;
3489
- }
3490
- let otherData = null;
3491
- if (productData.linkType !== ProductLinkType.Normal) {
3492
- otherData = {
3493
- mobileLink: formatProductLink(mobileLink),
3494
- wxMiniprogramOriginalId,
3495
- wxMiniprogramLink: formatProductLink(wxMiniprogramLink),
3496
- mobileAppLink: formatProductLink(mobileAppLink)
3497
- };
3498
- }
3499
- toPlvWebviewBridge({
3500
- link: formatProductLink(linkTo),
3501
- data: otherData
3502
- });
3503
- return;
3504
- }
3505
- if (linkType === ProductLinkType.Normal) {
3506
- const { link, jumpWay } = productData;
3507
- openLink(formatProductLink(link), jumpWay);
3508
- return;
3509
- }
3510
- if (linkType === ProductLinkType.MultiPlatform) {
3511
- const { wxMiniprogramLink, mobileLink, pcLink } = productData;
3512
- if (isWxMiniProgramWebview.value && wxMiniprogramLink) {
3513
- toWxMiniProgram(formatProductLink(wxMiniprogramLink));
3514
- return;
3515
- }
3516
- if (isMobile) {
3517
- openLink(formatProductLink(mobileLink), ProductLinkJumpWay.NewWindow);
3518
- return;
3519
- }
3520
- if (!isMobile) {
3521
- openLink(formatProductLink(pcLink), ProductLinkJumpWay.NewWindow);
3522
- return;
3523
- }
3524
- }
3605
+ const linkData = getLinkData();
3606
+ navigateToLink({
3607
+ linkData,
3608
+ getLinkParams: productConfig.value.getLinkParams,
3609
+ openLink,
3610
+ isPlvWebview: injectData.isPlvWebview,
3611
+ isMobile: injectData.isMobile,
3612
+ getPlvWebviewBridge: injectData.getPlvWebviewBridge,
3613
+ getPlvWebviewSmallWindowSize: injectData.getPlvWebviewSmallWindowSize,
3614
+ isWxMiniProgramEnv: supportWxMiniProgramNavigateTo,
3615
+ toWxMiniProgram
3616
+ });
3525
3617
  }
3526
3618
  function openLink(url, jumpWay) {
3527
3619
  switch (jumpWay) {
3528
- case ProductLinkJumpWay.NewWindow:
3620
+ case LinkJumpWay.NewWindow:
3529
3621
  window.open(url, "_blank", "noopener=yes");
3530
3622
  break;
3531
- case ProductLinkJumpWay.CurrentWindow:
3623
+ case LinkJumpWay.CurrentWindow:
3532
3624
  window.location.href = url;
3533
3625
  break;
3534
- case ProductLinkJumpWay.PopUp:
3626
+ case LinkJumpWay.PopUp:
3535
3627
  getEmitter().emit(productEvents.OpenProductIframeLinkPopup, url);
3536
3628
  break;
3537
3629
  default:
@@ -3554,7 +3646,7 @@ const useProductButton = (options) => {
3554
3646
  name: productData.name,
3555
3647
  productId: productData.productId,
3556
3648
  productType: productData.productType,
3557
- productPushRule: data == null ? void 0 : data.pushRule
3649
+ productPushRule: (data == null ? void 0 : data.pushRule) || ""
3558
3650
  }
3559
3651
  });
3560
3652
  props.productTarget.sendProductClickEvent({
@@ -3640,10 +3732,10 @@ function requirePopperManager() {
3640
3732
  return t2.d(n3, "a", n3), n3;
3641
3733
  }, t2.o = function(e2, n3) {
3642
3734
  return Object.prototype.hasOwnProperty.call(e2, n3);
3643
- }, t2.p = "", t2(t2.s = 14);
3644
- }({ 14: function(e, n2, t2) {
3735
+ }, t2.p = "", t2(t2.s = 15);
3736
+ }({ 15: function(e, n2, t2) {
3645
3737
  t2.r(n2);
3646
- t2(41);
3738
+ t2(48);
3647
3739
  var r2 = "@@polyvAdminUIzIndex", o2 = { ctx: r2, openPopper: function(e2) {
3648
3740
  o2.zIndex++, e2.style.zIndex = o2.zIndex;
3649
3741
  }, install: function(e2) {
@@ -3655,7 +3747,7 @@ function requirePopperManager() {
3655
3747
  }, set: function(e2) {
3656
3748
  window[r2] = e2;
3657
3749
  } }), n2.default = o2;
3658
- }, 41: function(e, n2, t2) {
3750
+ }, 48: function(e, n2, t2) {
3659
3751
  } }).default;
3660
3752
  return popperManager;
3661
3753
  }
@@ -3694,31 +3786,31 @@ function requireRadio() {
3694
3786
  return r2.d(e2, "a", e2), e2;
3695
3787
  }, r2.o = function(t3, e2) {
3696
3788
  return Object.prototype.hasOwnProperty.call(t3, e2);
3697
- }, r2.p = "", r2(r2.s = 298);
3789
+ }, r2.p = "", r2(r2.s = 160);
3698
3790
  }({ 0: function(t2, e, r2) {
3699
- function n2(t3, e2, r3, n3, o2, i2, a2, s2) {
3700
- var u2, c2 = "function" == typeof t3 ? t3.options : t3;
3701
- if (e2 && (c2.render = e2, c2.staticRenderFns = r3, c2._compiled = true), n3 && (c2.functional = true), i2 && (c2._scopeId = "data-v-" + i2), a2 ? (u2 = function(t4) {
3702
- (t4 = t4 || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || "undefined" == typeof __VUE_SSR_CONTEXT__ || (t4 = __VUE_SSR_CONTEXT__), o2 && o2.call(this, t4), t4 && t4._registeredComponents && t4._registeredComponents.add(a2);
3703
- }, c2._ssrRegister = u2) : o2 && (u2 = s2 ? function() {
3704
- o2.call(this, this.$root.$options.shadowRoot);
3705
- } : o2), u2) if (c2.functional) {
3706
- c2._injectStyles = u2;
3791
+ function n2(t3, e2, r3, n3, o2, i2, u2, a2) {
3792
+ var s2, c2 = "function" == typeof t3 ? t3.options : t3;
3793
+ if (e2 && (c2.render = e2, c2.staticRenderFns = r3, c2._compiled = true), n3 && (c2.functional = true), i2 && (c2._scopeId = "data-v-" + i2), u2 ? (s2 = function(t4) {
3794
+ (t4 = t4 || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || "undefined" == typeof __VUE_SSR_CONTEXT__ || (t4 = __VUE_SSR_CONTEXT__), o2 && o2.call(this, t4), t4 && t4._registeredComponents && t4._registeredComponents.add(u2);
3795
+ }, c2._ssrRegister = s2) : o2 && (s2 = a2 ? function() {
3796
+ o2.call(this, (c2.functional ? this.parent : this).$root.$options.shadowRoot);
3797
+ } : o2), s2) if (c2.functional) {
3798
+ c2._injectStyles = s2;
3707
3799
  var l2 = c2.render;
3708
3800
  c2.render = function(t4, e3) {
3709
- return u2.call(e3), l2(t4, e3);
3801
+ return s2.call(e3), l2(t4, e3);
3710
3802
  };
3711
3803
  } else {
3712
3804
  var f2 = c2.beforeCreate;
3713
- c2.beforeCreate = f2 ? [].concat(f2, u2) : [u2];
3805
+ c2.beforeCreate = f2 ? [].concat(f2, s2) : [s2];
3714
3806
  }
3715
3807
  return { exports: t3, options: c2 };
3716
3808
  }
3717
3809
  r2.d(e, "a", function() {
3718
3810
  return n2;
3719
3811
  });
3720
- }, 115: function(t2, e, r2) {
3721
- var n2 = { name: "plv-radio", mixins: [r2(15).a], inject: { radioGroup: { default: "" } }, props: { checked: { type: Boolean, default: false }, value: [String, Number, Boolean], label: String, trueLabel: String, falseLabel: String, type: { type: String, default: "", validator: function(t3) {
3812
+ }, 104: function(t2, e, r2) {
3813
+ var n2 = { name: "plv-radio", mixins: [r2(16).a], inject: { radioGroup: { default: "" } }, props: { checked: { type: Boolean, default: false }, value: [String, Number, Boolean], label: String, trueLabel: String, falseLabel: String, type: { type: String, default: "", validator: function(t3) {
3722
3814
  return -1 !== ["", "border"].indexOf(t3);
3723
3815
  } }, disabled: { type: Boolean, default: false }, readonly: { type: Boolean, default: false }, corner: { type: Boolean, default: false } }, model: { prop: "checked", event: "change" }, computed: { inGroup: function() {
3724
3816
  return !!this.radioGroup;
@@ -3738,300 +3830,300 @@ function requireRadio() {
3738
3830
  this.$emit("change", t3);
3739
3831
  }, handleClick: function() {
3740
3832
  this.isDisabled || this.isReadonly || (this.inGroup ? this.radioGroup.radioClick(this.value) : this.checked || this.emitChange(true), this.blurToValidateItem());
3741
- } } }, o2 = (r2(354), r2(355), r2(0)), i2 = Object(o2.a)(n2, function() {
3833
+ } } }, o2 = (r2(207), r2(208), r2(0)), i2 = Object(o2.a)(n2, function() {
3742
3834
  var t3 = this, e2 = t3.$createElement, r3 = t3._self._c || e2;
3743
3835
  return r3("label", { staticClass: "plv-radio", class: { "plv-radio--checked": t3.isChecked, "plv-radio--disabled": t3.isDisabled, "plv-radio--readonly": t3.isReadonly, "plv-radio--border": "border" === t3.radioType }, on: { click: t3.handleClick } }, ["border" !== t3.radioType ? r3("span", { staticClass: "plv-radio__inner", class: { "plv-radio__inner--checked": t3.isChecked } }) : t3._e(), t3._v(" "), t3.radioLabel || t3.isHasSlot ? r3("span", { staticClass: "plv-radio__label" }, [t3.isChecked ? [t3.$slots.trueLabel ? [t3._t("trueLabel", [t3._v(t3._s(t3.trueLabel))])] : [t3._t("default", [t3._v(t3._s(t3.radioLabel))])]] : [t3.$slots.falseLabel ? [t3._t("falseLabel", [t3._v(t3._s(t3.falseLabel))])] : [t3._t("default", [t3._v(t3._s(t3.radioLabel))])]]], 2) : t3._e(), t3._v(" "), "border" === t3.type && t3.isChecked && t3.corner ? r3("div", { staticClass: "plv-radio__corner" }) : t3._e()]);
3744
3836
  }, [], false, null, null, null);
3745
3837
  e.a = i2.exports;
3746
- }, 147: function(t2, e, r2) {
3747
- }, 148: function(t2, e, r2) {
3748
- }, 15: function(t2, e, r2) {
3838
+ }, 156: function(t2, e, r2) {
3839
+ }, 157: function(t2, e, r2) {
3840
+ }, 16: function(t2, e, r2) {
3749
3841
  r2.d(e, "a", function() {
3750
- return i2;
3842
+ return a2;
3751
3843
  });
3752
- var n2 = r2(2), o2 = r2.n(n2), i2 = { inject: { formItem: { default: void 0 } }, computed: { formItemIsError: function() {
3753
- return !!this.formItem && this.formItem.formItemIsError;
3844
+ var n2 = r2(8), o2 = r2.n(n2), i2 = r2(3), u2 = r2.n(i2), a2 = { inject: { formItem: { default: void 0 } }, props: { forceFormError: { type: Boolean, default: false } }, computed: { formItemIsError: function() {
3845
+ return !!this.forceFormError || !!this.formItem && this.formItem.formItemIsError;
3754
3846
  } }, watch: { showPopper: function() {
3755
3847
  this.showPopper ? this.focusToRemoveError() : this.blurToValidateItem();
3756
3848
  } }, methods: { validateCurrentFormItem: function() {
3757
3849
  if (this.formItem) return this.formItem.validate();
3758
3850
  }, blurToValidateItem: function() {
3759
- return o2.a.async(function(t3) {
3760
- for (; ; ) switch (t3.prev = t3.next) {
3761
- case 0:
3762
- return t3.prev = 0, t3.next = 3, o2.a.awrap(this.validateCurrentFormItem());
3763
- case 3:
3764
- t3.next = 8;
3765
- break;
3766
- case 5:
3767
- t3.prev = 5, t3.t0 = t3.catch(0), console.error("blur-validate", t3.t0.message);
3768
- case 8:
3769
- case "end":
3770
- return t3.stop();
3771
- }
3772
- }, null, this, [[0, 5]]);
3851
+ var t3 = this;
3852
+ return o2()(u2.a.mark(function e2() {
3853
+ var r3;
3854
+ return u2.a.wrap(function(e3) {
3855
+ for (; ; ) switch (e3.prev = e3.next) {
3856
+ case 0:
3857
+ return e3.prev = 0, e3.next = 1, t3.validateCurrentFormItem();
3858
+ case 1:
3859
+ e3.next = 3;
3860
+ break;
3861
+ case 2:
3862
+ e3.prev = 2, r3 = e3.catch(0), console.error("blur-validate", r3.message);
3863
+ case 3:
3864
+ case "end":
3865
+ return e3.stop();
3866
+ }
3867
+ }, e2, null, [[0, 2]]);
3868
+ }))();
3773
3869
  }, focusToRemoveError: function() {
3774
3870
  this.formItem && this.formItem.removeErrorMessage();
3775
3871
  } } };
3776
- }, 2: function(t2, e, r2) {
3777
- t2.exports = r2(24);
3778
- }, 24: function(t2, e, r2) {
3779
- var n2 = function(t3) {
3780
- var e2, r3 = Object.prototype, n3 = r3.hasOwnProperty, o2 = "function" == typeof Symbol ? Symbol : {}, i2 = o2.iterator || "@@iterator", a2 = o2.asyncIterator || "@@asyncIterator", s2 = o2.toStringTag || "@@toStringTag";
3781
- function u2(t4, e3, r4) {
3782
- return Object.defineProperty(t4, e3, { value: r4, enumerable: true, configurable: true, writable: true }), t4[e3];
3783
- }
3784
- try {
3785
- u2({}, "");
3786
- } catch (t4) {
3787
- u2 = function(t5, e3, r4) {
3788
- return t5[e3] = r4;
3789
- };
3790
- }
3791
- function c2(t4, e3, r4, n4) {
3792
- var o3 = e3 && e3.prototype instanceof y2 ? e3 : y2, i3 = Object.create(o3.prototype), a3 = new O2(n4 || []);
3793
- return i3._invoke = /* @__PURE__ */ function(t5, e4, r5) {
3794
- var n5 = f2;
3795
- return function(o4, i4) {
3796
- if (n5 === d2) throw new Error("Generator is already running");
3797
- if (n5 === p2) {
3798
- if ("throw" === o4) throw i4;
3799
- return T2();
3872
+ }, 160: function(t2, e, r2) {
3873
+ r2.r(e);
3874
+ var n2 = r2(104);
3875
+ n2.a.install = function(t3) {
3876
+ t3.component(n2.a.name, n2.a);
3877
+ }, e.default = n2.a;
3878
+ }, 19: function(t2, e) {
3879
+ t2.exports = function(t3, e2) {
3880
+ this.v = t3, this.k = e2;
3881
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
3882
+ }, 20: function(t2, e, r2) {
3883
+ var n2 = r2(21);
3884
+ function o2() {
3885
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
3886
+ var e2, r3, i2 = "function" == typeof Symbol ? Symbol : {}, u2 = i2.iterator || "@@iterator", a2 = i2.toStringTag || "@@toStringTag";
3887
+ function s2(t3, o3, i3, u3) {
3888
+ var a3 = o3 && o3.prototype instanceof l2 ? o3 : l2, s3 = Object.create(a3.prototype);
3889
+ return n2(s3, "_invoke", function(t4, n3, o4) {
3890
+ var i4, u4, a4, s4 = 0, l3 = o4 || [], f3 = false, p3 = { p: 0, n: 0, v: e2, a: d3, f: d3.bind(e2, 4), d: function(t5, r4) {
3891
+ return i4 = t5, u4 = 0, a4 = e2, p3.n = r4, c2;
3892
+ } };
3893
+ function d3(t5, n4) {
3894
+ for (u4 = t5, a4 = n4, r3 = 0; !f3 && s4 && !o5 && r3 < l3.length; r3++) {
3895
+ var o5, i5 = l3[r3], d4 = p3.p, h3 = i5[2];
3896
+ t5 > 3 ? (o5 = h3 === n4) && (a4 = i5[(u4 = i5[4]) ? 5 : (u4 = 3, 3)], i5[4] = i5[5] = e2) : i5[0] <= d4 && ((o5 = t5 < 2 && d4 < i5[1]) ? (u4 = 0, p3.v = n4, p3.n = i5[1]) : d4 < h3 && (o5 = t5 < 3 || i5[0] > n4 || n4 > h3) && (i5[4] = t5, i5[5] = n4, p3.n = h3, u4 = 0));
3800
3897
  }
3801
- for (r5.method = o4, r5.arg = i4; ; ) {
3802
- var a4 = r5.delegate;
3803
- if (a4) {
3804
- var s3 = k2(a4, r5);
3805
- if (s3) {
3806
- if (s3 === v2) continue;
3807
- return s3;
3808
- }
3809
- }
3810
- if ("next" === r5.method) r5.sent = r5._sent = r5.arg;
3811
- else if ("throw" === r5.method) {
3812
- if (n5 === f2) throw n5 = p2, r5.arg;
3813
- r5.dispatchException(r5.arg);
3814
- } else "return" === r5.method && r5.abrupt("return", r5.arg);
3815
- n5 = d2;
3816
- var u3 = l2(t5, e4, r5);
3817
- if ("normal" === u3.type) {
3818
- if (n5 = r5.done ? p2 : h2, u3.arg === v2) continue;
3819
- return { value: u3.arg, done: r5.done };
3898
+ if (o5 || t5 > 1) return c2;
3899
+ throw f3 = true, n4;
3900
+ }
3901
+ return function(o5, l4, h3) {
3902
+ if (s4 > 1) throw TypeError("Generator is already running");
3903
+ for (f3 && 1 === l4 && d3(l4, h3), u4 = l4, a4 = h3; (r3 = u4 < 2 ? e2 : a4) || !f3; ) {
3904
+ i4 || (u4 ? u4 < 3 ? (u4 > 1 && (p3.n = -1), d3(u4, a4)) : p3.n = a4 : p3.v = a4);
3905
+ try {
3906
+ if (s4 = 2, i4) {
3907
+ if (u4 || (o5 = "next"), r3 = i4[o5]) {
3908
+ if (!(r3 = r3.call(i4, a4))) throw TypeError("iterator result is not an object");
3909
+ if (!r3.done) return r3;
3910
+ a4 = r3.value, u4 < 2 && (u4 = 0);
3911
+ } else 1 === u4 && (r3 = i4.return) && r3.call(i4), u4 < 2 && (a4 = TypeError("The iterator does not provide a '" + o5 + "' method"), u4 = 1);
3912
+ i4 = e2;
3913
+ } else if ((r3 = (f3 = p3.n < 0) ? a4 : t4.call(n3, p3)) !== c2) break;
3914
+ } catch (t5) {
3915
+ i4 = e2, u4 = 1, a4 = t5;
3916
+ } finally {
3917
+ s4 = 1;
3820
3918
  }
3821
- "throw" === u3.type && (n5 = p2, r5.method = "throw", r5.arg = u3.arg);
3822
3919
  }
3920
+ return { value: r3, done: f3 };
3823
3921
  };
3824
- }(t4, r4, a3), i3;
3922
+ }(t3, i3, u3), true), s3;
3825
3923
  }
3826
- function l2(t4, e3, r4) {
3827
- try {
3828
- return { type: "normal", arg: t4.call(e3, r4) };
3829
- } catch (t5) {
3830
- return { type: "throw", arg: t5 };
3831
- }
3924
+ var c2 = {};
3925
+ function l2() {
3832
3926
  }
3833
- t3.wrap = c2;
3834
- var f2 = "suspendedStart", h2 = "suspendedYield", d2 = "executing", p2 = "completed", v2 = {};
3835
- function y2() {
3927
+ function f2() {
3836
3928
  }
3837
- function m2() {
3929
+ function p2() {
3838
3930
  }
3839
- function g2() {
3931
+ r3 = Object.getPrototypeOf;
3932
+ var d2 = [][u2] ? r3(r3([][u2]())) : (n2(r3 = {}, u2, function() {
3933
+ return this;
3934
+ }), r3), h2 = p2.prototype = l2.prototype = Object.create(d2);
3935
+ function v2(t3) {
3936
+ return Object.setPrototypeOf ? Object.setPrototypeOf(t3, p2) : (t3.__proto__ = p2, n2(t3, a2, "GeneratorFunction")), t3.prototype = Object.create(h2), t3;
3840
3937
  }
3841
- var b2 = {};
3842
- u2(b2, i2, function() {
3938
+ return f2.prototype = p2, n2(h2, "constructor", p2), n2(p2, "constructor", f2), f2.displayName = "GeneratorFunction", n2(p2, a2, "GeneratorFunction"), n2(h2), n2(h2, a2, "Generator"), n2(h2, u2, function() {
3843
3939
  return this;
3844
- });
3845
- var _2 = Object.getPrototypeOf, w2 = _2 && _2(_2(S2([])));
3846
- w2 && w2 !== r3 && n3.call(w2, i2) && (b2 = w2);
3847
- var L2 = g2.prototype = y2.prototype = Object.create(b2);
3848
- function x2(t4) {
3849
- ["next", "throw", "return"].forEach(function(e3) {
3850
- u2(t4, e3, function(t5) {
3851
- return this._invoke(e3, t5);
3852
- });
3853
- });
3940
+ }), n2(h2, "toString", function() {
3941
+ return "[object Generator]";
3942
+ }), (t2.exports = o2 = function() {
3943
+ return { w: s2, m: v2 };
3944
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports)();
3945
+ }
3946
+ t2.exports = o2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
3947
+ }, 207: function(t2, e, r2) {
3948
+ r2(156);
3949
+ }, 208: function(t2, e, r2) {
3950
+ r2(157);
3951
+ }, 21: function(t2, e) {
3952
+ function r2(e2, n2, o2, i2) {
3953
+ var u2 = Object.defineProperty;
3954
+ try {
3955
+ u2({}, "", {});
3956
+ } catch (e3) {
3957
+ u2 = 0;
3854
3958
  }
3855
- function E2(t4, e3) {
3856
- var r4;
3857
- this._invoke = function(o3, i3) {
3858
- function a3() {
3859
- return new e3(function(r5, a4) {
3860
- !function r6(o4, i4, a5, s3) {
3861
- var u3 = l2(t4[o4], t4, i4);
3862
- if ("throw" !== u3.type) {
3863
- var c3 = u3.arg, f3 = c3.value;
3864
- return f3 && "object" == typeof f3 && n3.call(f3, "__await") ? e3.resolve(f3.__await).then(function(t5) {
3865
- r6("next", t5, a5, s3);
3866
- }, function(t5) {
3867
- r6("throw", t5, a5, s3);
3868
- }) : e3.resolve(f3).then(function(t5) {
3869
- c3.value = t5, a5(c3);
3870
- }, function(t5) {
3871
- return r6("throw", t5, a5, s3);
3872
- });
3873
- }
3874
- s3(u3.arg);
3875
- }(o3, i3, r5, a4);
3959
+ t2.exports = r2 = function(t3, e3, n3, o3) {
3960
+ if (e3) u2 ? u2(t3, e3, { value: n3, enumerable: !o3, configurable: !o3, writable: !o3 }) : t3[e3] = n3;
3961
+ else {
3962
+ var i3 = function(e4, n4) {
3963
+ r2(t3, e4, function(t4) {
3964
+ return this._invoke(e4, n4, t4);
3876
3965
  });
3877
- }
3878
- return r4 = r4 ? r4.then(a3, a3) : a3();
3879
- };
3880
- }
3881
- function k2(t4, r4) {
3882
- var n4 = t4.iterator[r4.method];
3883
- if (n4 === e2) {
3884
- if (r4.delegate = null, "throw" === r4.method) {
3885
- if (t4.iterator.return && (r4.method = "return", r4.arg = e2, k2(t4, r4), "throw" === r4.method)) return v2;
3886
- r4.method = "throw", r4.arg = new TypeError("The iterator does not provide a 'throw' method");
3887
- }
3888
- return v2;
3966
+ };
3967
+ i3("next", 0), i3("throw", 1), i3("return", 2);
3889
3968
  }
3890
- var o3 = l2(n4, t4.iterator, r4.arg);
3891
- if ("throw" === o3.type) return r4.method = "throw", r4.arg = o3.arg, r4.delegate = null, v2;
3892
- var i3 = o3.arg;
3893
- return i3 ? i3.done ? (r4[t4.resultName] = i3.value, r4.next = t4.nextLoc, "return" !== r4.method && (r4.method = "next", r4.arg = e2), r4.delegate = null, v2) : i3 : (r4.method = "throw", r4.arg = new TypeError("iterator result is not an object"), r4.delegate = null, v2);
3894
- }
3895
- function C(t4) {
3896
- var e3 = { tryLoc: t4[0] };
3897
- 1 in t4 && (e3.catchLoc = t4[1]), 2 in t4 && (e3.finallyLoc = t4[2], e3.afterLoc = t4[3]), this.tryEntries.push(e3);
3898
- }
3899
- function j2(t4) {
3900
- var e3 = t4.completion || {};
3901
- e3.type = "normal", delete e3.arg, t4.completion = e3;
3902
- }
3903
- function O2(t4) {
3904
- this.tryEntries = [{ tryLoc: "root" }], t4.forEach(C, this), this.reset(true);
3905
- }
3906
- function S2(t4) {
3907
- if (t4) {
3908
- var r4 = t4[i2];
3909
- if (r4) return r4.call(t4);
3910
- if ("function" == typeof t4.next) return t4;
3911
- if (!isNaN(t4.length)) {
3912
- var o3 = -1, a3 = function r5() {
3913
- for (; ++o3 < t4.length; ) if (n3.call(t4, o3)) return r5.value = t4[o3], r5.done = false, r5;
3914
- return r5.value = e2, r5.done = true, r5;
3915
- };
3916
- return a3.next = a3;
3917
- }
3969
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports, r2(e2, n2, o2, i2);
3970
+ }
3971
+ t2.exports = r2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
3972
+ }, 22: function(t2, e, r2) {
3973
+ var n2 = r2(20), o2 = r2(23);
3974
+ t2.exports = function(t3, e2, r3, i2, u2) {
3975
+ return new o2(n2().w(t3, e2, r3, i2), u2 || Promise);
3976
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
3977
+ }, 23: function(t2, e, r2) {
3978
+ var n2 = r2(19), o2 = r2(21);
3979
+ t2.exports = function t3(e2, r3) {
3980
+ function i2(t4, o3, u3, a2) {
3981
+ try {
3982
+ var s2 = e2[t4](o3), c2 = s2.value;
3983
+ return c2 instanceof n2 ? r3.resolve(c2.v).then(function(t5) {
3984
+ i2("next", t5, u3, a2);
3985
+ }, function(t5) {
3986
+ i2("throw", t5, u3, a2);
3987
+ }) : r3.resolve(c2).then(function(t5) {
3988
+ s2.value = t5, u3(s2);
3989
+ }, function(t5) {
3990
+ return i2("throw", t5, u3, a2);
3991
+ });
3992
+ } catch (t5) {
3993
+ a2(t5);
3918
3994
  }
3919
- return { next: T2 };
3920
- }
3921
- function T2() {
3922
- return { value: e2, done: true };
3923
3995
  }
3924
- return m2.prototype = g2, u2(L2, "constructor", g2), u2(g2, "constructor", m2), m2.displayName = u2(g2, s2, "GeneratorFunction"), t3.isGeneratorFunction = function(t4) {
3925
- var e3 = "function" == typeof t4 && t4.constructor;
3926
- return !!e3 && (e3 === m2 || "GeneratorFunction" === (e3.displayName || e3.name));
3927
- }, t3.mark = function(t4) {
3928
- return Object.setPrototypeOf ? Object.setPrototypeOf(t4, g2) : (t4.__proto__ = g2, u2(t4, s2, "GeneratorFunction")), t4.prototype = Object.create(L2), t4;
3929
- }, t3.awrap = function(t4) {
3930
- return { __await: t4 };
3931
- }, x2(E2.prototype), u2(E2.prototype, a2, function() {
3932
- return this;
3933
- }), t3.AsyncIterator = E2, t3.async = function(e3, r4, n4, o3, i3) {
3934
- void 0 === i3 && (i3 = Promise);
3935
- var a3 = new E2(c2(e3, r4, n4, o3), i3);
3936
- return t3.isGeneratorFunction(r4) ? a3 : a3.next().then(function(t4) {
3937
- return t4.done ? t4.value : a3.next();
3938
- });
3939
- }, x2(L2), u2(L2, s2, "Generator"), u2(L2, i2, function() {
3996
+ var u2;
3997
+ this.next || (o2(t3.prototype), o2(t3.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function() {
3940
3998
  return this;
3941
- }), u2(L2, "toString", function() {
3942
- return "[object Generator]";
3943
- }), t3.keys = function(t4) {
3944
- var e3 = [];
3945
- for (var r4 in t4) e3.push(r4);
3946
- return e3.reverse(), function r5() {
3947
- for (; e3.length; ) {
3948
- var n4 = e3.pop();
3949
- if (n4 in t4) return r5.value = n4, r5.done = false, r5;
3950
- }
3951
- return r5.done = true, r5;
3952
- };
3953
- }, t3.values = S2, O2.prototype = { constructor: O2, reset: function(t4) {
3954
- if (this.prev = 0, this.next = 0, this.sent = this._sent = e2, this.done = false, this.delegate = null, this.method = "next", this.arg = e2, this.tryEntries.forEach(j2), !t4) for (var r4 in this) "t" === r4.charAt(0) && n3.call(this, r4) && !isNaN(+r4.slice(1)) && (this[r4] = e2);
3955
- }, stop: function() {
3956
- this.done = true;
3957
- var t4 = this.tryEntries[0].completion;
3958
- if ("throw" === t4.type) throw t4.arg;
3959
- return this.rval;
3960
- }, dispatchException: function(t4) {
3961
- if (this.done) throw t4;
3962
- var r4 = this;
3963
- function o3(n4, o4) {
3964
- return s3.type = "throw", s3.arg = t4, r4.next = n4, o4 && (r4.method = "next", r4.arg = e2), !!o4;
3965
- }
3966
- for (var i3 = this.tryEntries.length - 1; i3 >= 0; --i3) {
3967
- var a3 = this.tryEntries[i3], s3 = a3.completion;
3968
- if ("root" === a3.tryLoc) return o3("end");
3969
- if (a3.tryLoc <= this.prev) {
3970
- var u3 = n3.call(a3, "catchLoc"), c3 = n3.call(a3, "finallyLoc");
3971
- if (u3 && c3) {
3972
- if (this.prev < a3.catchLoc) return o3(a3.catchLoc, true);
3973
- if (this.prev < a3.finallyLoc) return o3(a3.finallyLoc);
3974
- } else if (u3) {
3975
- if (this.prev < a3.catchLoc) return o3(a3.catchLoc, true);
3976
- } else {
3977
- if (!c3) throw new Error("try statement without catch or finally");
3978
- if (this.prev < a3.finallyLoc) return o3(a3.finallyLoc);
3979
- }
3980
- }
3981
- }
3982
- }, abrupt: function(t4, e3) {
3983
- for (var r4 = this.tryEntries.length - 1; r4 >= 0; --r4) {
3984
- var o3 = this.tryEntries[r4];
3985
- if (o3.tryLoc <= this.prev && n3.call(o3, "finallyLoc") && this.prev < o3.finallyLoc) {
3986
- var i3 = o3;
3987
- break;
3988
- }
3989
- }
3990
- i3 && ("break" === t4 || "continue" === t4) && i3.tryLoc <= e3 && e3 <= i3.finallyLoc && (i3 = null);
3991
- var a3 = i3 ? i3.completion : {};
3992
- return a3.type = t4, a3.arg = e3, i3 ? (this.method = "next", this.next = i3.finallyLoc, v2) : this.complete(a3);
3993
- }, complete: function(t4, e3) {
3994
- if ("throw" === t4.type) throw t4.arg;
3995
- return "break" === t4.type || "continue" === t4.type ? this.next = t4.arg : "return" === t4.type ? (this.rval = this.arg = t4.arg, this.method = "return", this.next = "end") : "normal" === t4.type && e3 && (this.next = e3), v2;
3996
- }, finish: function(t4) {
3997
- for (var e3 = this.tryEntries.length - 1; e3 >= 0; --e3) {
3998
- var r4 = this.tryEntries[e3];
3999
- if (r4.finallyLoc === t4) return this.complete(r4.completion, r4.afterLoc), j2(r4), v2;
4000
- }
4001
- }, catch: function(t4) {
4002
- for (var e3 = this.tryEntries.length - 1; e3 >= 0; --e3) {
4003
- var r4 = this.tryEntries[e3];
4004
- if (r4.tryLoc === t4) {
4005
- var n4 = r4.completion;
4006
- if ("throw" === n4.type) {
4007
- var o3 = n4.arg;
4008
- j2(r4);
4009
- }
4010
- return o3;
4011
- }
3999
+ })), o2(this, "_invoke", function(t4, e3, n3) {
4000
+ function o3() {
4001
+ return new r3(function(e4, r4) {
4002
+ i2(t4, n3, e4, r4);
4003
+ });
4012
4004
  }
4013
- throw new Error("illegal catch attempt");
4014
- }, delegateYield: function(t4, r4, n4) {
4015
- return this.delegate = { iterator: S2(t4), resultName: r4, nextLoc: n4 }, "next" === this.method && (this.arg = e2), v2;
4016
- } }, t3;
4017
- }(t2.exports);
4005
+ return u2 = u2 ? u2.then(o3, o3) : o3();
4006
+ }, true);
4007
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
4008
+ }, 3: function(t2, e, r2) {
4009
+ var n2 = r2(30)();
4010
+ t2.exports = n2;
4018
4011
  try {
4019
4012
  regeneratorRuntime = n2;
4020
4013
  } catch (t3) {
4021
4014
  "object" == typeof globalThis ? globalThis.regeneratorRuntime = n2 : Function("r", "regeneratorRuntime = r")(n2);
4022
4015
  }
4023
- }, 298: function(t2, e, r2) {
4024
- r2.r(e);
4025
- var n2 = r2(115);
4026
- n2.a.install = function(t3) {
4027
- t3.component(n2.a.name, n2.a);
4028
- }, e.default = n2.a;
4029
- }, 354: function(t2, e, r2) {
4030
- var n2 = r2(147);
4031
- r2.n(n2).a;
4032
- }, 355: function(t2, e, r2) {
4033
- var n2 = r2(148);
4034
- r2.n(n2).a;
4016
+ }, 30: function(t2, e, r2) {
4017
+ var n2 = r2(19), o2 = r2(20), i2 = r2(31), u2 = r2(22), a2 = r2(23), s2 = r2(32), c2 = r2(33);
4018
+ function l2() {
4019
+ var e2 = o2(), r3 = e2.m(l2), f2 = (Object.getPrototypeOf ? Object.getPrototypeOf(r3) : r3.__proto__).constructor;
4020
+ function p2(t3) {
4021
+ var e3 = "function" == typeof t3 && t3.constructor;
4022
+ return !!e3 && (e3 === f2 || "GeneratorFunction" === (e3.displayName || e3.name));
4023
+ }
4024
+ var d2 = { throw: 1, return: 2, break: 3, continue: 3 };
4025
+ function h2(t3) {
4026
+ var e3, r4;
4027
+ return function(n3) {
4028
+ e3 || (e3 = { stop: function() {
4029
+ return r4(n3.a, 2);
4030
+ }, catch: function() {
4031
+ return n3.v;
4032
+ }, abrupt: function(t4, e4) {
4033
+ return r4(n3.a, d2[t4], e4);
4034
+ }, delegateYield: function(t4, o3, i3) {
4035
+ return e3.resultName = o3, r4(n3.d, c2(t4), i3);
4036
+ }, finish: function(t4) {
4037
+ return r4(n3.f, t4);
4038
+ } }, r4 = function(t4, r5, o3) {
4039
+ n3.p = e3.prev, n3.n = e3.next;
4040
+ try {
4041
+ return t4(r5, o3);
4042
+ } finally {
4043
+ e3.next = n3.n;
4044
+ }
4045
+ }), e3.resultName && (e3[e3.resultName] = n3.v, e3.resultName = void 0), e3.sent = n3.v, e3.next = n3.n;
4046
+ try {
4047
+ return t3.call(this, e3);
4048
+ } finally {
4049
+ n3.p = e3.prev, n3.n = e3.next;
4050
+ }
4051
+ };
4052
+ }
4053
+ return (t2.exports = l2 = function() {
4054
+ return { wrap: function(t3, r4, n3, o3) {
4055
+ return e2.w(h2(t3), r4, n3, o3 && o3.reverse());
4056
+ }, isGeneratorFunction: p2, mark: e2.m, awrap: function(t3, e3) {
4057
+ return new n2(t3, e3);
4058
+ }, AsyncIterator: a2, async: function(t3, e3, r4, n3, o3) {
4059
+ return (p2(e3) ? u2 : i2)(h2(t3), e3, r4, n3, o3);
4060
+ }, keys: s2, values: c2 };
4061
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports)();
4062
+ }
4063
+ t2.exports = l2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
4064
+ }, 31: function(t2, e, r2) {
4065
+ var n2 = r2(22);
4066
+ t2.exports = function(t3, e2, r3, o2, i2) {
4067
+ var u2 = n2(t3, e2, r3, o2, i2);
4068
+ return u2.next().then(function(t4) {
4069
+ return t4.done ? t4.value : u2.next();
4070
+ });
4071
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
4072
+ }, 32: function(t2, e) {
4073
+ t2.exports = function(t3) {
4074
+ var e2 = Object(t3), r2 = [];
4075
+ for (var n2 in e2) r2.unshift(n2);
4076
+ return function t4() {
4077
+ for (; r2.length; ) if ((n2 = r2.pop()) in e2) return t4.value = n2, t4.done = false, t4;
4078
+ return t4.done = true, t4;
4079
+ };
4080
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
4081
+ }, 33: function(t2, e, r2) {
4082
+ var n2 = r2(4).default;
4083
+ t2.exports = function(t3) {
4084
+ if (null != t3) {
4085
+ var e2 = t3["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r3 = 0;
4086
+ if (e2) return e2.call(t3);
4087
+ if ("function" == typeof t3.next) return t3;
4088
+ if (!isNaN(t3.length)) return { next: function() {
4089
+ return t3 && r3 >= t3.length && (t3 = void 0), { value: t3 && t3[r3++], done: !t3 };
4090
+ } };
4091
+ }
4092
+ throw new TypeError(n2(t3) + " is not iterable");
4093
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
4094
+ }, 4: function(t2, e) {
4095
+ function r2(e2) {
4096
+ return t2.exports = r2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t3) {
4097
+ return typeof t3;
4098
+ } : function(t3) {
4099
+ return t3 && "function" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? "symbol" : typeof t3;
4100
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports, r2(e2);
4101
+ }
4102
+ t2.exports = r2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
4103
+ }, 8: function(t2, e) {
4104
+ function r2(t3, e2, r3, n2, o2, i2, u2) {
4105
+ try {
4106
+ var a2 = t3[i2](u2), s2 = a2.value;
4107
+ } catch (t4) {
4108
+ return void r3(t4);
4109
+ }
4110
+ a2.done ? e2(s2) : Promise.resolve(s2).then(n2, o2);
4111
+ }
4112
+ t2.exports = function(t3) {
4113
+ return function() {
4114
+ var e2 = this, n2 = arguments;
4115
+ return new Promise(function(o2, i2) {
4116
+ var u2 = t3.apply(e2, n2);
4117
+ function a2(t4) {
4118
+ r2(u2, o2, i2, a2, s2, "next", t4);
4119
+ }
4120
+ function s2(t4) {
4121
+ r2(u2, o2, i2, a2, s2, "throw", t4);
4122
+ }
4123
+ a2(void 0);
4124
+ });
4125
+ };
4126
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
4035
4127
  } }).default;
4036
4128
  return radio;
4037
4129
  }
@@ -4071,6 +4163,11 @@ const useAppendTo = (elemRef, parentRef) => {
4071
4163
  }
4072
4164
  });
4073
4165
  };
4166
+ var ScreenOrientationMode = /* @__PURE__ */ ((ScreenOrientationMode2) => {
4167
+ ScreenOrientationMode2["Vertical"] = "Vertical";
4168
+ ScreenOrientationMode2["Horizontal"] = "Horizontal";
4169
+ return ScreenOrientationMode2;
4170
+ })(ScreenOrientationMode || {});
4074
4171
  const useScreenOrientHook = (params = {}) => {
4075
4172
  const { autoListen = true, autoListenCb = () => {
4076
4173
  } } = params;
@@ -4380,7 +4477,7 @@ const useDynamicHeight = (options) => {
4380
4477
  const props = __props;
4381
4478
  const { injectData: globalInjectData } = useGlobalInject();
4382
4479
  const popupInjectData = useCommonPopupInject();
4383
- const { isHorizontalScreenOrientation, pageFullscreen } = useScreenOrientHook();
4480
+ const { isHorizontalScreenOrientation, pageFullscreen, screenOrientationMode } = useScreenOrientHook();
4384
4481
  const { isFullscreen } = useFullscreen();
4385
4482
  const { dynamicContentHeightPercent, handleScroll, reset: resetContentHeight } = useDynamicHeight(props.dynamicHeightOptions);
4386
4483
  function getOriginAppendTo() {
@@ -4449,7 +4546,7 @@ const useDynamicHeight = (options) => {
4449
4546
  cls.push(props.horizontalScreenClassName);
4450
4547
  }
4451
4548
  }
4452
- if (pageFullscreen.value) {
4549
+ if (pageFullscreen.value && screenOrientationMode.value !== ScreenOrientationMode.Horizontal) {
4453
4550
  cls.push("plv-product-common-popup--page-fullscreen");
4454
4551
  }
4455
4552
  return cls;
@@ -4495,6 +4592,7 @@ const useDynamicHeight = (options) => {
4495
4592
  if (props.fillBody) {
4496
4593
  return "90%";
4497
4594
  }
4595
+ if (isHorizontalScreenOrientation.value) return document.documentElement.clientHeight;
4498
4596
  if (props.enableDynamicHeight) {
4499
4597
  return document.documentElement.clientHeight * dynamicContentHeightPercent.value;
4500
4598
  }
@@ -4605,88 +4703,214 @@ const useDynamicHeight = (options) => {
4605
4703
  expose({
4606
4704
  resetScroll
4607
4705
  });
4608
- return { __sfc: true, props, emit, globalInjectData, popupInjectData, isHorizontalScreenOrientation, pageFullscreen, isFullscreen, dynamicContentHeightPercent, handleScroll, resetContentHeight, getOriginAppendTo, popupAppendTo, popupShowModal, getOriginPosition, popupPosition, wrapClass, wrapStyle, headerStyle, bodyWidth, bodyHeight, bodyClass, bodyStyle, wrapVisible, bodyVisible, wrapRef, innerRef, topicPopup, onBodyScroll, open, closeBody, close, onClickMask, back, onAfterLeave, resetScroll, ProductIconClose, ProductIconArrowLeft };
4706
+ return { __sfc: true, props, emit, globalInjectData, popupInjectData, isHorizontalScreenOrientation, pageFullscreen, screenOrientationMode, isFullscreen, dynamicContentHeightPercent, handleScroll, resetContentHeight, getOriginAppendTo, popupAppendTo, popupShowModal, getOriginPosition, popupPosition, wrapClass, wrapStyle, headerStyle, bodyWidth, bodyHeight, bodyClass, bodyStyle, wrapVisible, bodyVisible, wrapRef, innerRef, topicPopup, onBodyScroll, open, closeBody, close, onClickMask, back, onAfterLeave, resetScroll, ProductIconClose, ProductIconArrowLeft };
4609
4707
  }
4610
4708
  });
4611
4709
  const supportWebP = /* @__PURE__ */ (() => {
4612
- let A2;
4710
+ let e;
4613
4711
  return () => {
4614
- if (null == A2) try {
4615
- A2 = function() {
4616
- const A3 = document.createElement("canvas");
4617
- if (A3.getContext && A3.getContext("2d")) {
4618
- const e = "image/webp";
4619
- return 0 === A3.toDataURL(e).indexOf("data:" + e);
4712
+ if (null == e) try {
4713
+ e = function() {
4714
+ const e2 = document.createElement("canvas");
4715
+ if (e2.getContext && e2.getContext("2d")) {
4716
+ const A2 = "image/webp";
4717
+ return 0 === e2.toDataURL(A2).indexOf("data:" + A2);
4620
4718
  }
4621
4719
  return false;
4720
+ }() || function() {
4721
+ let e2 = false;
4722
+ const A2 = navigator.userAgent, t2 = /\bOS\s([\d_.]+)\slike\sMac\sOS\sX\b/.exec(A2);
4723
+ if (t2) e2 = parseInt(t2[1]) >= 14;
4724
+ else {
4725
+ const t3 = /\bVersion\/([\d.]+)\sSafari\b/.exec(A2);
4726
+ t3 && (e2 = parseInt(t3[1]) >= 16);
4727
+ }
4728
+ return e2;
4622
4729
  }();
4623
- } catch (e) {
4624
- A2 = false;
4730
+ } catch (A2) {
4731
+ e = false;
4625
4732
  }
4626
- return A2;
4733
+ return e;
4627
4734
  };
4628
4735
  })();
4629
- function getExtname(A2) {
4630
- const e = (A2 || "").split("."), t2 = e[e.length - 1];
4736
+ function getExtname(e) {
4737
+ const A2 = (e || "").split("."), t2 = A2[A2.length - 1];
4631
4738
  return t2 ? t2.toLowerCase() : "";
4632
4739
  }
4633
- function handleCompressOptions(A2) {
4634
- var e, t2;
4635
- const r2 = "number" == typeof A2 ? { width: A2 } : A2;
4636
- return r2.allowJPG = null === (e = r2.allowJPG) || void 0 === e || e, r2.allowWebP = null !== (t2 = r2.allowWebP) && void 0 !== t2 ? t2 : "auto", r2;
4740
+ function handleCompressOptions(e) {
4741
+ var A2, t2;
4742
+ const n2 = "number" == typeof e ? { width: e } : e;
4743
+ return n2.allowJPG = null === (A2 = n2.allowJPG) || void 0 === A2 || A2, n2.allowWebP = null !== (t2 = n2.allowWebP) && void 0 !== t2 ? t2 : "auto", n2;
4637
4744
  }
4638
- function createURLObject(A2) {
4639
- let e;
4745
+ function createURLObject(e) {
4746
+ let A2;
4640
4747
  if ("undefined" != typeof document) {
4641
4748
  const t2 = document.createElement("a");
4642
- t2.href = A2, e = t2;
4749
+ t2.href = e, A2 = t2;
4643
4750
  } else if ("function" == typeof URL) try {
4644
- e = new URL(/^\/\//.test(A2) ? "https:" + A2 : A2);
4645
- } catch (A3) {
4751
+ A2 = new URL(/^\/\//.test(e) ? "https:" + e : e);
4752
+ } catch (e2) {
4646
4753
  }
4647
- return e;
4754
+ return A2;
4648
4755
  }
4649
- function genOSSCompressParams(A2, e) {
4756
+ function genOSSCompressParams(e, A2) {
4650
4757
  let t2 = "";
4651
- return null == e.width && null == e.height || (t2 += "/resize", e.width && (t2 += ",w_" + e.width), e.height && (t2 += ",h_" + e.height), t2 += ",limit_1"), e.allowAVIF && "gif" !== A2 ? t2 += "/format,avif" : true === e.allowWebP || "auto" === e.allowWebP && supportWebP() ? t2 += "/format,webp/quality,Q_80" : e.allowJPG && "gif" !== A2 && (t2 += "/format,jpg/quality,Q_80"), t2;
4758
+ 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;
4652
4759
  }
4653
- function setOSSCompressParams(A2, e) {
4760
+ function setOSSCompressParams(e, A2) {
4654
4761
  let t2 = false;
4655
- return A2 = A2.replace(/([?&]x-oss-process)(?:=([^&]*))?/, (A3, r2, o2) => (t2 = true, /^image/.test(o2) ? r2 + "=" + o2.replace(/\/(?:resize|format|quality)[^/]*/gi, "") + e : A3)), t2 ? A2 : A2 + (-1 === A2.indexOf("?") ? "?" : "&") + "x-oss-process=image" + e;
4656
- }
4657
- function ossCompress(A2, e) {
4658
- const t2 = createURLObject(A2);
4659
- if (!t2) return A2;
4660
- if (!/\.videocc\.net$/i.test(t2.hostname)) return A2;
4661
- const r2 = genOSSCompressParams(getExtname(t2.pathname.split("/").pop()), handleCompressOptions(e));
4762
+ 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;
4763
+ }
4764
+ function ossCompress(e, A2) {
4765
+ const t2 = createURLObject(e);
4766
+ if (!t2) return e;
4767
+ const n2 = getExtname(t2.pathname.split("/").pop());
4768
+ if (!/\.videocc\.net$/i.test(t2.hostname) || "svg" === n2) return e;
4769
+ const r2 = genOSSCompressParams(n2, handleCompressOptions(A2));
4662
4770
  return r2 && (t2.search = setOSSCompressParams(t2.search, r2)), t2.href;
4663
4771
  }
4772
+ var ProductItemScene = /* @__PURE__ */ ((ProductItemScene2) => {
4773
+ ProductItemScene2["ProductList"] = "productList";
4774
+ ProductItemScene2["BigCard"] = "bigCard";
4775
+ ProductItemScene2["AggregateStation"] = "aggregateStation";
4776
+ return ProductItemScene2;
4777
+ })(ProductItemScene || {});
4778
+ const useProductTrack = (options) => {
4779
+ const { productTarget } = options;
4780
+ const { ProductType } = getProductTargetExport(productTarget);
4781
+ const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
4782
+ const trackedProductIds = ref({});
4783
+ const productListRef = ref(null);
4784
+ const productItemsRef = shallowRef([]);
4785
+ function setItemRef(el) {
4786
+ if (el) {
4787
+ productItemsRef.value.push(el);
4788
+ }
4789
+ }
4790
+ function trackProductViewEvent(productData) {
4791
+ const specAttrs = {
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
+ function getCommonSpecAttrs(productData) {
4845
+ return {
4846
+ clickTime: (/* @__PURE__ */ new Date()).getTime(),
4847
+ linkType: isMobile ? "mobile" : "pc",
4848
+ productName: productData.name,
4849
+ productId: productData.productId,
4850
+ productType: productData.productType,
4851
+ feature: JSON.stringify(productData.featureTags),
4852
+ price: productData.productType === ProductType.Normal ? productData.originPrice : "",
4853
+ realPrice: productData.productType === ProductType.Normal ? productData.realPrice : ""
4854
+ };
4855
+ }
4856
+ function trackProductItemClick(productData) {
4857
+ trackEvent({
4858
+ event_id: "product_list_item_click",
4859
+ event_type: "click",
4860
+ spec_attrs: __spreadValues({}, getCommonSpecAttrs(productData))
4861
+ });
4862
+ }
4863
+ function trackProductPushItemClick(productData) {
4864
+ trackEvent({
4865
+ event_id: "product_push_item_click",
4866
+ event_type: "click",
4867
+ spec_attrs: __spreadProps(__spreadValues({}, getCommonSpecAttrs(productData)), {
4868
+ pushId: productData.pushLogId || ""
4869
+ })
4870
+ });
4871
+ }
4872
+ function trackProductPushItemView(productData) {
4873
+ trackEvent({
4874
+ event_id: "product_push_item_view",
4875
+ event_type: "show",
4876
+ spec_attrs: {
4877
+ linkType: isMobile ? "mobile" : "pc",
4878
+ productId: productData.productId,
4879
+ pushId: productData.pushLogId || ""
4880
+ }
4881
+ });
4882
+ }
4883
+ return {
4884
+ productListRef,
4885
+ setItemRef,
4886
+ trackProduct,
4887
+ clearTrackedProducts,
4888
+ trackProductItemClick,
4889
+ trackProductPushItemClick,
4890
+ trackProductPushItemView
4891
+ };
4892
+ };
4664
4893
  const productItemProps = () => __spreadProps(__spreadValues({}, productProps()), {
4665
- product: PropUtils.object().isRequired
4894
+ product: PropUtils.object().isRequired,
4895
+ scene: PropUtils.enum()
4666
4896
  });
4667
4897
  const productItemEmits = () => ({
4668
- "click-explain": emitFunc(),
4669
4898
  "click-product-item": emitFunc(),
4670
- "direct-buy": emitFunc()
4899
+ "direct-buy": emitFunc(),
4900
+ "open-position-detail": emitFunc()
4671
4901
  });
4672
4902
  const useProductItem = (options) => {
4673
4903
  const { props, emit } = options;
4674
4904
  const { ProductType, ProductBuyType } = getProductTargetExport(props.productTarget);
4675
4905
  const { getEmitter } = useGlobalInject();
4676
- const productExplainEnabled = ref(false);
4906
+ const { productExplainEnabled, handleClickExplain } = useProductExplain({ props });
4907
+ const { trackProductItemClick, trackProductPushItemClick } = useProductTrack({ productTarget: props.productTarget });
4677
4908
  const isProductRedirectLinkDirectly = ref(false);
4678
4909
  const shouldEllipsisTitle = computed(() => {
4679
4910
  const { product } = props;
4680
4911
  return !!(product.name && product.featureTags.length && (product.description && product.productType !== ProductType.Position));
4681
4912
  });
4682
- function setProductExplainEnabled() {
4683
- return __async(this, null, function* () {
4684
- if (!props.productTarget) return;
4685
- const enabled = yield props.productTarget.getProductExplainEnabled();
4686
- productExplainEnabled.value = enabled;
4687
- });
4688
- }
4689
- function setIsProductRedirectLinkDirectly() {
4913
+ function getIsProductRedirectLinkDirectly() {
4690
4914
  return __async(this, null, function* () {
4691
4915
  const { product, productTarget } = props;
4692
4916
  if (!product || !productTarget) return false;
@@ -4694,11 +4918,13 @@ const useProductItem = (options) => {
4694
4918
  isProductRedirectLinkDirectly.value = product.productType === ProductType.Normal && product.buyType === ProductBuyType.Link && enabled;
4695
4919
  });
4696
4920
  }
4697
- function onClickExplain(product) {
4698
- emit("click-explain", product);
4699
- }
4700
4921
  function onClickProductItem() {
4701
4922
  emit("click-product-item", props.product);
4923
+ if (props.scene === ProductItemScene.BigCard) {
4924
+ trackProductPushItemClick(props.product);
4925
+ } else {
4926
+ trackProductItemClick(props.product);
4927
+ }
4702
4928
  if (props.product.productType !== ProductType.Finance) {
4703
4929
  getEmitter().emit(productEvents.OpenProductDetailPopup, props.product);
4704
4930
  }
@@ -4706,18 +4932,15 @@ const useProductItem = (options) => {
4706
4932
  function onDirectBuy(product) {
4707
4933
  emit("direct-buy", product);
4708
4934
  }
4709
- onMounted(() => {
4710
- setProductExplainEnabled();
4711
- });
4712
4935
  watchEffect(() => {
4713
- setIsProductRedirectLinkDirectly();
4936
+ getIsProductRedirectLinkDirectly();
4714
4937
  });
4715
4938
  return {
4716
4939
  productExplainEnabled,
4717
4940
  isProductRedirectLinkDirectly,
4718
4941
  shouldEllipsisTitle,
4719
4942
  onDirectBuy,
4720
- onClickExplain,
4943
+ handleClickExplain,
4721
4944
  onClickProductItem
4722
4945
  };
4723
4946
  };
@@ -4727,7 +4950,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4727
4950
  emits: productItemEmits(),
4728
4951
  setup(__props, { emit }) {
4729
4952
  const props = __props;
4730
- const { ProductExplainStatus } = getProductTargetExport(props.productTarget);
4953
+ const { ProductExplainStatus, ProductType } = getProductTargetExport(props.productTarget);
4731
4954
  const { $t } = useI18n();
4732
4955
  const { isSoldOut } = useProductStock({
4733
4956
  product: () => props.product
@@ -4737,22 +4960,25 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4737
4960
  isProductRedirectLinkDirectly,
4738
4961
  shouldEllipsisTitle,
4739
4962
  onDirectBuy,
4740
- onClickExplain,
4741
- onClickProductItem
4963
+ onClickProductItem,
4964
+ handleClickExplain
4742
4965
  } = useProductItem({
4743
4966
  props,
4744
4967
  emit
4745
4968
  });
4746
- return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy, onClickExplain, onClickProductItem, ProductExplain, ProductTitle, ProductFeatureTag, ProductPrice, ProductButton, ossCompress };
4969
+ return { __sfc: true, props, emit, ProductExplainStatus, ProductType, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy, onClickProductItem, handleClickExplain, ProductExplain, ProductTitle, ProductFeatureTag, ProductPrice, ProductButton, ossCompress, ProductItemScene };
4747
4970
  }
4748
4971
  });
4749
4972
  var _sfc_render$2 = function render9() {
4750
4973
  var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
4751
- 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.onClickExplain } }) : _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.onClickExplain } }) : _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) {
4974
+ 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) {
4752
4975
  return _c(_setup.ProductFeatureTag, { key: index, attrs: { "tag": tag } });
4753
- }), 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.onClickExplain } }) : _vm._e(), _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 }) {
4976
+ }), 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 } }), _vm.product.productType === _setup.ProductType.Position && _vm.productConfig.isProductWebview ? _c("div", { staticClass: "plv-product-item__position-detail-button", on: { "click": function($event) {
4977
+ $event.stopPropagation();
4978
+ return _setup.emit("open-position-detail", _vm.product);
4979
+ } } }, [_vm._v(" " + _vm._s(_setup.$t("product.position.detail")) + " ")]) : _vm._e(), _setup.productExplainEnabled && _vm.product.explainStatus === _setup.ProductExplainStatus.Explained && !_vm.product.cover ? _c(_setup.ProductExplain, { staticClass: "plv-product-item__explained--no-cover", class: { "plv-product-item__explained--no-cover-position": _vm.product.productType === _setup.ProductType.Position && _vm.productConfig.isProductWebview }, 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 }) {
4754
4980
  return [_c("button", { staticClass: "plv-product-item__buy-button", class: { "plv-product-item__buy-button--disabled": disabled } }, [_vm._v(" " + _vm._s(buttonText) + " ")])];
4755
- } }]) })], 1)])])]);
4981
+ } }], null, false, 477326030) }) : _vm._e()], 1)])])]);
4756
4982
  };
4757
4983
  var _sfc_staticRenderFns$2 = [];
4758
4984
  var __component__$2 = /* @__PURE__ */ normalizeComponent(
@@ -4779,79 +5005,6 @@ var __component__$1 = /* @__PURE__ */ normalizeComponent(
4779
5005
  _sfc_staticRenderFns$1
4780
5006
  );
4781
5007
  const ProductEmpty = __component__$1.exports;
4782
- const useProductTrack = (options) => {
4783
- const { productTarget, ProductType } = options;
4784
- const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
4785
- const trackedProductIds = ref({});
4786
- const productListRef = ref(null);
4787
- const productItemsRef = shallowRef([]);
4788
- function setItemRef(el) {
4789
- if (el) {
4790
- productItemsRef.value.push(el);
4791
- }
4792
- }
4793
- function trackProductViewEvent(productData) {
4794
- const specAttrs = {
4795
- exposureTime: (/* @__PURE__ */ new Date()).getTime(),
4796
- name: productData.name,
4797
- realPrice: productData.productType === ProductType.Normal ? productData.realPrice : "",
4798
- productId: productData.productId,
4799
- productType: productData.productType,
4800
- productFeature: JSON.stringify(productData.featureTags)
4801
- };
4802
- if (productData.productType === ProductType.Normal && productData.originPrice !== void 0) {
4803
- specAttrs.price = productData.originPrice;
4804
- }
4805
- trackEvent({
4806
- event_id: "product_list_item_view",
4807
- event_type: "show",
4808
- spec_attrs: specAttrs
4809
- });
4810
- }
4811
- function isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom) {
4812
- const offsetTop = element.offsetTop;
4813
- const offsetHeight = element.offsetHeight;
4814
- const elementBottom = offsetTop + offsetHeight;
4815
- const isFullyAbove = elementBottom <= containerScrollTop;
4816
- const isBottomBelowViewportBottom = containerViewportBottom < elementBottom;
4817
- return !isFullyAbove && !isBottomBelowViewportBottom;
4818
- }
4819
- function checkAndTrackProductItem(itemInstance, containerScrollTop, containerViewportBottom) {
4820
- if (!itemInstance || !itemInstance.$el || !itemInstance.product || !itemInstance.product.productId) {
4821
- return;
4822
- }
4823
- const element = itemInstance.$el;
4824
- const productId = itemInstance.product.productId;
4825
- const isVisible = isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom);
4826
- if (isVisible && !trackedProductIds.value[productId]) {
4827
- trackedProductIds.value = __spreadProps(__spreadValues({}, trackedProductIds.value), { [productId]: true });
4828
- trackProductViewEvent(itemInstance.product);
4829
- }
4830
- }
4831
- function trackProduct() {
4832
- return __async(this, null, function* () {
4833
- yield nextTick();
4834
- const container = productListRef.value;
4835
- if (!container || !productItemsRef.value.length) return;
4836
- const scrollTop = container.scrollTop;
4837
- const scrollClientHeight = container.clientHeight;
4838
- const viewportBottom = scrollTop + scrollClientHeight;
4839
- productItemsRef.value.forEach((itemInstance) => {
4840
- checkAndTrackProductItem(itemInstance, scrollTop, viewportBottom);
4841
- });
4842
- });
4843
- }
4844
- function clearTrackedProducts() {
4845
- trackedProductIds.value = {};
4846
- productItemsRef.value = [];
4847
- }
4848
- return {
4849
- productListRef,
4850
- setItemRef,
4851
- trackProduct,
4852
- clearTrackedProducts
4853
- };
4854
- };
4855
5008
  const useTargetEventEmitter = (eventEmitter, listeners) => {
4856
5009
  onMounted(() => {
4857
5010
  if (!eventEmitter) return;
@@ -4874,7 +5027,7 @@ const useProductList = (options) => {
4874
5027
  const { props } = options;
4875
5028
  const { getEmitter } = useGlobalInject();
4876
5029
  const { ProductStatus, ProductType, ProductEvents } = getProductTargetExport(props.productTarget);
4877
- const { productListRef, setItemRef, trackProduct } = useProductTrack({ productTarget: props.productTarget, ProductType });
5030
+ const { productListRef, setItemRef, trackProduct } = useProductTrack({ productTarget: props.productTarget });
4878
5031
  const { isSupportPay, getPayProviders } = usePayment({ props });
4879
5032
  const pageNumber = ref(1);
4880
5033
  const pageSize = ref(10);
@@ -4935,6 +5088,7 @@ const useProductList = (options) => {
4935
5088
  page: pageNumber.value,
4936
5089
  count: pageSize.value
4937
5090
  });
5091
+ console.info("商品列表:", data.contents);
4938
5092
  toppingProduct.value = data.toppingProduct;
4939
5093
  isNoMore.value = data.contents.length < pageSize.value;
4940
5094
  setProductTotal(data.total);
@@ -4985,18 +5139,6 @@ const useProductList = (options) => {
4985
5139
  }
4986
5140
  });
4987
5141
  }
4988
- function handleClickExplain(product) {
4989
- return __async(this, null, function* () {
4990
- if (typeof props.productConfig.customClickExplainHandler === "function") {
4991
- props.productConfig.customClickExplainHandler(product);
4992
- return;
4993
- }
4994
- const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
4995
- if (url) {
4996
- window.open(url, "_blank");
4997
- }
4998
- });
4999
- }
5000
5142
  function getProductOrderEnabled() {
5001
5143
  return __async(this, null, function* () {
5002
5144
  if (!props.productTarget) return;
@@ -5042,10 +5184,24 @@ const useProductList = (options) => {
5042
5184
  const productTarget = props.productTarget;
5043
5185
  if (!productTarget) return;
5044
5186
  const ProductEvents2 = productTarget.ProductEvents;
5187
+ productTarget.eventEmitter.on(ProductEvents2.OnSaleProduct, refreshProductList);
5188
+ productTarget.eventEmitter.on(ProductEvents2.OffSaleProduct, refreshProductList);
5189
+ productTarget.eventEmitter.on(ProductEvents2.DeleteProduct, refreshProductList);
5190
+ productTarget.eventEmitter.on(ProductEvents2.AddProduct, refreshProductList);
5191
+ productTarget.eventEmitter.on(ProductEvents2.ChangeProduct, refreshProductList);
5192
+ productTarget.eventEmitter.on(ProductEvents2.MoveProduct, refreshProductList);
5193
+ productTarget.eventEmitter.on(ProductEvents2.ChangeProductRank, refreshProductList);
5045
5194
  productTarget.eventEmitter.on(ProductEvents2.RefreshProductList, refreshProductList);
5046
5195
  }
5047
5196
  function unbindProductEvent() {
5048
5197
  const ProductEvents2 = props.productTarget.ProductEvents;
5198
+ props.productTarget.eventEmitter.off(ProductEvents2.OnSaleProduct, refreshProductList);
5199
+ props.productTarget.eventEmitter.off(ProductEvents2.OffSaleProduct, refreshProductList);
5200
+ props.productTarget.eventEmitter.off(ProductEvents2.DeleteProduct, refreshProductList);
5201
+ props.productTarget.eventEmitter.off(ProductEvents2.AddProduct, refreshProductList);
5202
+ props.productTarget.eventEmitter.off(ProductEvents2.ChangeProduct, refreshProductList);
5203
+ props.productTarget.eventEmitter.off(ProductEvents2.MoveProduct, refreshProductList);
5204
+ props.productTarget.eventEmitter.off(ProductEvents2.ChangeProductRank, refreshProductList);
5049
5205
  props.productTarget.eventEmitter.off(ProductEvents2.RefreshProductList, refreshProductList);
5050
5206
  }
5051
5207
  function init() {
@@ -5103,7 +5259,8 @@ const useProductList = (options) => {
5103
5259
  }
5104
5260
  });
5105
5261
  const instance = {
5106
- init
5262
+ init,
5263
+ refreshProductList
5107
5264
  };
5108
5265
  return {
5109
5266
  instance,
@@ -5120,14 +5277,16 @@ const useProductList = (options) => {
5120
5277
  productList: productList2,
5121
5278
  toppingProduct,
5122
5279
  onScroll,
5123
- handleClickExplain,
5124
5280
  openOrderList
5125
5281
  };
5126
5282
  };
5127
5283
  const _sfc_main = /* @__PURE__ */ defineComponent({
5128
5284
  __name: "product-list",
5129
5285
  props: productListProps(),
5130
- setup(__props, { expose }) {
5286
+ emits: {
5287
+ "open-position-detail": emitFunc()
5288
+ },
5289
+ setup(__props, { expose, emit }) {
5131
5290
  const props = __props;
5132
5291
  const { $t } = useI18n();
5133
5292
  const closeProductListPopup = inject("closeProductListPopup", () => {
@@ -5156,11 +5315,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5156
5315
  productTotal,
5157
5316
  orderEntranceVisible,
5158
5317
  onScroll,
5159
- handleClickExplain,
5160
5318
  openOrderList
5161
5319
  } = useProductList({ props });
5162
5320
  expose(instance);
5163
- return { __sfc: true, props, $t, closeProductListPopup, emitNotSupportDirectBuy, handleDirectBuy, getPayProviders, instance, productListRef, productTagPanelRef, setItemRef, initialLoading, searchKeyword, activeTagId, isSearchMode, isLoading, productList: productList2, productTotal, orderEntranceVisible, onScroll, handleClickExplain, openOrderList, FormInput, FormTheme, Loading, ProductIconClose, ProductIconOrderEnter, ProductIconSearch, ProductIconProduct, ProductTagPanel, isMobile, ProductItem, ProductEmpty };
5321
+ return { __sfc: true, props, emit, $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 };
5164
5322
  }
5165
5323
  });
5166
5324
  var _sfc_render = function render11() {
@@ -5170,7 +5328,9 @@ var _sfc_render = function render11() {
5170
5328
  }, 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) {
5171
5329
  _setup.activeTagId = $$v;
5172
5330
  }, 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) {
5173
- return _c(_setup.ProductItem, { key: index, ref: _setup.setItemRef, refInFor: true, attrs: { "product": product, "product-target": _vm.productTarget, "product-config": _vm.productConfig }, on: { "click-explain": _setup.handleClickExplain, "direct-buy": _setup.handleDirectBuy } });
5331
+ 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, "open-position-detail": function($event) {
5332
+ return _setup.emit("open-position-detail", $event);
5333
+ } } });
5174
5334
  }), 1) : _c(_setup.ProductEmpty)] : _vm._e(), _setup.isLoading ? _c("div", { staticClass: "plv-product-list__loading" }, [_c(_setup.Loading)], 1) : _vm._e()], 2);
5175
5335
  };
5176
5336
  var _sfc_staticRenderFns = [];
@@ -5185,8 +5345,8 @@ console.log(
5185
5345
  "%c@polyv/product-ui",
5186
5346
  "background:#409EFF;padding: 2px 6px;border-radius: 3px;color: #fff",
5187
5347
  "[component: product-list]",
5188
- "[version: 1.0.0-rc-20250612.4]",
5189
- "[buildTime: 2025-06-12 09:58:14]"
5348
+ "[version: 1.2.0-rc-20250724.2]",
5349
+ "[buildTime: 2025-07-24 03:57:10]"
5190
5350
  );
5191
5351
  export {
5192
5352
  productList as default