@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-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-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-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}')),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();
1
+ !function(){"use strict";try{if("undefined"!=typeof document){var o=document.createElement("style");o.appendChild(document.createTextNode('@charset "UTF-8";.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}')),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 { onMounted, onBeforeUnmount, inject, computed, defineComponent, ref, watch, nextTick, unref, watchEffect } from "vue";
42
+ import { onMounted, onBeforeUnmount, inject, computed, defineComponent, ref, watch, nextTick, unref, shallowRef, watchEffect } from "vue";
43
43
  /*!
44
44
  * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
45
45
  *
@@ -825,6 +825,7 @@ function get(object, path, defaultValue) {
825
825
  }
826
826
  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": "已确认收货" };
827
827
  const addressEdit$5 = { "name": "联系人", "namePlaceholder": "请填写联系人姓名", "choiceAddress": "选择地区", "addressPlaceholder": "请选择地区", "phone": "手机号码", "phonePlaceholder": "请填写手机号码", "phoneError": "请输入正确的手机号", "addressDetail": "详细地址", "addressDetailPlaceholder": "请填写详细地址", "error": "请完善信息", "submit": "保存", "deleteConfirm": "确定要删除该地址吗?", "addAddress": "添加地址", "editAddress": "修改地址", "deleteAddress": "删除地址", "addSuccess": "保存成功", "addError": "保存失败", "editSuccess": "修改成功", "editError": "修改失败" };
828
+ const bigCard$5 = { "title": "商品推荐" };
828
829
  const zhCNLang = {
829
830
  "common.confirm": "确认",
830
831
  "common.cancel": "取消",
@@ -851,11 +852,14 @@ const zhCNLang = {
851
852
  "product.disableBuy": "暂不支持购买",
852
853
  "product.allProduct": "全部商品",
853
854
  "product.stock.soldOut": "已抢光",
855
+ "product.position.detail": "职位详情",
854
856
  order: order$5,
855
- addressEdit: addressEdit$5
857
+ addressEdit: addressEdit$5,
858
+ bigCard: bigCard$5
856
859
  };
857
860
  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": "已確認收貨" };
858
861
  const addressEdit$4 = { "name": "聯絡人", "namePlaceholder": "請填寫聯絡人", "choiceAddress": "選擇地區", "addressPlaceholder": "請選擇地區", "phone": "手機號碼", "phonePlaceholder": "請填寫手機號碼", "phoneError": "請輸入正確的手機號", "addressDetail": "詳細地址", "addressDetailPlaceholder": "請填寫詳細地址", "error": "請完善信息", "submit": "保存", "deleteConfirm": "確定要刪除該地址嗎?", "deleteAddress": "刪除地址", "addAddress": "添加地址", "editAddress": "修改地址", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "修改成功", "editError": "修改失敗" };
862
+ const bigCard$4 = { "title": "商品推薦" };
859
863
  const zhTWLang = {
860
864
  "common.confirm": "確認",
861
865
  "common.cancel": "取消",
@@ -882,11 +886,14 @@ const zhTWLang = {
882
886
  "product.disableBuy": "暫不支持購買",
883
887
  "product.allProduct": "全部商品",
884
888
  "product.stock.soldOut": "已搶光",
889
+ "product.position.detail": "職位詳情",
885
890
  order: order$4,
886
- addressEdit: addressEdit$4
891
+ addressEdit: addressEdit$4,
892
+ bigCard: bigCard$4
887
893
  };
888
894
  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" };
889
895
  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" };
896
+ const bigCard$3 = { "title": "Top Picks" };
890
897
  const enLang = {
891
898
  "common.confirm": "Confirm",
892
899
  "common.cancel": "Cancel",
@@ -913,11 +920,14 @@ const enLang = {
913
920
  "product.disableBuy": "Purchase not supported",
914
921
  "product.allProduct": "Products",
915
922
  "product.stock.soldOut": "Sold Out",
923
+ "product.position.detail": "Job Details",
916
924
  order: order$3,
917
- addressEdit: addressEdit$3
925
+ addressEdit: addressEdit$3,
926
+ bigCard: bigCard$3
918
927
  };
919
928
  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": "確認受け取り完了" };
920
929
  const addressEdit$2 = { "name": "連絡先", "namePlaceholder": "連絡先を入力", "choiceAddress": "地域を選択", "addressPlaceholder": "地域を選択", "phone": "電話番号", "phonePlaceholder": "電話番号を入力", "phoneError": "正しい電話番号を入力してください", "addressDetail": "詳細住所", "addressDetailPlaceholder": "詳細住所を入力", "error": "情報を入力してください", "submit": "保存", "deleteConfirm": "この住所を削除しますか?", "deleteAddress": "住所を削除", "addAddress": "住所を追加", "editAddress": "住所を編集", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "編集成功", "editError": "編集失敗" };
930
+ const bigCard$2 = { "title": "商品推薦" };
921
931
  const jaLang = {
922
932
  "common.confirm": "確認",
923
933
  "common.cancel": "キャンセル",
@@ -944,11 +954,14 @@ const jaLang = {
944
954
  "product.disableBuy": "購入不可",
945
955
  "product.allProduct": "すべての商品",
946
956
  "product.stock.soldOut": "売り切れ",
957
+ "product.position.detail": "職務詳細",
947
958
  order: order$2,
948
- addressEdit: addressEdit$2
959
+ addressEdit: addressEdit$2,
960
+ bigCard: bigCard$2
949
961
  };
950
962
  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": "확인 받기 완료" };
951
963
  const addressEdit$1 = { "name": "연락처", "namePlaceholder": "연락처 입력", "choiceAddress": "지역 선택", "addressPlaceholder": "지역 선택", "phone": "전화번호", "phonePlaceholder": "전화번호 입력", "phoneError": "올바른 전화번호를 입력해주세요", "addressDetail": "상세 주소", "addressDetailPlaceholder": "상세 주소 입력", "error": "정보를 입력해주세요.", "submit": "저장", "deleteConfirm": "주소를 삭제하시겠습니까?", "deleteAddress": "주소 삭제", "addAddress": "주소 추가", "editAddress": "주소 수정", "addSuccess": "저장 성공", "addError": "저장 실패", "editSuccess": "수정 성공", "editError": "수정 실패" };
964
+ const bigCard$1 = { "title": "상품 추천" };
952
965
  const koLang = {
953
966
  "common.confirm": "확인",
954
967
  "common.cancel": "취소",
@@ -975,11 +988,14 @@ const koLang = {
975
988
  "product.disableBuy": "구매 불가",
976
989
  "product.allProduct": "모든 상품",
977
990
  "product.stock.soldOut": "품절",
991
+ "product.position.detail": "직무 상세",
978
992
  order: order$1,
979
- addressEdit: addressEdit$1
993
+ addressEdit: addressEdit$1,
994
+ bigCard: bigCard$1
980
995
  };
981
996
  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": "Получение подтверждено" };
982
997
  const addressEdit = { "name": "Контактное лицо", "namePlaceholder": "Пожалуйста, введите имя контактного лица", "choiceAddress": "Выберите регион", "addressPlaceholder": "Пожалуйста, выберите регион", "phone": "Номер телефона", "phonePlaceholder": "Пожалуйста, введите номер телефона", "phoneError": "Пожалуйста, введите правильный номер телефона", "addressDetail": "Подробный адрес", "addressDetailPlaceholder": "Пожалуйста, заполните подробный адрес", "error": "Пожалуйста, дополните информацию", "submit": "Сохранить", "deleteConfirm": "Вы уверены, что хотите удалить этот адрес?", "addAddress": "Добавить адрес", "editAddress": "Изменить адрес", "deleteAddress": "Удалить адрес", "addSuccess": "Успешно сохранено", "addError": "Не удалось сохранить", "editSuccess": "Успешно изменено", "editError": "Не удалось изменить" };
998
+ const bigCard = { "title": "Товары" };
983
999
  const ruLang = {
984
1000
  "common.confirm": "Подтвердить",
985
1001
  "common.cancel": "Отмена",
@@ -1006,8 +1022,10 @@ const ruLang = {
1006
1022
  "product.disableBuy": "Покупка временно недоступна",
1007
1023
  "product.allProduct": "Все товары",
1008
1024
  "product.stock.soldOut": "Распродано",
1025
+ "product.position.detail": "Детали вакансии",
1009
1026
  order,
1010
- addressEdit
1027
+ addressEdit,
1028
+ bigCard
1011
1029
  };
1012
1030
  const fullI18nData = {
1013
1031
  [LangType.ZH_CN]: zhCNLang,
@@ -1199,12 +1217,12 @@ function getCurrentUAInfo() {
1199
1217
  return currentUAInfo || (currentUAInfo = Object.freeze("undefined" != typeof window ? new UAInfo(window.navigator.userAgent, window.navigator) : new UAInfo(""))), currentUAInfo;
1200
1218
  }
1201
1219
  const ua = navigator.userAgent.toLowerCase();
1202
- const uaInfo = getCurrentUAInfo();
1203
- const isAndroid = uaInfo.os.isAndroid;
1204
- const isIOS = uaInfo.os.isIOS;
1205
- const weixinVersion = uaInfo.client.version;
1206
- const isWeixin = uaInfo.client.isWx;
1207
- const isWorkWeixin = uaInfo.client.isWxWork;
1220
+ const uaInfo$1 = getCurrentUAInfo();
1221
+ const isAndroid$1 = uaInfo$1.os.isAndroid;
1222
+ const isIOS$1 = uaInfo$1.os.isIOS;
1223
+ const weixinVersion = uaInfo$1.client.version;
1224
+ const isWeixin = uaInfo$1.client.isWx;
1225
+ const isWorkWeixin = uaInfo$1.client.isWxWork;
1208
1226
  const isPcMiniProgram = (isWeixin || isWorkWeixin) && /miniprogramenv/.test(ua);
1209
1227
  function __isMobile() {
1210
1228
  const ua2 = navigator.userAgent;
@@ -1221,7 +1239,7 @@ function __isMobile() {
1221
1239
  function __isTablet() {
1222
1240
  const ua2 = navigator.userAgent;
1223
1241
  if (/(?:iPad|PlayBook)/.test(ua2)) return true;
1224
- if (uaInfo.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
1242
+ if (uaInfo$1.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
1225
1243
  return false;
1226
1244
  }
1227
1245
  const isMob = __isMobile();
@@ -1878,7 +1896,8 @@ function getProductTargetExport(productTarget) {
1878
1896
  ProductExplainStatus: productTarget.ProductExplainStatus,
1879
1897
  ProductMediaType: productTarget.ProductMediaType,
1880
1898
  ProductDeliveryType: productTarget.ProductDeliveryType,
1881
- ProductEvents: productTarget.ProductEvents
1899
+ ProductEvents: productTarget.ProductEvents,
1900
+ ProductPushRule: productTarget.ProductPushRule
1882
1901
  };
1883
1902
  }
1884
1903
  const PRODUCT_PROVIDE_KEY = Symbol("PRODUCT_PROVIDE_KEY");
@@ -1904,17 +1923,25 @@ const useProductStock = (options) => {
1904
1923
  ProductBuyType = result.ProductBuyType;
1905
1924
  }
1906
1925
  function getStock(target) {
1907
- if (!ProductType || !ProductBuyType) {
1926
+ if (!ProductType || !ProductBuyType || !target) {
1908
1927
  return {
1909
1928
  enabled: false,
1910
1929
  stock: 0
1911
1930
  };
1912
1931
  }
1913
- if ((target == null ? void 0 : target.productType) === ProductType.Normal && target.buyType === ProductBuyType.DirectBuy && (target == null ? void 0 : target.stockEnabled)) {
1914
- return {
1915
- enabled: true,
1916
- stock: target.stock
1917
- };
1932
+ if (target.productType === ProductType.Normal) {
1933
+ if (target.buyType === ProductBuyType.Link && target.forceShowSoldOut) {
1934
+ return {
1935
+ enabled: true,
1936
+ stock: 0
1937
+ };
1938
+ }
1939
+ if (target.buyType === ProductBuyType.DirectBuy && (target == null ? void 0 : target.stockEnabled)) {
1940
+ return {
1941
+ enabled: true,
1942
+ stock: target.stock
1943
+ };
1944
+ }
1918
1945
  }
1919
1946
  return {
1920
1947
  enabled: false,
@@ -1938,6 +1965,37 @@ const useProductStock = (options) => {
1938
1965
  isSoldOut
1939
1966
  };
1940
1967
  };
1968
+ const useProductExplain = (options) => {
1969
+ const { props } = options;
1970
+ const productExplainEnabled = ref(false);
1971
+ function getProductExplainEnabled() {
1972
+ return __async(this, null, function* () {
1973
+ if (!props.productTarget) return;
1974
+ const enabled = yield props.productTarget.getProductExplainEnabled();
1975
+ productExplainEnabled.value = enabled;
1976
+ });
1977
+ }
1978
+ function handleClickExplain(product) {
1979
+ return __async(this, null, function* () {
1980
+ if (typeof props.productConfig.customClickExplainHandler === "function") {
1981
+ props.productConfig.customClickExplainHandler(product);
1982
+ return;
1983
+ }
1984
+ if (!props.productTarget) return;
1985
+ const url = yield props.productTarget.generateProductExplainPageUrl({ productId: product.productId });
1986
+ if (url) {
1987
+ window.open(url, "_blank");
1988
+ }
1989
+ });
1990
+ }
1991
+ onMounted(() => {
1992
+ getProductExplainEnabled();
1993
+ });
1994
+ return {
1995
+ productExplainEnabled,
1996
+ handleClickExplain
1997
+ };
1998
+ };
1941
1999
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1942
2000
  __name: "product-price",
1943
2001
  props: {
@@ -1969,12 +2027,22 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1969
2027
  if (isFreeProduct.value) return $t("product.price.free");
1970
2028
  return props.product.realPrice;
1971
2029
  });
1972
- return { __sfc: true, props, $t, ProductType, ProductPriceType, isFreeProduct, hiddenPriceMarks, displayPrice };
2030
+ const originPrice = computed(() => {
2031
+ if (!props.product || props.product.productType !== ProductType.Normal) return;
2032
+ if (props.product.originPriceType === ProductPriceType.Amount) {
2033
+ if (!props.product.originPrice) {
2034
+ return;
2035
+ }
2036
+ return `¥${props.product.originPrice}`;
2037
+ }
2038
+ return props.product.customOriginalPrice;
2039
+ });
2040
+ return { __sfc: true, props, $t, ProductType, ProductPriceType, isFreeProduct, hiddenPriceMarks, displayPrice, originPrice };
1973
2041
  }
1974
2042
  });
1975
2043
  var _sfc_render$2 = function render4() {
1976
2044
  var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
1977
- 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();
2045
+ 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();
1978
2046
  };
1979
2047
  var _sfc_staticRenderFns$2 = [];
1980
2048
  var __component__$2 = /* @__PURE__ */ normalizeComponent(
@@ -2031,6 +2099,104 @@ function concat(i2, r2, t2) {
2031
2099
  let e = n2.search || "";
2032
2100
  return e && "&" !== e.slice(-1) && (e += "&"), e += r2, n2.search = e, joinURL(n2);
2033
2101
  }
2102
+ var __awaiter = function(i2, n2, o2, t2) {
2103
+ return new (o2 || (o2 = Promise))(function(e, a2) {
2104
+ function r2(i3) {
2105
+ try {
2106
+ k2(t2.next(i3));
2107
+ } catch (i4) {
2108
+ a2(i4);
2109
+ }
2110
+ }
2111
+ function l2(i3) {
2112
+ try {
2113
+ k2(t2.throw(i3));
2114
+ } catch (i4) {
2115
+ a2(i4);
2116
+ }
2117
+ }
2118
+ function k2(i3) {
2119
+ var n3;
2120
+ i3.done ? e(i3.value) : (n3 = i3.value, n3 instanceof o2 ? n3 : new o2(function(i4) {
2121
+ i4(n3);
2122
+ })).then(r2, l2);
2123
+ }
2124
+ k2((t2 = t2.apply(i2, n2 || [])).next());
2125
+ });
2126
+ };
2127
+ const uaInfo = getCurrentUAInfo();
2128
+ const isAndroid = uaInfo.os.isAndroid;
2129
+ const isIOS = uaInfo.os.isIOS;
2130
+ var LinkType;
2131
+ !function(i2) {
2132
+ i2[i2.Normal = 10] = "Normal", i2[i2.MultiPlatform = 11] = "MultiPlatform", i2[i2.Native = 12] = "Native";
2133
+ }(LinkType || (LinkType = {}));
2134
+ var LinkJumpWay;
2135
+ function getNativeToPointMallFn() {
2136
+ var i2, n2, o2, t2;
2137
+ 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;
2138
+ }
2139
+ function toNativeLink(i2) {
2140
+ const { androidLink: n2, iosLink: o2, otherLink: t2 } = i2, e = getNativeToPointMallFn();
2141
+ if (e) {
2142
+ let i3 = isAndroid ? n2 : o2;
2143
+ const t3 = encodeURIComponent(location.href);
2144
+ i3 = concat(i3, { plt_back_uri: t3 });
2145
+ e(JSON.stringify({ url: i3 }));
2146
+ } else window.open(t2, "_blank", "noopener=yes");
2147
+ }
2148
+ function toPlvWebviewBridge(i2) {
2149
+ return __awaiter(this, void 0, void 0, function* () {
2150
+ const { getPlvWebviewSmallWindowSize: n2, getPlvWebviewBridge: o2 } = i2, t2 = (null == n2 ? void 0 : n2()) || { width: 90, height: 160 }, e = yield null == o2 ? void 0 : o2();
2151
+ e && e.sendData("clickProduct", { width: t2.width, height: t2.height, newPage: true, link: i2.link, data: i2.data });
2152
+ });
2153
+ }
2154
+ function toMultiPlatformLink(i2) {
2155
+ return __awaiter(this, void 0, void 0, function* () {
2156
+ 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;
2157
+ let u2 = false;
2158
+ try {
2159
+ u2 = (yield null == o2 ? void 0 : o2()) || false;
2160
+ } catch (i3) {
2161
+ u2 = false;
2162
+ }
2163
+ u2 && l2 && t2 ? t2(formatLink(l2, a2)) : s2 && k2 ? e(formatLink(k2, a2), LinkJumpWay.NewWindow) : !s2 && d2 && e(formatLink(d2, a2), LinkJumpWay.NewWindow);
2164
+ });
2165
+ }
2166
+ !function(i2) {
2167
+ i2.PopUp = "POP_UP", i2.NewWindow = "NEW_WINDOW", i2.CurrentWindow = "CURRENT_WINDOW";
2168
+ }(LinkJumpWay || (LinkJumpWay = {}));
2169
+ function formatLink(i2, n2) {
2170
+ let o2 = {};
2171
+ if (n2) {
2172
+ const t2 = n2(i2);
2173
+ o2 = Object.assign({}, o2, t2);
2174
+ }
2175
+ return concat(i2, o2);
2176
+ }
2177
+ function navigateToLink(i2) {
2178
+ 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;
2179
+ if (s2 !== LinkType.Native) {
2180
+ if (u2) {
2181
+ let i3 = "";
2182
+ const { link: o3, mobileLink: t3, mobileAppLink: r3, wxMiniprogramOriginalId: l3, wxMiniprogramLink: d3 } = n2;
2183
+ switch (s2) {
2184
+ case LinkType.Normal:
2185
+ i3 = o3;
2186
+ break;
2187
+ case LinkType.MultiPlatform:
2188
+ i3 = r3 || t3;
2189
+ }
2190
+ let u3 = null;
2191
+ 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 });
2192
+ }
2193
+ if (s2 !== LinkType.Normal) s2 === LinkType.MultiPlatform && toMultiPlatformLink({ linkData: n2, getLinkParams: k2, isWxMiniProgramEnv: r2, toWxMiniProgram: l2, openLink: o2, isMobile: d2 });
2194
+ else {
2195
+ const { link: i3, jumpWay: t3 } = n2;
2196
+ o2(formatLink(i3, k2), t3);
2197
+ }
2198
+ } else toNativeLink({ androidLink: formatLink(n2.androidLink, k2), iosLink: formatLink(n2.iosLink, k2), otherLink: formatLink(n2.otherLink, k2) });
2199
+ }
2034
2200
  const useTrackEvent = (iarCore) => {
2035
2201
  const { injectData } = useGlobalInject();
2036
2202
  function trackEvent(data) {
@@ -2044,7 +2210,7 @@ const useTrackEvent = (iarCore) => {
2044
2210
  trackEvent
2045
2211
  };
2046
2212
  };
2047
- const htmlChars = ['"', "'", "&", "<", ">"], htmlEntities = ["&quot;", "&#39;", "&amp;", "&lt;", "&gt;"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
2213
+ const htmlChars = ['"', "'", "&", "<", ">", " "], htmlEntities = ["&quot;", "&#39;", "&amp;", "&lt;", "&gt;", "&nbsp;"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
2048
2214
  htmlChars.forEach((n2, e) => {
2049
2215
  charsToEntities[n2] = htmlEntities[e], entitiesToChars[htmlEntities[e]] = n2;
2050
2216
  });
@@ -2099,7 +2265,7 @@ const useWeixinButton = (hookOptions = {}) => {
2099
2265
  }
2100
2266
  const wx = yield injectData.getWeixinSdk();
2101
2267
  (_a = wx == null ? void 0 : wx.miniProgram) == null ? void 0 : _a.navigateTo({
2102
- url
2268
+ url: url.startsWith("/") ? url : `/${url}`
2103
2269
  });
2104
2270
  return;
2105
2271
  });
@@ -2154,7 +2320,9 @@ const useWeixinButton = (hookOptions = {}) => {
2154
2320
  watch(
2155
2321
  () => [weixinBtnRef.value, supportWxOpenLaunchWeapp.value, buttonOptions.value],
2156
2322
  () => {
2157
- createWxMiniProgramButton();
2323
+ setTimeout(() => {
2324
+ createWxMiniProgramButton();
2325
+ }, 500);
2158
2326
  },
2159
2327
  {
2160
2328
  immediate: true
@@ -2171,25 +2339,25 @@ const useWeixinButton = (hookOptions = {}) => {
2171
2339
  };
2172
2340
  };
2173
2341
  const useAppNative = () => {
2174
- function getNativeToPointMallFn() {
2342
+ function getNativeToPointMallFn2() {
2175
2343
  var _a, _b, _c, _d;
2176
- if (isAndroid) {
2344
+ if (isAndroid$1) {
2177
2345
  return (_a = window.AndroidNative) == null ? void 0 : _a.toPointMall;
2178
- } else if (isIOS) {
2346
+ } else if (isIOS$1) {
2179
2347
  return (_d = (_c = (_b = window.webkit) == null ? void 0 : _b.messageHandlers) == null ? void 0 : _c.gotoPointsMall) == null ? void 0 : _d.postMessage;
2180
2348
  }
2181
2349
  }
2182
2350
  function supportNativeToPointMall() {
2183
- return !!getNativeToPointMallFn();
2351
+ return !!getNativeToPointMallFn2();
2184
2352
  }
2185
2353
  const supportAppNative = computed(() => {
2186
2354
  return supportNativeToPointMall();
2187
2355
  });
2188
- function toNativeLink(options) {
2356
+ function toNativeLink2(options) {
2189
2357
  const { androidLink, iosLink, otherLink } = options;
2190
- const nativePointMallFn = getNativeToPointMallFn();
2358
+ const nativePointMallFn = getNativeToPointMallFn2();
2191
2359
  if (nativePointMallFn) {
2192
- let url = isAndroid ? androidLink : iosLink;
2360
+ let url = isAndroid$1 ? androidLink : iosLink;
2193
2361
  const pltBackUri = encodeURIComponent(location.href);
2194
2362
  url = concat(url, {
2195
2363
  plt_back_uri: pltBackUri
@@ -2203,60 +2371,10 @@ const useAppNative = () => {
2203
2371
  window.open(otherLink, "_blank", "noopener=yes");
2204
2372
  }
2205
2373
  return {
2206
- getNativeToPointMallFn,
2374
+ getNativeToPointMallFn: getNativeToPointMallFn2,
2207
2375
  supportNativeToPointMall,
2208
2376
  supportAppNative,
2209
- toNativeLink
2210
- };
2211
- };
2212
- const usePolyvWebview = () => {
2213
- const { injectData } = useGlobalInject();
2214
- const isPlvWebview = ref(false);
2215
- const supportPlvWebview = computed(() => {
2216
- return isPlvWebview.value;
2217
- });
2218
- function getPlvWebviewBridge() {
2219
- return __async(this, null, function* () {
2220
- if (injectData.getPlvWebviewBridge) {
2221
- return yield injectData.getPlvWebviewBridge();
2222
- }
2223
- });
2224
- }
2225
- function toPlvWebviewBridge(options) {
2226
- return __async(this, null, function* () {
2227
- if (!supportPlvWebview.value) {
2228
- return;
2229
- }
2230
- let plvWebviewDataSize = {
2231
- width: 90,
2232
- height: 160
2233
- };
2234
- if (injectData.getPlvWebviewSmallWindowSize) {
2235
- plvWebviewDataSize = injectData.getPlvWebviewSmallWindowSize();
2236
- }
2237
- const webviewBridge = yield getPlvWebviewBridge();
2238
- if (!webviewBridge) {
2239
- return;
2240
- }
2241
- webviewBridge.sendData("clickProduct", {
2242
- width: plvWebviewDataSize.width,
2243
- height: plvWebviewDataSize.height,
2244
- newPage: true,
2245
- link: options.link,
2246
- data: options.data
2247
- });
2248
- });
2249
- }
2250
- onMounted(() => {
2251
- if (injectData.isPlvWebview) {
2252
- isPlvWebview.value = injectData.isPlvWebview();
2253
- }
2254
- });
2255
- return {
2256
- isPlvWebview,
2257
- supportPlvWebview,
2258
- getPlvWebviewBridge,
2259
- toPlvWebviewBridge
2377
+ toNativeLink: toNativeLink2
2260
2378
  };
2261
2379
  };
2262
2380
  const productButtonProps = () => __spreadProps(__spreadValues({}, productProps()), {
@@ -2275,12 +2393,12 @@ const useProductButton = (options) => {
2275
2393
  const { isSoldOut } = useProductStock({
2276
2394
  product: () => props.productData
2277
2395
  });
2278
- const { getEmitter } = useGlobalInject();
2396
+ const { getEmitter, injectData } = useGlobalInject();
2279
2397
  const { $t } = useI18n();
2280
2398
  const productConfig = computed(() => {
2281
2399
  return props.productConfig;
2282
2400
  });
2283
- const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram } = useWeixinButton({
2401
+ const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram, supportWxMiniProgramNavigateTo } = useWeixinButton({
2284
2402
  getButtonOptions: () => {
2285
2403
  const productData = props.productData;
2286
2404
  return {
@@ -2291,10 +2409,9 @@ const useProductButton = (options) => {
2291
2409
  },
2292
2410
  launchCallback: () => sendClickEvent()
2293
2411
  });
2294
- const { supportAppNative, toNativeLink } = useAppNative();
2295
- const { supportPlvWebview, toPlvWebviewBridge } = usePolyvWebview();
2412
+ const { supportAppNative } = useAppNative();
2296
2413
  const { trackEvent } = useTrackEvent(props.productTarget.iarCore);
2297
- const { ProductBuyType, ProductType, ProductLinkType, ProductLinkJumpWay } = getProductTargetExport(props.productTarget);
2414
+ const { ProductBuyType, ProductType } = getProductTargetExport(props.productTarget);
2298
2415
  const isDirectBuy = computed(() => {
2299
2416
  return props.productData.productType === ProductType.Normal && props.productData.buyType === ProductBuyType.DirectBuy;
2300
2417
  });
@@ -2321,13 +2438,13 @@ const useProductButton = (options) => {
2321
2438
  if (isDirectBuy.value) {
2322
2439
  return false;
2323
2440
  }
2324
- if (productData.linkType === ProductLinkType.Normal) {
2441
+ if (productData.linkType === LinkType.Normal) {
2325
2442
  return !productData.link;
2326
2443
  }
2327
- if (productData.linkType === ProductLinkType.MultiPlatform) {
2444
+ if (productData.linkType === LinkType.MultiPlatform) {
2328
2445
  return isMultiPlatformDisabled.value;
2329
2446
  }
2330
- if (productData.linkType === ProductLinkType.Native) {
2447
+ if (productData.linkType === LinkType.Native) {
2331
2448
  if (supportAppNative.value) {
2332
2449
  return !productData.androidLink && !productData.iosLink;
2333
2450
  }
@@ -2386,9 +2503,26 @@ const useProductButton = (options) => {
2386
2503
  }
2387
2504
  return concat(url, urlParams);
2388
2505
  }
2506
+ function getLinkData() {
2507
+ const productData = props.productData;
2508
+ const linkData = {
2509
+ linkType: productData.linkType,
2510
+ jumpWay: productData.jumpWay,
2511
+ link: productData.link,
2512
+ pcLink: productData.pcLink,
2513
+ mobileLink: productData.mobileLink,
2514
+ mobileAppLink: productData.mobileAppLink,
2515
+ androidLink: productData.androidLink,
2516
+ iosLink: productData.iosLink,
2517
+ otherLink: productData.otherLink,
2518
+ wxMiniprogramOriginalId: productData.wxMiniprogramOriginalId,
2519
+ wxMiniprogramAppId: productData.wxMiniprogramAppId,
2520
+ wxMiniprogramLink: productData.wxMiniprogramLink
2521
+ };
2522
+ return linkData;
2523
+ }
2389
2524
  function onClickLinkBtn() {
2390
2525
  const productData = props.productData;
2391
- const { linkType } = productData;
2392
2526
  sendClickEvent();
2393
2527
  if (productConfig.value.customClickButtonHandler) {
2394
2528
  productConfig.value.customClickButtonHandler(productData);
@@ -2398,70 +2532,28 @@ const useProductButton = (options) => {
2398
2532
  toDirectBuy();
2399
2533
  return;
2400
2534
  }
2401
- if (productData.linkType === ProductLinkType.Native) {
2402
- toNativeLink({
2403
- androidLink: formatProductLink(productData.androidLink),
2404
- iosLink: formatProductLink(productData.iosLink),
2405
- otherLink: formatProductLink(productData.otherLink)
2406
- });
2407
- return;
2408
- }
2409
- if (supportPlvWebview.value) {
2410
- let linkTo = "";
2411
- const { link, mobileLink, mobileAppLink, wxMiniprogramOriginalId, wxMiniprogramLink } = productData;
2412
- switch (productData.linkType) {
2413
- case ProductLinkType.Normal:
2414
- linkTo = link;
2415
- break;
2416
- case ProductLinkType.MultiPlatform:
2417
- linkTo = mobileAppLink || mobileLink;
2418
- break;
2419
- }
2420
- let otherData = null;
2421
- if (productData.linkType !== ProductLinkType.Normal) {
2422
- otherData = {
2423
- mobileLink: formatProductLink(mobileLink),
2424
- wxMiniprogramOriginalId,
2425
- wxMiniprogramLink: formatProductLink(wxMiniprogramLink),
2426
- mobileAppLink: formatProductLink(mobileAppLink)
2427
- };
2428
- }
2429
- toPlvWebviewBridge({
2430
- link: formatProductLink(linkTo),
2431
- data: otherData
2432
- });
2433
- return;
2434
- }
2435
- if (linkType === ProductLinkType.Normal) {
2436
- const { link, jumpWay } = productData;
2437
- openLink(formatProductLink(link), jumpWay);
2438
- return;
2439
- }
2440
- if (linkType === ProductLinkType.MultiPlatform) {
2441
- const { wxMiniprogramLink, mobileLink, pcLink } = productData;
2442
- if (isWxMiniProgramWebview.value && wxMiniprogramLink) {
2443
- toWxMiniProgram(formatProductLink(wxMiniprogramLink));
2444
- return;
2445
- }
2446
- if (isMobile) {
2447
- openLink(formatProductLink(mobileLink), ProductLinkJumpWay.NewWindow);
2448
- return;
2449
- }
2450
- if (!isMobile) {
2451
- openLink(formatProductLink(pcLink), ProductLinkJumpWay.NewWindow);
2452
- return;
2453
- }
2454
- }
2535
+ const linkData = getLinkData();
2536
+ navigateToLink({
2537
+ linkData,
2538
+ getLinkParams: productConfig.value.getLinkParams,
2539
+ openLink,
2540
+ isPlvWebview: injectData.isPlvWebview,
2541
+ isMobile: injectData.isMobile,
2542
+ getPlvWebviewBridge: injectData.getPlvWebviewBridge,
2543
+ getPlvWebviewSmallWindowSize: injectData.getPlvWebviewSmallWindowSize,
2544
+ isWxMiniProgramEnv: supportWxMiniProgramNavigateTo,
2545
+ toWxMiniProgram
2546
+ });
2455
2547
  }
2456
2548
  function openLink(url, jumpWay) {
2457
2549
  switch (jumpWay) {
2458
- case ProductLinkJumpWay.NewWindow:
2550
+ case LinkJumpWay.NewWindow:
2459
2551
  window.open(url, "_blank", "noopener=yes");
2460
2552
  break;
2461
- case ProductLinkJumpWay.CurrentWindow:
2553
+ case LinkJumpWay.CurrentWindow:
2462
2554
  window.location.href = url;
2463
2555
  break;
2464
- case ProductLinkJumpWay.PopUp:
2556
+ case LinkJumpWay.PopUp:
2465
2557
  getEmitter().emit(productEvents.OpenProductIframeLinkPopup, url);
2466
2558
  break;
2467
2559
  default:
@@ -2484,7 +2576,7 @@ const useProductButton = (options) => {
2484
2576
  name: productData.name,
2485
2577
  productId: productData.productId,
2486
2578
  productType: productData.productType,
2487
- productPushRule: data == null ? void 0 : data.pushRule
2579
+ productPushRule: (data == null ? void 0 : data.pushRule) || ""
2488
2580
  }
2489
2581
  });
2490
2582
  props.productTarget.sendProductClickEvent({
@@ -2570,10 +2662,10 @@ function requirePopperManager() {
2570
2662
  return t2.d(n3, "a", n3), n3;
2571
2663
  }, t2.o = function(e2, n3) {
2572
2664
  return Object.prototype.hasOwnProperty.call(e2, n3);
2573
- }, t2.p = "", t2(t2.s = 14);
2574
- }({ 14: function(e, n2, t2) {
2665
+ }, t2.p = "", t2(t2.s = 15);
2666
+ }({ 15: function(e, n2, t2) {
2575
2667
  t2.r(n2);
2576
- t2(41);
2668
+ t2(48);
2577
2669
  var r2 = "@@polyvAdminUIzIndex", o2 = { ctx: r2, openPopper: function(e2) {
2578
2670
  o2.zIndex++, e2.style.zIndex = o2.zIndex;
2579
2671
  }, install: function(e2) {
@@ -2585,7 +2677,7 @@ function requirePopperManager() {
2585
2677
  }, set: function(e2) {
2586
2678
  window[r2] = e2;
2587
2679
  } }), n2.default = o2;
2588
- }, 41: function(e, n2, t2) {
2680
+ }, 48: function(e, n2, t2) {
2589
2681
  } }).default;
2590
2682
  return popperManager;
2591
2683
  }
@@ -2624,31 +2716,31 @@ function requireRadio() {
2624
2716
  return r2.d(e2, "a", e2), e2;
2625
2717
  }, r2.o = function(t3, e2) {
2626
2718
  return Object.prototype.hasOwnProperty.call(t3, e2);
2627
- }, r2.p = "", r2(r2.s = 298);
2719
+ }, r2.p = "", r2(r2.s = 160);
2628
2720
  }({ 0: function(t2, e, r2) {
2629
- function n2(t3, e2, r3, n3, o2, i2, a2, s2) {
2630
- var u2, c2 = "function" == typeof t3 ? t3.options : t3;
2631
- 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) {
2632
- (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);
2633
- }, c2._ssrRegister = u2) : o2 && (u2 = s2 ? function() {
2634
- o2.call(this, this.$root.$options.shadowRoot);
2635
- } : o2), u2) if (c2.functional) {
2636
- c2._injectStyles = u2;
2721
+ function n2(t3, e2, r3, n3, o2, i2, u2, a2) {
2722
+ var s2, c2 = "function" == typeof t3 ? t3.options : t3;
2723
+ 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) {
2724
+ (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);
2725
+ }, c2._ssrRegister = s2) : o2 && (s2 = a2 ? function() {
2726
+ o2.call(this, (c2.functional ? this.parent : this).$root.$options.shadowRoot);
2727
+ } : o2), s2) if (c2.functional) {
2728
+ c2._injectStyles = s2;
2637
2729
  var l2 = c2.render;
2638
2730
  c2.render = function(t4, e3) {
2639
- return u2.call(e3), l2(t4, e3);
2731
+ return s2.call(e3), l2(t4, e3);
2640
2732
  };
2641
2733
  } else {
2642
2734
  var f2 = c2.beforeCreate;
2643
- c2.beforeCreate = f2 ? [].concat(f2, u2) : [u2];
2735
+ c2.beforeCreate = f2 ? [].concat(f2, s2) : [s2];
2644
2736
  }
2645
2737
  return { exports: t3, options: c2 };
2646
2738
  }
2647
2739
  r2.d(e, "a", function() {
2648
2740
  return n2;
2649
2741
  });
2650
- }, 115: function(t2, e, r2) {
2651
- 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) {
2742
+ }, 104: function(t2, e, r2) {
2743
+ 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) {
2652
2744
  return -1 !== ["", "border"].indexOf(t3);
2653
2745
  } }, disabled: { type: Boolean, default: false }, readonly: { type: Boolean, default: false }, corner: { type: Boolean, default: false } }, model: { prop: "checked", event: "change" }, computed: { inGroup: function() {
2654
2746
  return !!this.radioGroup;
@@ -2668,300 +2760,300 @@ function requireRadio() {
2668
2760
  this.$emit("change", t3);
2669
2761
  }, handleClick: function() {
2670
2762
  this.isDisabled || this.isReadonly || (this.inGroup ? this.radioGroup.radioClick(this.value) : this.checked || this.emitChange(true), this.blurToValidateItem());
2671
- } } }, o2 = (r2(354), r2(355), r2(0)), i2 = Object(o2.a)(n2, function() {
2763
+ } } }, o2 = (r2(207), r2(208), r2(0)), i2 = Object(o2.a)(n2, function() {
2672
2764
  var t3 = this, e2 = t3.$createElement, r3 = t3._self._c || e2;
2673
2765
  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()]);
2674
2766
  }, [], false, null, null, null);
2675
2767
  e.a = i2.exports;
2676
- }, 147: function(t2, e, r2) {
2677
- }, 148: function(t2, e, r2) {
2678
- }, 15: function(t2, e, r2) {
2768
+ }, 156: function(t2, e, r2) {
2769
+ }, 157: function(t2, e, r2) {
2770
+ }, 16: function(t2, e, r2) {
2679
2771
  r2.d(e, "a", function() {
2680
- return i2;
2772
+ return a2;
2681
2773
  });
2682
- var n2 = r2(2), o2 = r2.n(n2), i2 = { inject: { formItem: { default: void 0 } }, computed: { formItemIsError: function() {
2683
- return !!this.formItem && this.formItem.formItemIsError;
2774
+ 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() {
2775
+ return !!this.forceFormError || !!this.formItem && this.formItem.formItemIsError;
2684
2776
  } }, watch: { showPopper: function() {
2685
2777
  this.showPopper ? this.focusToRemoveError() : this.blurToValidateItem();
2686
2778
  } }, methods: { validateCurrentFormItem: function() {
2687
2779
  if (this.formItem) return this.formItem.validate();
2688
2780
  }, blurToValidateItem: function() {
2689
- return o2.a.async(function(t3) {
2690
- for (; ; ) switch (t3.prev = t3.next) {
2691
- case 0:
2692
- return t3.prev = 0, t3.next = 3, o2.a.awrap(this.validateCurrentFormItem());
2693
- case 3:
2694
- t3.next = 8;
2695
- break;
2696
- case 5:
2697
- t3.prev = 5, t3.t0 = t3.catch(0), console.error("blur-validate", t3.t0.message);
2698
- case 8:
2699
- case "end":
2700
- return t3.stop();
2701
- }
2702
- }, null, this, [[0, 5]]);
2781
+ var t3 = this;
2782
+ return o2()(u2.a.mark(function e2() {
2783
+ var r3;
2784
+ return u2.a.wrap(function(e3) {
2785
+ for (; ; ) switch (e3.prev = e3.next) {
2786
+ case 0:
2787
+ return e3.prev = 0, e3.next = 1, t3.validateCurrentFormItem();
2788
+ case 1:
2789
+ e3.next = 3;
2790
+ break;
2791
+ case 2:
2792
+ e3.prev = 2, r3 = e3.catch(0), console.error("blur-validate", r3.message);
2793
+ case 3:
2794
+ case "end":
2795
+ return e3.stop();
2796
+ }
2797
+ }, e2, null, [[0, 2]]);
2798
+ }))();
2703
2799
  }, focusToRemoveError: function() {
2704
2800
  this.formItem && this.formItem.removeErrorMessage();
2705
2801
  } } };
2706
- }, 2: function(t2, e, r2) {
2707
- t2.exports = r2(24);
2708
- }, 24: function(t2, e, r2) {
2709
- var n2 = function(t3) {
2710
- 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";
2711
- function u2(t4, e3, r4) {
2712
- return Object.defineProperty(t4, e3, { value: r4, enumerable: true, configurable: true, writable: true }), t4[e3];
2713
- }
2714
- try {
2715
- u2({}, "");
2716
- } catch (t4) {
2717
- u2 = function(t5, e3, r4) {
2718
- return t5[e3] = r4;
2719
- };
2720
- }
2721
- function c2(t4, e3, r4, n4) {
2722
- var o3 = e3 && e3.prototype instanceof y2 ? e3 : y2, i3 = Object.create(o3.prototype), a3 = new O2(n4 || []);
2723
- return i3._invoke = /* @__PURE__ */ function(t5, e4, r5) {
2724
- var n5 = f2;
2725
- return function(o4, i4) {
2726
- if (n5 === d2) throw new Error("Generator is already running");
2727
- if (n5 === p2) {
2728
- if ("throw" === o4) throw i4;
2729
- return T2();
2802
+ }, 160: function(t2, e, r2) {
2803
+ r2.r(e);
2804
+ var n2 = r2(104);
2805
+ n2.a.install = function(t3) {
2806
+ t3.component(n2.a.name, n2.a);
2807
+ }, e.default = n2.a;
2808
+ }, 19: function(t2, e) {
2809
+ t2.exports = function(t3, e2) {
2810
+ this.v = t3, this.k = e2;
2811
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
2812
+ }, 20: function(t2, e, r2) {
2813
+ var n2 = r2(21);
2814
+ function o2() {
2815
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
2816
+ var e2, r3, i2 = "function" == typeof Symbol ? Symbol : {}, u2 = i2.iterator || "@@iterator", a2 = i2.toStringTag || "@@toStringTag";
2817
+ function s2(t3, o3, i3, u3) {
2818
+ var a3 = o3 && o3.prototype instanceof l2 ? o3 : l2, s3 = Object.create(a3.prototype);
2819
+ return n2(s3, "_invoke", function(t4, n3, o4) {
2820
+ 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) {
2821
+ return i4 = t5, u4 = 0, a4 = e2, p3.n = r4, c2;
2822
+ } };
2823
+ function d3(t5, n4) {
2824
+ for (u4 = t5, a4 = n4, r3 = 0; !f3 && s4 && !o5 && r3 < l3.length; r3++) {
2825
+ var o5, i5 = l3[r3], d4 = p3.p, h3 = i5[2];
2826
+ 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));
2730
2827
  }
2731
- for (r5.method = o4, r5.arg = i4; ; ) {
2732
- var a4 = r5.delegate;
2733
- if (a4) {
2734
- var s3 = k2(a4, r5);
2735
- if (s3) {
2736
- if (s3 === v2) continue;
2737
- return s3;
2738
- }
2739
- }
2740
- if ("next" === r5.method) r5.sent = r5._sent = r5.arg;
2741
- else if ("throw" === r5.method) {
2742
- if (n5 === f2) throw n5 = p2, r5.arg;
2743
- r5.dispatchException(r5.arg);
2744
- } else "return" === r5.method && r5.abrupt("return", r5.arg);
2745
- n5 = d2;
2746
- var u3 = l2(t5, e4, r5);
2747
- if ("normal" === u3.type) {
2748
- if (n5 = r5.done ? p2 : h2, u3.arg === v2) continue;
2749
- return { value: u3.arg, done: r5.done };
2828
+ if (o5 || t5 > 1) return c2;
2829
+ throw f3 = true, n4;
2830
+ }
2831
+ return function(o5, l4, h3) {
2832
+ if (s4 > 1) throw TypeError("Generator is already running");
2833
+ for (f3 && 1 === l4 && d3(l4, h3), u4 = l4, a4 = h3; (r3 = u4 < 2 ? e2 : a4) || !f3; ) {
2834
+ i4 || (u4 ? u4 < 3 ? (u4 > 1 && (p3.n = -1), d3(u4, a4)) : p3.n = a4 : p3.v = a4);
2835
+ try {
2836
+ if (s4 = 2, i4) {
2837
+ if (u4 || (o5 = "next"), r3 = i4[o5]) {
2838
+ if (!(r3 = r3.call(i4, a4))) throw TypeError("iterator result is not an object");
2839
+ if (!r3.done) return r3;
2840
+ a4 = r3.value, u4 < 2 && (u4 = 0);
2841
+ } else 1 === u4 && (r3 = i4.return) && r3.call(i4), u4 < 2 && (a4 = TypeError("The iterator does not provide a '" + o5 + "' method"), u4 = 1);
2842
+ i4 = e2;
2843
+ } else if ((r3 = (f3 = p3.n < 0) ? a4 : t4.call(n3, p3)) !== c2) break;
2844
+ } catch (t5) {
2845
+ i4 = e2, u4 = 1, a4 = t5;
2846
+ } finally {
2847
+ s4 = 1;
2750
2848
  }
2751
- "throw" === u3.type && (n5 = p2, r5.method = "throw", r5.arg = u3.arg);
2752
2849
  }
2850
+ return { value: r3, done: f3 };
2753
2851
  };
2754
- }(t4, r4, a3), i3;
2852
+ }(t3, i3, u3), true), s3;
2755
2853
  }
2756
- function l2(t4, e3, r4) {
2757
- try {
2758
- return { type: "normal", arg: t4.call(e3, r4) };
2759
- } catch (t5) {
2760
- return { type: "throw", arg: t5 };
2761
- }
2854
+ var c2 = {};
2855
+ function l2() {
2762
2856
  }
2763
- t3.wrap = c2;
2764
- var f2 = "suspendedStart", h2 = "suspendedYield", d2 = "executing", p2 = "completed", v2 = {};
2765
- function y2() {
2857
+ function f2() {
2766
2858
  }
2767
- function m2() {
2859
+ function p2() {
2768
2860
  }
2769
- function g2() {
2770
- }
2771
- var b2 = {};
2772
- u2(b2, i2, function() {
2861
+ r3 = Object.getPrototypeOf;
2862
+ var d2 = [][u2] ? r3(r3([][u2]())) : (n2(r3 = {}, u2, function() {
2773
2863
  return this;
2774
- });
2775
- var _2 = Object.getPrototypeOf, w2 = _2 && _2(_2(S2([])));
2776
- w2 && w2 !== r3 && n3.call(w2, i2) && (b2 = w2);
2777
- var L2 = g2.prototype = y2.prototype = Object.create(b2);
2778
- function x2(t4) {
2779
- ["next", "throw", "return"].forEach(function(e3) {
2780
- u2(t4, e3, function(t5) {
2781
- return this._invoke(e3, t5);
2782
- });
2783
- });
2864
+ }), r3), h2 = p2.prototype = l2.prototype = Object.create(d2);
2865
+ function v2(t3) {
2866
+ return Object.setPrototypeOf ? Object.setPrototypeOf(t3, p2) : (t3.__proto__ = p2, n2(t3, a2, "GeneratorFunction")), t3.prototype = Object.create(h2), t3;
2784
2867
  }
2785
- function E2(t4, e3) {
2786
- var r4;
2787
- this._invoke = function(o3, i3) {
2788
- function a3() {
2789
- return new e3(function(r5, a4) {
2790
- !function r6(o4, i4, a5, s3) {
2791
- var u3 = l2(t4[o4], t4, i4);
2792
- if ("throw" !== u3.type) {
2793
- var c3 = u3.arg, f3 = c3.value;
2794
- return f3 && "object" == typeof f3 && n3.call(f3, "__await") ? e3.resolve(f3.__await).then(function(t5) {
2795
- r6("next", t5, a5, s3);
2796
- }, function(t5) {
2797
- r6("throw", t5, a5, s3);
2798
- }) : e3.resolve(f3).then(function(t5) {
2799
- c3.value = t5, a5(c3);
2800
- }, function(t5) {
2801
- return r6("throw", t5, a5, s3);
2802
- });
2803
- }
2804
- s3(u3.arg);
2805
- }(o3, i3, r5, a4);
2806
- });
2807
- }
2808
- return r4 = r4 ? r4.then(a3, a3) : a3();
2809
- };
2810
- }
2811
- function k2(t4, r4) {
2812
- var n4 = t4.iterator[r4.method];
2813
- if (n4 === e2) {
2814
- if (r4.delegate = null, "throw" === r4.method) {
2815
- if (t4.iterator.return && (r4.method = "return", r4.arg = e2, k2(t4, r4), "throw" === r4.method)) return v2;
2816
- r4.method = "throw", r4.arg = new TypeError("The iterator does not provide a 'throw' method");
2817
- }
2818
- return v2;
2819
- }
2820
- var o3 = l2(n4, t4.iterator, r4.arg);
2821
- if ("throw" === o3.type) return r4.method = "throw", r4.arg = o3.arg, r4.delegate = null, v2;
2822
- var i3 = o3.arg;
2823
- 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);
2824
- }
2825
- function C(t4) {
2826
- var e3 = { tryLoc: t4[0] };
2827
- 1 in t4 && (e3.catchLoc = t4[1]), 2 in t4 && (e3.finallyLoc = t4[2], e3.afterLoc = t4[3]), this.tryEntries.push(e3);
2828
- }
2829
- function j2(t4) {
2830
- var e3 = t4.completion || {};
2831
- e3.type = "normal", delete e3.arg, t4.completion = e3;
2832
- }
2833
- function O2(t4) {
2834
- this.tryEntries = [{ tryLoc: "root" }], t4.forEach(C, this), this.reset(true);
2835
- }
2836
- function S2(t4) {
2837
- if (t4) {
2838
- var r4 = t4[i2];
2839
- if (r4) return r4.call(t4);
2840
- if ("function" == typeof t4.next) return t4;
2841
- if (!isNaN(t4.length)) {
2842
- var o3 = -1, a3 = function r5() {
2843
- for (; ++o3 < t4.length; ) if (n3.call(t4, o3)) return r5.value = t4[o3], r5.done = false, r5;
2844
- return r5.value = e2, r5.done = true, r5;
2845
- };
2846
- return a3.next = a3;
2847
- }
2848
- }
2849
- return { next: T2 };
2850
- }
2851
- function T2() {
2852
- return { value: e2, done: true };
2853
- }
2854
- return m2.prototype = g2, u2(L2, "constructor", g2), u2(g2, "constructor", m2), m2.displayName = u2(g2, s2, "GeneratorFunction"), t3.isGeneratorFunction = function(t4) {
2855
- var e3 = "function" == typeof t4 && t4.constructor;
2856
- return !!e3 && (e3 === m2 || "GeneratorFunction" === (e3.displayName || e3.name));
2857
- }, t3.mark = function(t4) {
2858
- return Object.setPrototypeOf ? Object.setPrototypeOf(t4, g2) : (t4.__proto__ = g2, u2(t4, s2, "GeneratorFunction")), t4.prototype = Object.create(L2), t4;
2859
- }, t3.awrap = function(t4) {
2860
- return { __await: t4 };
2861
- }, x2(E2.prototype), u2(E2.prototype, a2, function() {
2862
- return this;
2863
- }), t3.AsyncIterator = E2, t3.async = function(e3, r4, n4, o3, i3) {
2864
- void 0 === i3 && (i3 = Promise);
2865
- var a3 = new E2(c2(e3, r4, n4, o3), i3);
2866
- return t3.isGeneratorFunction(r4) ? a3 : a3.next().then(function(t4) {
2867
- return t4.done ? t4.value : a3.next();
2868
- });
2869
- }, x2(L2), u2(L2, s2, "Generator"), u2(L2, i2, function() {
2868
+ 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() {
2870
2869
  return this;
2871
- }), u2(L2, "toString", function() {
2870
+ }), n2(h2, "toString", function() {
2872
2871
  return "[object Generator]";
2873
- }), t3.keys = function(t4) {
2874
- var e3 = [];
2875
- for (var r4 in t4) e3.push(r4);
2876
- return e3.reverse(), function r5() {
2877
- for (; e3.length; ) {
2878
- var n4 = e3.pop();
2879
- if (n4 in t4) return r5.value = n4, r5.done = false, r5;
2880
- }
2881
- return r5.done = true, r5;
2882
- };
2883
- }, t3.values = S2, O2.prototype = { constructor: O2, reset: function(t4) {
2884
- 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);
2885
- }, stop: function() {
2886
- this.done = true;
2887
- var t4 = this.tryEntries[0].completion;
2888
- if ("throw" === t4.type) throw t4.arg;
2889
- return this.rval;
2890
- }, dispatchException: function(t4) {
2891
- if (this.done) throw t4;
2892
- var r4 = this;
2893
- function o3(n4, o4) {
2894
- return s3.type = "throw", s3.arg = t4, r4.next = n4, o4 && (r4.method = "next", r4.arg = e2), !!o4;
2895
- }
2896
- for (var i3 = this.tryEntries.length - 1; i3 >= 0; --i3) {
2897
- var a3 = this.tryEntries[i3], s3 = a3.completion;
2898
- if ("root" === a3.tryLoc) return o3("end");
2899
- if (a3.tryLoc <= this.prev) {
2900
- var u3 = n3.call(a3, "catchLoc"), c3 = n3.call(a3, "finallyLoc");
2901
- if (u3 && c3) {
2902
- if (this.prev < a3.catchLoc) return o3(a3.catchLoc, true);
2903
- if (this.prev < a3.finallyLoc) return o3(a3.finallyLoc);
2904
- } else if (u3) {
2905
- if (this.prev < a3.catchLoc) return o3(a3.catchLoc, true);
2906
- } else {
2907
- if (!c3) throw new Error("try statement without catch or finally");
2908
- if (this.prev < a3.finallyLoc) return o3(a3.finallyLoc);
2909
- }
2910
- }
2911
- }
2912
- }, abrupt: function(t4, e3) {
2913
- for (var r4 = this.tryEntries.length - 1; r4 >= 0; --r4) {
2914
- var o3 = this.tryEntries[r4];
2915
- if (o3.tryLoc <= this.prev && n3.call(o3, "finallyLoc") && this.prev < o3.finallyLoc) {
2916
- var i3 = o3;
2917
- break;
2918
- }
2872
+ }), (t2.exports = o2 = function() {
2873
+ return { w: s2, m: v2 };
2874
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports)();
2875
+ }
2876
+ t2.exports = o2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
2877
+ }, 207: function(t2, e, r2) {
2878
+ r2(156);
2879
+ }, 208: function(t2, e, r2) {
2880
+ r2(157);
2881
+ }, 21: function(t2, e) {
2882
+ function r2(e2, n2, o2, i2) {
2883
+ var u2 = Object.defineProperty;
2884
+ try {
2885
+ u2({}, "", {});
2886
+ } catch (e3) {
2887
+ u2 = 0;
2888
+ }
2889
+ t2.exports = r2 = function(t3, e3, n3, o3) {
2890
+ if (e3) u2 ? u2(t3, e3, { value: n3, enumerable: !o3, configurable: !o3, writable: !o3 }) : t3[e3] = n3;
2891
+ else {
2892
+ var i3 = function(e4, n4) {
2893
+ r2(t3, e4, function(t4) {
2894
+ return this._invoke(e4, n4, t4);
2895
+ });
2896
+ };
2897
+ i3("next", 0), i3("throw", 1), i3("return", 2);
2919
2898
  }
2920
- i3 && ("break" === t4 || "continue" === t4) && i3.tryLoc <= e3 && e3 <= i3.finallyLoc && (i3 = null);
2921
- var a3 = i3 ? i3.completion : {};
2922
- return a3.type = t4, a3.arg = e3, i3 ? (this.method = "next", this.next = i3.finallyLoc, v2) : this.complete(a3);
2923
- }, complete: function(t4, e3) {
2924
- if ("throw" === t4.type) throw t4.arg;
2925
- 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;
2926
- }, finish: function(t4) {
2927
- for (var e3 = this.tryEntries.length - 1; e3 >= 0; --e3) {
2928
- var r4 = this.tryEntries[e3];
2929
- if (r4.finallyLoc === t4) return this.complete(r4.completion, r4.afterLoc), j2(r4), v2;
2899
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports, r2(e2, n2, o2, i2);
2900
+ }
2901
+ t2.exports = r2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
2902
+ }, 22: function(t2, e, r2) {
2903
+ var n2 = r2(20), o2 = r2(23);
2904
+ t2.exports = function(t3, e2, r3, i2, u2) {
2905
+ return new o2(n2().w(t3, e2, r3, i2), u2 || Promise);
2906
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
2907
+ }, 23: function(t2, e, r2) {
2908
+ var n2 = r2(19), o2 = r2(21);
2909
+ t2.exports = function t3(e2, r3) {
2910
+ function i2(t4, o3, u3, a2) {
2911
+ try {
2912
+ var s2 = e2[t4](o3), c2 = s2.value;
2913
+ return c2 instanceof n2 ? r3.resolve(c2.v).then(function(t5) {
2914
+ i2("next", t5, u3, a2);
2915
+ }, function(t5) {
2916
+ i2("throw", t5, u3, a2);
2917
+ }) : r3.resolve(c2).then(function(t5) {
2918
+ s2.value = t5, u3(s2);
2919
+ }, function(t5) {
2920
+ return i2("throw", t5, u3, a2);
2921
+ });
2922
+ } catch (t5) {
2923
+ a2(t5);
2930
2924
  }
2931
- }, catch: function(t4) {
2932
- for (var e3 = this.tryEntries.length - 1; e3 >= 0; --e3) {
2933
- var r4 = this.tryEntries[e3];
2934
- if (r4.tryLoc === t4) {
2935
- var n4 = r4.completion;
2936
- if ("throw" === n4.type) {
2937
- var o3 = n4.arg;
2938
- j2(r4);
2939
- }
2940
- return o3;
2941
- }
2925
+ }
2926
+ var u2;
2927
+ this.next || (o2(t3.prototype), o2(t3.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function() {
2928
+ return this;
2929
+ })), o2(this, "_invoke", function(t4, e3, n3) {
2930
+ function o3() {
2931
+ return new r3(function(e4, r4) {
2932
+ i2(t4, n3, e4, r4);
2933
+ });
2942
2934
  }
2943
- throw new Error("illegal catch attempt");
2944
- }, delegateYield: function(t4, r4, n4) {
2945
- return this.delegate = { iterator: S2(t4), resultName: r4, nextLoc: n4 }, "next" === this.method && (this.arg = e2), v2;
2946
- } }, t3;
2947
- }(t2.exports);
2935
+ return u2 = u2 ? u2.then(o3, o3) : o3();
2936
+ }, true);
2937
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
2938
+ }, 3: function(t2, e, r2) {
2939
+ var n2 = r2(30)();
2940
+ t2.exports = n2;
2948
2941
  try {
2949
2942
  regeneratorRuntime = n2;
2950
2943
  } catch (t3) {
2951
2944
  "object" == typeof globalThis ? globalThis.regeneratorRuntime = n2 : Function("r", "regeneratorRuntime = r")(n2);
2952
2945
  }
2953
- }, 298: function(t2, e, r2) {
2954
- r2.r(e);
2955
- var n2 = r2(115);
2956
- n2.a.install = function(t3) {
2957
- t3.component(n2.a.name, n2.a);
2958
- }, e.default = n2.a;
2959
- }, 354: function(t2, e, r2) {
2960
- var n2 = r2(147);
2961
- r2.n(n2).a;
2962
- }, 355: function(t2, e, r2) {
2963
- var n2 = r2(148);
2964
- r2.n(n2).a;
2946
+ }, 30: function(t2, e, r2) {
2947
+ var n2 = r2(19), o2 = r2(20), i2 = r2(31), u2 = r2(22), a2 = r2(23), s2 = r2(32), c2 = r2(33);
2948
+ function l2() {
2949
+ var e2 = o2(), r3 = e2.m(l2), f2 = (Object.getPrototypeOf ? Object.getPrototypeOf(r3) : r3.__proto__).constructor;
2950
+ function p2(t3) {
2951
+ var e3 = "function" == typeof t3 && t3.constructor;
2952
+ return !!e3 && (e3 === f2 || "GeneratorFunction" === (e3.displayName || e3.name));
2953
+ }
2954
+ var d2 = { throw: 1, return: 2, break: 3, continue: 3 };
2955
+ function h2(t3) {
2956
+ var e3, r4;
2957
+ return function(n3) {
2958
+ e3 || (e3 = { stop: function() {
2959
+ return r4(n3.a, 2);
2960
+ }, catch: function() {
2961
+ return n3.v;
2962
+ }, abrupt: function(t4, e4) {
2963
+ return r4(n3.a, d2[t4], e4);
2964
+ }, delegateYield: function(t4, o3, i3) {
2965
+ return e3.resultName = o3, r4(n3.d, c2(t4), i3);
2966
+ }, finish: function(t4) {
2967
+ return r4(n3.f, t4);
2968
+ } }, r4 = function(t4, r5, o3) {
2969
+ n3.p = e3.prev, n3.n = e3.next;
2970
+ try {
2971
+ return t4(r5, o3);
2972
+ } finally {
2973
+ e3.next = n3.n;
2974
+ }
2975
+ }), e3.resultName && (e3[e3.resultName] = n3.v, e3.resultName = void 0), e3.sent = n3.v, e3.next = n3.n;
2976
+ try {
2977
+ return t3.call(this, e3);
2978
+ } finally {
2979
+ n3.p = e3.prev, n3.n = e3.next;
2980
+ }
2981
+ };
2982
+ }
2983
+ return (t2.exports = l2 = function() {
2984
+ return { wrap: function(t3, r4, n3, o3) {
2985
+ return e2.w(h2(t3), r4, n3, o3 && o3.reverse());
2986
+ }, isGeneratorFunction: p2, mark: e2.m, awrap: function(t3, e3) {
2987
+ return new n2(t3, e3);
2988
+ }, AsyncIterator: a2, async: function(t3, e3, r4, n3, o3) {
2989
+ return (p2(e3) ? u2 : i2)(h2(t3), e3, r4, n3, o3);
2990
+ }, keys: s2, values: c2 };
2991
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports)();
2992
+ }
2993
+ t2.exports = l2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
2994
+ }, 31: function(t2, e, r2) {
2995
+ var n2 = r2(22);
2996
+ t2.exports = function(t3, e2, r3, o2, i2) {
2997
+ var u2 = n2(t3, e2, r3, o2, i2);
2998
+ return u2.next().then(function(t4) {
2999
+ return t4.done ? t4.value : u2.next();
3000
+ });
3001
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
3002
+ }, 32: function(t2, e) {
3003
+ t2.exports = function(t3) {
3004
+ var e2 = Object(t3), r2 = [];
3005
+ for (var n2 in e2) r2.unshift(n2);
3006
+ return function t4() {
3007
+ for (; r2.length; ) if ((n2 = r2.pop()) in e2) return t4.value = n2, t4.done = false, t4;
3008
+ return t4.done = true, t4;
3009
+ };
3010
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
3011
+ }, 33: function(t2, e, r2) {
3012
+ var n2 = r2(4).default;
3013
+ t2.exports = function(t3) {
3014
+ if (null != t3) {
3015
+ var e2 = t3["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r3 = 0;
3016
+ if (e2) return e2.call(t3);
3017
+ if ("function" == typeof t3.next) return t3;
3018
+ if (!isNaN(t3.length)) return { next: function() {
3019
+ return t3 && r3 >= t3.length && (t3 = void 0), { value: t3 && t3[r3++], done: !t3 };
3020
+ } };
3021
+ }
3022
+ throw new TypeError(n2(t3) + " is not iterable");
3023
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
3024
+ }, 4: function(t2, e) {
3025
+ function r2(e2) {
3026
+ return t2.exports = r2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t3) {
3027
+ return typeof t3;
3028
+ } : function(t3) {
3029
+ return t3 && "function" == typeof Symbol && t3.constructor === Symbol && t3 !== Symbol.prototype ? "symbol" : typeof t3;
3030
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports, r2(e2);
3031
+ }
3032
+ t2.exports = r2, t2.exports.__esModule = true, t2.exports.default = t2.exports;
3033
+ }, 8: function(t2, e) {
3034
+ function r2(t3, e2, r3, n2, o2, i2, u2) {
3035
+ try {
3036
+ var a2 = t3[i2](u2), s2 = a2.value;
3037
+ } catch (t4) {
3038
+ return void r3(t4);
3039
+ }
3040
+ a2.done ? e2(s2) : Promise.resolve(s2).then(n2, o2);
3041
+ }
3042
+ t2.exports = function(t3) {
3043
+ return function() {
3044
+ var e2 = this, n2 = arguments;
3045
+ return new Promise(function(o2, i2) {
3046
+ var u2 = t3.apply(e2, n2);
3047
+ function a2(t4) {
3048
+ r2(u2, o2, i2, a2, s2, "next", t4);
3049
+ }
3050
+ function s2(t4) {
3051
+ r2(u2, o2, i2, a2, s2, "throw", t4);
3052
+ }
3053
+ a2(void 0);
3054
+ });
3055
+ };
3056
+ }, t2.exports.__esModule = true, t2.exports.default = t2.exports;
2965
3057
  } }).default;
2966
3058
  return radio;
2967
3059
  }
@@ -3001,6 +3093,11 @@ const useAppendTo = (elemRef, parentRef) => {
3001
3093
  }
3002
3094
  });
3003
3095
  };
3096
+ var ScreenOrientationMode = /* @__PURE__ */ ((ScreenOrientationMode2) => {
3097
+ ScreenOrientationMode2["Vertical"] = "Vertical";
3098
+ ScreenOrientationMode2["Horizontal"] = "Horizontal";
3099
+ return ScreenOrientationMode2;
3100
+ })(ScreenOrientationMode || {});
3004
3101
  const useScreenOrientHook = (params = {}) => {
3005
3102
  const { autoListen = true, autoListenCb = () => {
3006
3103
  } } = params;
@@ -3310,7 +3407,7 @@ const useDynamicHeight = (options) => {
3310
3407
  const props = __props;
3311
3408
  const { injectData: globalInjectData } = useGlobalInject();
3312
3409
  const popupInjectData = useCommonPopupInject();
3313
- const { isHorizontalScreenOrientation, pageFullscreen } = useScreenOrientHook();
3410
+ const { isHorizontalScreenOrientation, pageFullscreen, screenOrientationMode } = useScreenOrientHook();
3314
3411
  const { isFullscreen } = useFullscreen();
3315
3412
  const { dynamicContentHeightPercent, handleScroll, reset: resetContentHeight } = useDynamicHeight(props.dynamicHeightOptions);
3316
3413
  function getOriginAppendTo() {
@@ -3379,7 +3476,7 @@ const useDynamicHeight = (options) => {
3379
3476
  cls.push(props.horizontalScreenClassName);
3380
3477
  }
3381
3478
  }
3382
- if (pageFullscreen.value) {
3479
+ if (pageFullscreen.value && screenOrientationMode.value !== ScreenOrientationMode.Horizontal) {
3383
3480
  cls.push("plv-product-common-popup--page-fullscreen");
3384
3481
  }
3385
3482
  return cls;
@@ -3425,6 +3522,7 @@ const useDynamicHeight = (options) => {
3425
3522
  if (props.fillBody) {
3426
3523
  return "90%";
3427
3524
  }
3525
+ if (isHorizontalScreenOrientation.value) return document.documentElement.clientHeight;
3428
3526
  if (props.enableDynamicHeight) {
3429
3527
  return document.documentElement.clientHeight * dynamicContentHeightPercent.value;
3430
3528
  }
@@ -3535,88 +3633,214 @@ const useDynamicHeight = (options) => {
3535
3633
  expose({
3536
3634
  resetScroll
3537
3635
  });
3538
- 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 };
3636
+ 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 };
3539
3637
  }
3540
3638
  });
3541
3639
  const supportWebP = /* @__PURE__ */ (() => {
3542
- let A2;
3640
+ let e;
3543
3641
  return () => {
3544
- if (null == A2) try {
3545
- A2 = function() {
3546
- const A3 = document.createElement("canvas");
3547
- if (A3.getContext && A3.getContext("2d")) {
3548
- const e = "image/webp";
3549
- return 0 === A3.toDataURL(e).indexOf("data:" + e);
3642
+ if (null == e) try {
3643
+ e = function() {
3644
+ const e2 = document.createElement("canvas");
3645
+ if (e2.getContext && e2.getContext("2d")) {
3646
+ const A2 = "image/webp";
3647
+ return 0 === e2.toDataURL(A2).indexOf("data:" + A2);
3550
3648
  }
3551
3649
  return false;
3650
+ }() || function() {
3651
+ let e2 = false;
3652
+ const A2 = navigator.userAgent, t2 = /\bOS\s([\d_.]+)\slike\sMac\sOS\sX\b/.exec(A2);
3653
+ if (t2) e2 = parseInt(t2[1]) >= 14;
3654
+ else {
3655
+ const t3 = /\bVersion\/([\d.]+)\sSafari\b/.exec(A2);
3656
+ t3 && (e2 = parseInt(t3[1]) >= 16);
3657
+ }
3658
+ return e2;
3552
3659
  }();
3553
- } catch (e) {
3554
- A2 = false;
3660
+ } catch (A2) {
3661
+ e = false;
3555
3662
  }
3556
- return A2;
3663
+ return e;
3557
3664
  };
3558
3665
  })();
3559
- function getExtname(A2) {
3560
- const e = (A2 || "").split("."), t2 = e[e.length - 1];
3666
+ function getExtname(e) {
3667
+ const A2 = (e || "").split("."), t2 = A2[A2.length - 1];
3561
3668
  return t2 ? t2.toLowerCase() : "";
3562
3669
  }
3563
- function handleCompressOptions(A2) {
3564
- var e, t2;
3565
- const r2 = "number" == typeof A2 ? { width: A2 } : A2;
3566
- return r2.allowJPG = null === (e = r2.allowJPG) || void 0 === e || e, r2.allowWebP = null !== (t2 = r2.allowWebP) && void 0 !== t2 ? t2 : "auto", r2;
3670
+ function handleCompressOptions(e) {
3671
+ var A2, t2;
3672
+ const n2 = "number" == typeof e ? { width: e } : e;
3673
+ return n2.allowJPG = null === (A2 = n2.allowJPG) || void 0 === A2 || A2, n2.allowWebP = null !== (t2 = n2.allowWebP) && void 0 !== t2 ? t2 : "auto", n2;
3567
3674
  }
3568
- function createURLObject(A2) {
3569
- let e;
3675
+ function createURLObject(e) {
3676
+ let A2;
3570
3677
  if ("undefined" != typeof document) {
3571
3678
  const t2 = document.createElement("a");
3572
- t2.href = A2, e = t2;
3679
+ t2.href = e, A2 = t2;
3573
3680
  } else if ("function" == typeof URL) try {
3574
- e = new URL(/^\/\//.test(A2) ? "https:" + A2 : A2);
3575
- } catch (A3) {
3681
+ A2 = new URL(/^\/\//.test(e) ? "https:" + e : e);
3682
+ } catch (e2) {
3576
3683
  }
3577
- return e;
3684
+ return A2;
3578
3685
  }
3579
- function genOSSCompressParams(A2, e) {
3686
+ function genOSSCompressParams(e, A2) {
3580
3687
  let t2 = "";
3581
- 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;
3688
+ 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;
3582
3689
  }
3583
- function setOSSCompressParams(A2, e) {
3690
+ function setOSSCompressParams(e, A2) {
3584
3691
  let t2 = false;
3585
- 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;
3586
- }
3587
- function ossCompress(A2, e) {
3588
- const t2 = createURLObject(A2);
3589
- if (!t2) return A2;
3590
- if (!/\.videocc\.net$/i.test(t2.hostname)) return A2;
3591
- const r2 = genOSSCompressParams(getExtname(t2.pathname.split("/").pop()), handleCompressOptions(e));
3692
+ 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;
3693
+ }
3694
+ function ossCompress(e, A2) {
3695
+ const t2 = createURLObject(e);
3696
+ if (!t2) return e;
3697
+ const n2 = getExtname(t2.pathname.split("/").pop());
3698
+ if (!/\.videocc\.net$/i.test(t2.hostname) || "svg" === n2) return e;
3699
+ const r2 = genOSSCompressParams(n2, handleCompressOptions(A2));
3592
3700
  return r2 && (t2.search = setOSSCompressParams(t2.search, r2)), t2.href;
3593
3701
  }
3702
+ var ProductItemScene = /* @__PURE__ */ ((ProductItemScene2) => {
3703
+ ProductItemScene2["ProductList"] = "productList";
3704
+ ProductItemScene2["BigCard"] = "bigCard";
3705
+ ProductItemScene2["AggregateStation"] = "aggregateStation";
3706
+ return ProductItemScene2;
3707
+ })(ProductItemScene || {});
3708
+ const useProductTrack = (options) => {
3709
+ const { productTarget } = options;
3710
+ const { ProductType } = getProductTargetExport(productTarget);
3711
+ const { trackEvent } = useTrackEvent(productTarget == null ? void 0 : productTarget.iarCore);
3712
+ const trackedProductIds = ref({});
3713
+ const productListRef = ref(null);
3714
+ const productItemsRef = shallowRef([]);
3715
+ function setItemRef(el) {
3716
+ if (el) {
3717
+ productItemsRef.value.push(el);
3718
+ }
3719
+ }
3720
+ function trackProductViewEvent(productData) {
3721
+ const specAttrs = {
3722
+ name: productData.name,
3723
+ realPrice: productData.productType === ProductType.Normal ? productData.realPrice : "",
3724
+ productId: productData.productId,
3725
+ productType: productData.productType,
3726
+ productFeature: JSON.stringify(productData.featureTags)
3727
+ };
3728
+ if (productData.productType === ProductType.Normal && productData.originPrice !== void 0) {
3729
+ specAttrs.price = productData.originPrice;
3730
+ }
3731
+ trackEvent({
3732
+ event_id: "product_list_item_view",
3733
+ event_type: "show",
3734
+ spec_attrs: specAttrs
3735
+ });
3736
+ }
3737
+ function isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom) {
3738
+ const offsetTop = element.offsetTop;
3739
+ const offsetHeight = element.offsetHeight;
3740
+ const elementBottom = offsetTop + offsetHeight;
3741
+ const isFullyAbove = elementBottom <= containerScrollTop;
3742
+ const isBottomBelowViewportBottom = containerViewportBottom < elementBottom;
3743
+ return !isFullyAbove && !isBottomBelowViewportBottom;
3744
+ }
3745
+ function checkAndTrackProductItem(itemInstance, containerScrollTop, containerViewportBottom) {
3746
+ if (!itemInstance || !itemInstance.$el || !itemInstance.product || !itemInstance.product.productId) {
3747
+ return;
3748
+ }
3749
+ const element = itemInstance.$el;
3750
+ const productId = itemInstance.product.productId;
3751
+ const isVisible = isElementVisibleInScrollContainer(element, containerScrollTop, containerViewportBottom);
3752
+ if (isVisible && !trackedProductIds.value[productId]) {
3753
+ trackedProductIds.value = __spreadProps(__spreadValues({}, trackedProductIds.value), { [productId]: true });
3754
+ trackProductViewEvent(itemInstance.product);
3755
+ }
3756
+ }
3757
+ function trackProduct() {
3758
+ return __async(this, null, function* () {
3759
+ yield nextTick();
3760
+ const container = productListRef.value;
3761
+ if (!container || !productItemsRef.value.length) return;
3762
+ const scrollTop = container.scrollTop;
3763
+ const scrollClientHeight = container.clientHeight;
3764
+ const viewportBottom = scrollTop + scrollClientHeight;
3765
+ productItemsRef.value.forEach((itemInstance) => {
3766
+ checkAndTrackProductItem(itemInstance, scrollTop, viewportBottom);
3767
+ });
3768
+ });
3769
+ }
3770
+ function clearTrackedProducts() {
3771
+ trackedProductIds.value = {};
3772
+ productItemsRef.value = [];
3773
+ }
3774
+ function getCommonSpecAttrs(productData) {
3775
+ return {
3776
+ clickTime: (/* @__PURE__ */ new Date()).getTime(),
3777
+ linkType: isMobile ? "mobile" : "pc",
3778
+ productName: productData.name,
3779
+ productId: productData.productId,
3780
+ productType: productData.productType,
3781
+ feature: JSON.stringify(productData.featureTags),
3782
+ price: productData.productType === ProductType.Normal ? productData.originPrice : "",
3783
+ realPrice: productData.productType === ProductType.Normal ? productData.realPrice : ""
3784
+ };
3785
+ }
3786
+ function trackProductItemClick(productData) {
3787
+ trackEvent({
3788
+ event_id: "product_list_item_click",
3789
+ event_type: "click",
3790
+ spec_attrs: __spreadValues({}, getCommonSpecAttrs(productData))
3791
+ });
3792
+ }
3793
+ function trackProductPushItemClick(productData) {
3794
+ trackEvent({
3795
+ event_id: "product_push_item_click",
3796
+ event_type: "click",
3797
+ spec_attrs: __spreadProps(__spreadValues({}, getCommonSpecAttrs(productData)), {
3798
+ pushId: productData.pushLogId || ""
3799
+ })
3800
+ });
3801
+ }
3802
+ function trackProductPushItemView(productData) {
3803
+ trackEvent({
3804
+ event_id: "product_push_item_view",
3805
+ event_type: "show",
3806
+ spec_attrs: {
3807
+ linkType: isMobile ? "mobile" : "pc",
3808
+ productId: productData.productId,
3809
+ pushId: productData.pushLogId || ""
3810
+ }
3811
+ });
3812
+ }
3813
+ return {
3814
+ productListRef,
3815
+ setItemRef,
3816
+ trackProduct,
3817
+ clearTrackedProducts,
3818
+ trackProductItemClick,
3819
+ trackProductPushItemClick,
3820
+ trackProductPushItemView
3821
+ };
3822
+ };
3594
3823
  const productItemProps = () => __spreadProps(__spreadValues({}, productProps()), {
3595
- product: PropUtils.object().isRequired
3824
+ product: PropUtils.object().isRequired,
3825
+ scene: PropUtils.enum()
3596
3826
  });
3597
3827
  const productItemEmits = () => ({
3598
- "click-explain": emitFunc(),
3599
3828
  "click-product-item": emitFunc(),
3600
- "direct-buy": emitFunc()
3829
+ "direct-buy": emitFunc(),
3830
+ "open-position-detail": emitFunc()
3601
3831
  });
3602
3832
  const useProductItem = (options) => {
3603
3833
  const { props, emit } = options;
3604
3834
  const { ProductType, ProductBuyType } = getProductTargetExport(props.productTarget);
3605
3835
  const { getEmitter } = useGlobalInject();
3606
- const productExplainEnabled = ref(false);
3836
+ const { productExplainEnabled, handleClickExplain } = useProductExplain({ props });
3837
+ const { trackProductItemClick, trackProductPushItemClick } = useProductTrack({ productTarget: props.productTarget });
3607
3838
  const isProductRedirectLinkDirectly = ref(false);
3608
3839
  const shouldEllipsisTitle = computed(() => {
3609
3840
  const { product } = props;
3610
3841
  return !!(product.name && product.featureTags.length && (product.description && product.productType !== ProductType.Position));
3611
3842
  });
3612
- function setProductExplainEnabled() {
3613
- return __async(this, null, function* () {
3614
- if (!props.productTarget) return;
3615
- const enabled = yield props.productTarget.getProductExplainEnabled();
3616
- productExplainEnabled.value = enabled;
3617
- });
3618
- }
3619
- function setIsProductRedirectLinkDirectly() {
3843
+ function getIsProductRedirectLinkDirectly() {
3620
3844
  return __async(this, null, function* () {
3621
3845
  const { product, productTarget } = props;
3622
3846
  if (!product || !productTarget) return false;
@@ -3624,11 +3848,13 @@ const useProductItem = (options) => {
3624
3848
  isProductRedirectLinkDirectly.value = product.productType === ProductType.Normal && product.buyType === ProductBuyType.Link && enabled;
3625
3849
  });
3626
3850
  }
3627
- function onClickExplain(product) {
3628
- emit("click-explain", product);
3629
- }
3630
3851
  function onClickProductItem() {
3631
3852
  emit("click-product-item", props.product);
3853
+ if (props.scene === ProductItemScene.BigCard) {
3854
+ trackProductPushItemClick(props.product);
3855
+ } else {
3856
+ trackProductItemClick(props.product);
3857
+ }
3632
3858
  if (props.product.productType !== ProductType.Finance) {
3633
3859
  getEmitter().emit(productEvents.OpenProductDetailPopup, props.product);
3634
3860
  }
@@ -3636,18 +3862,15 @@ const useProductItem = (options) => {
3636
3862
  function onDirectBuy(product) {
3637
3863
  emit("direct-buy", product);
3638
3864
  }
3639
- onMounted(() => {
3640
- setProductExplainEnabled();
3641
- });
3642
3865
  watchEffect(() => {
3643
- setIsProductRedirectLinkDirectly();
3866
+ getIsProductRedirectLinkDirectly();
3644
3867
  });
3645
3868
  return {
3646
3869
  productExplainEnabled,
3647
3870
  isProductRedirectLinkDirectly,
3648
3871
  shouldEllipsisTitle,
3649
3872
  onDirectBuy,
3650
- onClickExplain,
3873
+ handleClickExplain,
3651
3874
  onClickProductItem
3652
3875
  };
3653
3876
  };
@@ -3657,7 +3880,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3657
3880
  emits: productItemEmits(),
3658
3881
  setup(__props, { emit }) {
3659
3882
  const props = __props;
3660
- const { ProductExplainStatus } = getProductTargetExport(props.productTarget);
3883
+ const { ProductExplainStatus, ProductType } = getProductTargetExport(props.productTarget);
3661
3884
  const { $t } = useI18n();
3662
3885
  const { isSoldOut } = useProductStock({
3663
3886
  product: () => props.product
@@ -3667,22 +3890,25 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3667
3890
  isProductRedirectLinkDirectly,
3668
3891
  shouldEllipsisTitle,
3669
3892
  onDirectBuy,
3670
- onClickExplain,
3671
- onClickProductItem
3893
+ onClickProductItem,
3894
+ handleClickExplain
3672
3895
  } = useProductItem({
3673
3896
  props,
3674
3897
  emit
3675
3898
  });
3676
- return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy, onClickExplain, onClickProductItem, ProductExplain, ProductTitle, ProductFeatureTag, ProductPrice, ProductButton, ossCompress };
3899
+ return { __sfc: true, props, emit, ProductExplainStatus, ProductType, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy, onClickProductItem, handleClickExplain, ProductExplain, ProductTitle, ProductFeatureTag, ProductPrice, ProductButton, ossCompress, ProductItemScene };
3677
3900
  }
3678
3901
  });
3679
3902
  var _sfc_render = function render6() {
3680
3903
  var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
3681
- 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) {
3904
+ 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) {
3682
3905
  return _c(_setup.ProductFeatureTag, { key: index, attrs: { "tag": tag } });
3683
- }), 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 }) {
3906
+ }), 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) {
3907
+ $event.stopPropagation();
3908
+ return _setup.emit("open-position-detail", _vm.product);
3909
+ } } }, [_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 }) {
3684
3910
  return [_c("button", { staticClass: "plv-product-item__buy-button", class: { "plv-product-item__buy-button--disabled": disabled } }, [_vm._v(" " + _vm._s(buttonText) + " ")])];
3685
- } }]) })], 1)])])]);
3911
+ } }], null, false, 477326030) }) : _vm._e()], 1)])])]);
3686
3912
  };
3687
3913
  var _sfc_staticRenderFns = [];
3688
3914
  var __component__ = /* @__PURE__ */ normalizeComponent(
@@ -3696,8 +3922,8 @@ console.log(
3696
3922
  "%c@polyv/product-ui",
3697
3923
  "background:#409EFF;padding: 2px 6px;border-radius: 3px;color: #fff",
3698
3924
  "[component: product-item]",
3699
- "[version: 1.0.0-rc-20250612.4]",
3700
- "[buildTime: 2025-06-12 09:58:17]"
3925
+ "[version: 1.2.0-rc-20250724.2]",
3926
+ "[buildTime: 2025-07-24 03:57:13]"
3701
3927
  );
3702
3928
  export {
3703
3929
  productItem as default