@polyv/product-ui 1.0.0-rc-20250612.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/address-edit.cjs.js +8 -0
- package/address-edit.es.d.ts +3 -0
- package/address-edit.es.js +5908 -0
- package/address-edit.umd.js +8 -0
- package/address-item.cjs.js +8 -0
- package/address-item.es.d.ts +3 -0
- package/address-item.es.js +425 -0
- package/address-item.umd.js +8 -0
- package/address-list.cjs.js +9 -0
- package/address-list.es.d.ts +3 -0
- package/address-list.es.js +1908 -0
- package/address-list.umd.js +9 -0
- package/index.cjs.js +8 -0
- package/index.es.js +15347 -0
- package/index.umd.js +8 -0
- package/mobile-product-pendant.cjs.js +8 -0
- package/mobile-product-pendant.es.d.ts +3 -0
- package/mobile-product-pendant.es.js +813 -0
- package/mobile-product-pendant.umd.js +8 -0
- package/order-confirm.cjs.js +9 -0
- package/order-confirm.es.d.ts +3 -0
- package/order-confirm.es.js +5254 -0
- package/order-confirm.umd.js +9 -0
- package/order-detail.cjs.js +8 -0
- package/order-detail.es.d.ts +3 -0
- package/order-detail.es.js +2474 -0
- package/order-detail.umd.js +8 -0
- package/order-item.cjs.js +8 -0
- package/order-item.es.d.ts +3 -0
- package/order-item.es.js +1448 -0
- package/order-item.umd.js +8 -0
- package/order-list-popup.cjs.js +9 -0
- package/order-list-popup.es.d.ts +3 -0
- package/order-list-popup.es.js +4114 -0
- package/order-list-popup.umd.js +9 -0
- package/order-list.cjs.js +8 -0
- package/order-list.es.d.ts +3 -0
- package/order-list.es.js +2572 -0
- package/order-list.umd.js +9 -0
- package/order-popup.cjs.js +9 -0
- package/order-popup.es.d.ts +3 -0
- package/order-popup.es.js +8050 -0
- package/order-popup.umd.js +9 -0
- package/package.json +28 -0
- package/pc-product-pendant.cjs.js +9 -0
- package/pc-product-pendant.es.d.ts +3 -0
- package/pc-product-pendant.es.js +1604 -0
- package/pc-product-pendant.umd.js +9 -0
- package/product-button.cjs.js +9 -0
- package/product-button.es.d.ts +3 -0
- package/product-button.es.js +1882 -0
- package/product-button.umd.js +9 -0
- package/product-detail-popup.cjs.js +9 -0
- package/product-detail-popup.es.d.ts +3 -0
- package/product-detail-popup.es.js +8250 -0
- package/product-detail-popup.umd.js +9 -0
- package/product-detail.cjs.js +9 -0
- package/product-detail.es.d.ts +3 -0
- package/product-detail.es.js +8082 -0
- package/product-detail.umd.js +9 -0
- package/product-iframe-link-popup.cjs.js +9 -0
- package/product-iframe-link-popup.es.d.ts +3 -0
- package/product-iframe-link-popup.es.js +2209 -0
- package/product-iframe-link-popup.umd.js +9 -0
- package/product-item.cjs.js +8 -0
- package/product-item.es.d.ts +3 -0
- package/product-item.es.js +3700 -0
- package/product-item.umd.js +9 -0
- package/product-list-popup.cjs.js +9 -0
- package/product-list-popup.es.d.ts +3 -0
- package/product-list-popup.es.js +5302 -0
- package/product-list-popup.umd.js +9 -0
- package/product-list.cjs.js +9 -0
- package/product-list.es.d.ts +3 -0
- package/product-list.es.js +5189 -0
- package/product-list.umd.js +9 -0
|
@@ -0,0 +1,3700 @@
|
|
|
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,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAJiklEQVR4Xu3du4ucVRjH8TOE7LRWVhZWioraWKlg0MJSEHJTsPAf8B9QDAiiIFpZipVgl8Q/QUSwjWhh1EqsZDdo2M3FXWV2d7I793Pec3suX8v4vuc85/c8n8w7M9lkFPiPBEhgaQKPfv7PlRHZkAAJLCZwiGMU3gcI00ECcwlMcUx+GSCMBwmcSuA0DoAwGiSwBgdAGA8SOE5g/pVjGgyPWIyI+wRW4eAVxP1oEMA6HABhPlwnsAkHQFyPh+/Dx+AAiO8ZcXv6WBwAcTsifg+eggMgfufE5clTcQDE5Zj4PPQQHADxOSvuTj0UB0DcjYq/A+fgAIi/eXF14lwcAHE1Lr4OWwIHQHzNjJvTlsIBEDcj4+egJXEAxM/cuDhpaRwAcTE2Pg5ZAwdAfMyO+VPWwgEQ86Nj/4A1cQDE/vyYPmFtHAAxPT62D9cCB0Bsz5DZ07XCARCzI2T3YC1xAMTuHJk8WWscADE5RjYP1QMHQGzOkrlT9cIBEHOjZO9APXEAxN48mTpRbxwAMTVOtg4jAQdAbM2UmdNIwQEQMyNl5yCScADEzlyZOIk0HAAxMVY2DiERB0BszJb6U0jFARD1o6X/AJJxAET/fKk+gXQcAFE9XrqL14ADILpnTG31WnAARO2I6S1cEw6A6J0zlZVrwwEQlWOms2iNOACic9bUVa0VB0DUjZq+gjXjAIi+eVNVsXYcAFE1brqKtYADILpmTk21VnAARM3I6SnUEg6A6Jk7FZVawwEQFWOno0iLOACiY/bEV2kVB0DEj578Ai3jAIj8+RNdoXUcABE9frKL84ADILJnUGx1XnAAROwIyi3MEw6AyJ1DkZV5wwEQkWMosyiPOAAicxbFVeUVB0DEjaK8gjzjAIi8eRRVkXccABE1jrKKAcdRP0ay2kI1EhIAx0kXACJhIgXVAI7ZZgBE0HD2LgUcix0ASO+pFLI/OJY3AiBCBrRnGeBYnT5Aek6mgL3Bsb4JABEwpL1KAMfm5AGyOSOTV4Ajrq0AicvJ1FXgiG8nQOKzMnElONLaCJC0vFRfDY709gEkPTOVd4BjWNsAMiw3VXeBY3i7ADI8OxV3giOvTQDJy0/03eDIbw9A8jMUuQI4yrQFIGVyFLUKOMq1AyDlshSxEjjKtgEgZfPsuho4yscPkPKZdlkRHHViB0idXJuuCo56cQOkXrZNVgZH3ZgBUjffqquDo2q8h4sDpH7GVXYAR5VYFxYFSJuci+4CjqJxrl0MIO2yLrITOIrEGL0IQKKj6n8hONr3ACDtMx+0IzgGxZZ9E0CyI6y/ADjqZ7xqB4D0yz5qZ3BExVTtIoBUizZ/YXDkZ5i7AkByE6x0PzgqBZu4LEASA2txOThapBy3B0Dicmp2FTiaRR21EUCiYmpzETja5JyyC0BS0qp4LTgqhpuxNEAywit1KzhKJVl+HYCUzzRpRXAkxdX8YoA0j/xkQ3B0DD9ya4BEBlX6MnCUTrTOegCpk+vaVcHRIfSBWwJkYHBDbwPH0OT63AeQhrmDo2HYhbYCSKEgNy0Djk0Jyfz/AGnQF3A0CLnSFgCpFOx0WXBUDrjy8gCpGDA48sJ9/pEz4fs/9vMWybwbIJkBrrodHHnBXnlxK7z19Fb44Lu74csf7+ctlnE3QDLCA0eF8EIIUxzT1XsiAUjhHvPKkRfoPI7eSACS18+Zu8GRF+YqHD2RACSvpw/uBkdekJtwTFd/79s74auf/s3bLOFugCSExXuOAmEtWSIWRw8kAMnsOa8ceQGm4miNBCAZ/QVHRnhLPq1KXa3F4xZAUrtyfD04BgZ3fNvQV475XWsjAciAPoNjQGinbimFo8XjFkASew2OxMDmLi+NozYSgCT0GxwJYRX4tCp1txqPWwCJ7AI4IoNacVmtV47a70kAEtF3cESEtOaSVjhqPG4BZEPvwaELR2kkAFnTfwk43nluK3xx4364fe+/vEntcPe7L2yFt5/Z6rBzCDd3DsKrX+9m7w2QFRH2xjFpzKevjMNrj50NP/+1Hy5d2wu3+/1YRPKgtX6sOl3gbzsH4eK13bB9J7nshRsAsiRDSTim5WlCYgXHJHuAzAGRiEMTEks4AKIIhwYk1nAA5BQQya8c80+BEh+3PnxpHC49eTb/oX/ACiXfc8xvzyNWCEETDomvJFZx8AqiFIckJJZxuAei8ZVj2ePWG9f3wt/3BjybZN5iHYdrIBZwTOf7l+39cOFqWyQecLgFYglHDyRecLgEYhFHSySecLgDYhlHCyTecLgC4gFHTSQecbgB0hvHJOjPjv/gYeYHR9G3l3zj7hWHCyAScHx8bhzOP9H+W+YSSDzjMA9EAo5JyJ+8PA6vP94eyGTvHCTecZgGIgXH9JmoN5LL1/fCTsLPR4DjqHMm/yyWNBwSkPx+6yCcv7obhQQcJ2/1zAGRikMLEnDMfg5iCoh0HNKRgGPxQ0IzQLTgkIoEHMs/QTcBRBsOaUjAsfrrJfVAtOKYtuSjc+NwocN3JJP9f905CD/8uR/efKrPR9A3tw/C5W/2wvae3L/SSDUQ7TgkvJJEfzVf+MKaPyZbslS1QKzg8IhECw6134NYw+EJiSYcKoFYxeEBiTYc6oBYx2EZiUYcqoB4wWERiVYcaoB4w2EJiWYcKoB4xWEBiXYc4oF4x6EZiQUcooGAY/brrp4/T5L6xZsVHGKBgGP5SGpAYgmHSCDgWP/7tWQk1nCIAwKOuIcZiUgs4hAFBBxxOCS+cbeKQwwQcKThkITEMg4RQMAxDIcEJNZxdAcCjjwcPZF4wNEVCDjK4OiBxAuObkDAURZHSySecHQBAo46OFog8YajORBw1MVRE4lHHE2BgKMNjhpIvOJoBgQcbXGUROIZRxMg4OiDowQS7ziqAwFHXxw5SMBxlF61vxcLHDJwDEECjpPeVQECDlk4UpCAY7Z3xYGAQyaOGCTgWOxdUSDgkI1jHRJwLO9dMSDg0IFjGRJwrO5dESDg0IXjNJJnHz4TLl7bDdsJ/8CnztMOqzobCDiGBS/lrofGo3Drrtx/n6N3TllAwNG7fexfO4HBQMBRuzWsLyGBQUDAIaF11NAigWQg4GjRFvaQkkASEHBIaRt1tEogGgg4WrWEfSQlEAUEHJJaRi0tE9gIBBwt28Fe0hJYCwQc0tpFPa0TWAkEHK1bwX4SE1gKBBwSW0VNPRJYAAKOHm1gT6kJzAABh9Q2UVevBB4AAUevFrCv5AQOgYBDcouorWcCI3D0jJ+9pSfwP3eG5IxiNQqFAAAAAElFTkSuQmCC);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)}}();
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __spreadValues = (a2, b2) => {
|
|
10
|
+
for (var prop in b2 || (b2 = {}))
|
|
11
|
+
if (__hasOwnProp.call(b2, prop))
|
|
12
|
+
__defNormalProp(a2, prop, b2[prop]);
|
|
13
|
+
if (__getOwnPropSymbols)
|
|
14
|
+
for (var prop of __getOwnPropSymbols(b2)) {
|
|
15
|
+
if (__propIsEnum.call(b2, prop))
|
|
16
|
+
__defNormalProp(a2, prop, b2[prop]);
|
|
17
|
+
}
|
|
18
|
+
return a2;
|
|
19
|
+
};
|
|
20
|
+
var __spreadProps = (a2, b2) => __defProps(a2, __getOwnPropDescs(b2));
|
|
21
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
22
|
+
var __async = (__this, __arguments, generator) => {
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
var fulfilled = (value) => {
|
|
25
|
+
try {
|
|
26
|
+
step(generator.next(value));
|
|
27
|
+
} catch (e) {
|
|
28
|
+
reject(e);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var rejected = (value) => {
|
|
32
|
+
try {
|
|
33
|
+
step(generator.throw(value));
|
|
34
|
+
} catch (e) {
|
|
35
|
+
reject(e);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var step = (x2) => x2.done ? resolve(x2.value) : Promise.resolve(x2.value).then(fulfilled, rejected);
|
|
39
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
import { onMounted, onBeforeUnmount, inject, computed, defineComponent, ref, watch, nextTick, unref, watchEffect } from "vue";
|
|
43
|
+
/*!
|
|
44
|
+
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
|
|
45
|
+
*
|
|
46
|
+
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
47
|
+
* Released under the MIT License.
|
|
48
|
+
*/
|
|
49
|
+
function isObject$1(o2) {
|
|
50
|
+
return Object.prototype.toString.call(o2) === "[object Object]";
|
|
51
|
+
}
|
|
52
|
+
function isPlainObject(o2) {
|
|
53
|
+
var ctor, prot;
|
|
54
|
+
if (isObject$1(o2) === false) return false;
|
|
55
|
+
ctor = o2.constructor;
|
|
56
|
+
if (ctor === void 0) return true;
|
|
57
|
+
prot = ctor.prototype;
|
|
58
|
+
if (isObject$1(prot) === false) return false;
|
|
59
|
+
if (prot.hasOwnProperty("isPrototypeOf") === false) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
var define_process_env_default = {};
|
|
65
|
+
function t() {
|
|
66
|
+
return t = Object.assign ? Object.assign.bind() : function(e2) {
|
|
67
|
+
for (var t2 = 1; t2 < arguments.length; t2++) {
|
|
68
|
+
var n2 = arguments[t2];
|
|
69
|
+
for (var r2 in n2) Object.prototype.hasOwnProperty.call(n2, r2) && (e2[r2] = n2[r2]);
|
|
70
|
+
}
|
|
71
|
+
return e2;
|
|
72
|
+
}, t.apply(this, arguments);
|
|
73
|
+
}
|
|
74
|
+
function n(e2, t2) {
|
|
75
|
+
if (null == e2) return {};
|
|
76
|
+
var n2 = {};
|
|
77
|
+
for (var r2 in e2) if (Object.prototype.hasOwnProperty.call(e2, r2)) {
|
|
78
|
+
if (t2.indexOf(r2) >= 0) continue;
|
|
79
|
+
n2[r2] = e2[r2];
|
|
80
|
+
}
|
|
81
|
+
return n2;
|
|
82
|
+
}
|
|
83
|
+
const r = { silent: false, logLevel: "warn" }, i = ["validator"], o = Object.prototype, a = o.toString, s = o.hasOwnProperty, u = /^\s*function (\w+)/;
|
|
84
|
+
function l(e2) {
|
|
85
|
+
var t2;
|
|
86
|
+
const n2 = null !== (t2 = null == e2 ? void 0 : e2.type) && void 0 !== t2 ? t2 : e2;
|
|
87
|
+
if (n2) {
|
|
88
|
+
const e3 = n2.toString().match(u);
|
|
89
|
+
return e3 ? e3[1] : "";
|
|
90
|
+
}
|
|
91
|
+
return "";
|
|
92
|
+
}
|
|
93
|
+
const c = isPlainObject;
|
|
94
|
+
function f() {
|
|
95
|
+
}
|
|
96
|
+
let d = f;
|
|
97
|
+
if ("production" !== define_process_env_default.NODE_ENV) {
|
|
98
|
+
const e2 = "undefined" != typeof console;
|
|
99
|
+
d = e2 ? function(e3, t2 = r.logLevel) {
|
|
100
|
+
false === r.silent && console[t2](`[VueTypes warn]: ${e3}`);
|
|
101
|
+
} : f;
|
|
102
|
+
}
|
|
103
|
+
const p = (e2, t2) => s.call(e2, t2), y = Number.isInteger || function(e2) {
|
|
104
|
+
return "number" == typeof e2 && isFinite(e2) && Math.floor(e2) === e2;
|
|
105
|
+
}, v = Array.isArray || function(e2) {
|
|
106
|
+
return "[object Array]" === a.call(e2);
|
|
107
|
+
}, h = (e2) => "[object Function]" === a.call(e2), b = (e2, t2) => c(e2) && p(e2, "_vueTypes_name") && (!t2 || e2._vueTypes_name === t2), g = (e2) => c(e2) && (p(e2, "type") || ["_vueTypes_name", "validator", "default", "required"].some((t2) => p(e2, t2)));
|
|
108
|
+
function O(e2, t2) {
|
|
109
|
+
return Object.defineProperty(e2.bind(t2), "__original", { value: e2 });
|
|
110
|
+
}
|
|
111
|
+
function m(e2, t2, n2 = false) {
|
|
112
|
+
let r2, i2 = true, o2 = "";
|
|
113
|
+
r2 = c(e2) ? e2 : { type: e2 };
|
|
114
|
+
const a2 = b(r2) ? r2._vueTypes_name + " - " : "";
|
|
115
|
+
if (g(r2) && null !== r2.type) {
|
|
116
|
+
if (void 0 === r2.type || true === r2.type) return i2;
|
|
117
|
+
if (!r2.required && null == t2) return i2;
|
|
118
|
+
v(r2.type) ? (i2 = r2.type.some((e3) => true === m(e3, t2, true)), o2 = r2.type.map((e3) => l(e3)).join(" or ")) : (o2 = l(r2), i2 = "Array" === o2 ? v(t2) : "Object" === o2 ? c(t2) : "String" === o2 || "Number" === o2 || "Boolean" === o2 || "Function" === o2 ? function(e3) {
|
|
119
|
+
if (null == e3) return "";
|
|
120
|
+
const t3 = e3.constructor.toString().match(u);
|
|
121
|
+
return t3 ? t3[1].replace(/^Async/, "") : "";
|
|
122
|
+
}(t2) === o2 : t2 instanceof r2.type);
|
|
123
|
+
}
|
|
124
|
+
if (!i2) {
|
|
125
|
+
const e3 = `${a2}value "${t2}" should be of type "${o2}"`;
|
|
126
|
+
return false === n2 ? (d(e3), false) : e3;
|
|
127
|
+
}
|
|
128
|
+
if (p(r2, "validator") && h(r2.validator)) {
|
|
129
|
+
const e3 = d, o3 = [];
|
|
130
|
+
if (d = (e4) => {
|
|
131
|
+
o3.push(e4);
|
|
132
|
+
}, i2 = r2.validator(t2), d = e3, !i2) {
|
|
133
|
+
const e4 = (o3.length > 1 ? "* " : "") + o3.join("\n* ");
|
|
134
|
+
return o3.length = 0, false === n2 ? (d(e4), i2) : e4;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return i2;
|
|
138
|
+
}
|
|
139
|
+
function j(e2, t2) {
|
|
140
|
+
const n2 = Object.defineProperties(t2, { _vueTypes_name: { value: e2, writable: true }, isRequired: { get() {
|
|
141
|
+
return this.required = true, this;
|
|
142
|
+
} }, def: { value(e3) {
|
|
143
|
+
return void 0 === e3 ? this.type === Boolean || Array.isArray(this.type) && this.type.includes(Boolean) ? void (this.default = void 0) : (p(this, "default") && delete this.default, this) : h(e3) || true === m(this, e3, true) ? (this.default = v(e3) ? () => [...e3] : c(e3) ? () => Object.assign({}, e3) : e3, this) : (d(`${this._vueTypes_name} - invalid default value: "${e3}"`), this);
|
|
144
|
+
} } }), { validator: r2 } = n2;
|
|
145
|
+
return h(r2) && (n2.validator = O(r2, n2)), n2;
|
|
146
|
+
}
|
|
147
|
+
function _(e2, t2) {
|
|
148
|
+
const n2 = j(e2, t2);
|
|
149
|
+
return Object.defineProperty(n2, "validate", { value(e3) {
|
|
150
|
+
return h(this.validator) && d(`${this._vueTypes_name} - calling .validate() will overwrite the current custom validator function. Validator info:
|
|
151
|
+
${JSON.stringify(this)}`), this.validator = O(e3, this), this;
|
|
152
|
+
} });
|
|
153
|
+
}
|
|
154
|
+
function T(e2, t2, r2) {
|
|
155
|
+
const o2 = function(e3) {
|
|
156
|
+
const t3 = {};
|
|
157
|
+
return Object.getOwnPropertyNames(e3).forEach((n2) => {
|
|
158
|
+
t3[n2] = Object.getOwnPropertyDescriptor(e3, n2);
|
|
159
|
+
}), Object.defineProperties({}, t3);
|
|
160
|
+
}(t2);
|
|
161
|
+
if (o2._vueTypes_name = e2, !c(r2)) return o2;
|
|
162
|
+
const { validator: a2 } = r2, s2 = n(r2, i);
|
|
163
|
+
if (h(a2)) {
|
|
164
|
+
let { validator: e3 } = o2;
|
|
165
|
+
e3 && (e3 = null !== (l2 = (u2 = e3).__original) && void 0 !== l2 ? l2 : u2), o2.validator = O(e3 ? function(t3) {
|
|
166
|
+
return e3.call(this, t3) && a2.call(this, t3);
|
|
167
|
+
} : a2, o2);
|
|
168
|
+
}
|
|
169
|
+
var u2, l2;
|
|
170
|
+
return Object.assign(o2, s2);
|
|
171
|
+
}
|
|
172
|
+
function $(e2) {
|
|
173
|
+
return e2.replace(/^(?!\s*$)/gm, " ");
|
|
174
|
+
}
|
|
175
|
+
const w = () => _("any", {}), x = () => _("function", { type: Function }), P = () => _("boolean", { type: Boolean }), A = () => _("string", { type: String }), E = () => _("number", { type: Number }), S = () => _("array", { type: Array }), N = () => _("object", { type: Object }), V = () => j("integer", { type: Number, validator(e2) {
|
|
176
|
+
const t2 = y(e2);
|
|
177
|
+
return false === t2 && d(`integer - "${e2}" is not an integer`), t2;
|
|
178
|
+
} }), q = () => j("symbol", { validator(e2) {
|
|
179
|
+
const t2 = "symbol" == typeof e2;
|
|
180
|
+
return false === t2 && d(`symbol - invalid value "${e2}"`), t2;
|
|
181
|
+
} }), k = () => Object.defineProperty({ type: null, validator(e2) {
|
|
182
|
+
const t2 = null === e2;
|
|
183
|
+
return false === t2 && d("nullable - value should be null"), t2;
|
|
184
|
+
} }, "_vueTypes_name", { value: "nullable" });
|
|
185
|
+
function D(e2, t2 = "custom validation failed") {
|
|
186
|
+
if ("function" != typeof e2) throw new TypeError("[VueTypes error]: You must provide a function as argument");
|
|
187
|
+
return j(e2.name || "<<anonymous function>>", { type: null, validator(n2) {
|
|
188
|
+
const r2 = e2(n2);
|
|
189
|
+
return r2 || d(`${this._vueTypes_name} - ${t2}`), r2;
|
|
190
|
+
} });
|
|
191
|
+
}
|
|
192
|
+
function L(e2) {
|
|
193
|
+
if (!v(e2)) throw new TypeError("[VueTypes error]: You must provide an array as argument.");
|
|
194
|
+
const t2 = `oneOf - value should be one of "${e2.map((e3) => "symbol" == typeof e3 ? e3.toString() : e3).join('", "')}".`, n2 = { validator(n3) {
|
|
195
|
+
const r2 = -1 !== e2.indexOf(n3);
|
|
196
|
+
return r2 || d(t2), r2;
|
|
197
|
+
} };
|
|
198
|
+
if (-1 === e2.indexOf(null)) {
|
|
199
|
+
const t3 = e2.reduce((e3, t4) => {
|
|
200
|
+
if (null != t4) {
|
|
201
|
+
const n3 = t4.constructor;
|
|
202
|
+
-1 === e3.indexOf(n3) && e3.push(n3);
|
|
203
|
+
}
|
|
204
|
+
return e3;
|
|
205
|
+
}, []);
|
|
206
|
+
t3.length > 0 && (n2.type = t3);
|
|
207
|
+
}
|
|
208
|
+
return j("oneOf", n2);
|
|
209
|
+
}
|
|
210
|
+
function B(e2) {
|
|
211
|
+
if (!v(e2)) throw new TypeError("[VueTypes error]: You must provide an array as argument");
|
|
212
|
+
let t2 = false, n2 = false, r2 = [];
|
|
213
|
+
for (let i3 = 0; i3 < e2.length; i3 += 1) {
|
|
214
|
+
const o2 = e2[i3];
|
|
215
|
+
if (g(o2)) {
|
|
216
|
+
if (h(o2.validator) && (t2 = true), b(o2, "oneOf") && o2.type) {
|
|
217
|
+
r2 = r2.concat(o2.type);
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
if (b(o2, "nullable")) {
|
|
221
|
+
n2 = true;
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
if (true === o2.type || !o2.type) {
|
|
225
|
+
d('oneOfType - invalid usage of "true" and "null" as types.');
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
r2 = r2.concat(o2.type);
|
|
229
|
+
} else r2.push(o2);
|
|
230
|
+
}
|
|
231
|
+
r2 = r2.filter((e3, t3) => r2.indexOf(e3) === t3);
|
|
232
|
+
const i2 = false === n2 && r2.length > 0 ? r2 : null;
|
|
233
|
+
return j("oneOfType", t2 ? { type: i2, validator(t3) {
|
|
234
|
+
const n3 = [], r3 = e2.some((e3) => {
|
|
235
|
+
const r4 = m(e3, t3, true);
|
|
236
|
+
return "string" == typeof r4 && n3.push(r4), true === r4;
|
|
237
|
+
});
|
|
238
|
+
return r3 || d(`oneOfType - provided value does not match any of the ${n3.length} passed-in validators:
|
|
239
|
+
${$(n3.join("\n"))}`), r3;
|
|
240
|
+
} } : { type: i2 });
|
|
241
|
+
}
|
|
242
|
+
function F(e2) {
|
|
243
|
+
return j("arrayOf", { type: Array, validator(t2) {
|
|
244
|
+
let n2 = "";
|
|
245
|
+
const r2 = t2.every((t3) => (n2 = m(e2, t3, true), true === n2));
|
|
246
|
+
return r2 || d(`arrayOf - value validation error:
|
|
247
|
+
${$(n2)}`), r2;
|
|
248
|
+
} });
|
|
249
|
+
}
|
|
250
|
+
function Y(e2) {
|
|
251
|
+
return j("instanceOf", { type: e2 });
|
|
252
|
+
}
|
|
253
|
+
function I(e2) {
|
|
254
|
+
return j("objectOf", { type: Object, validator(t2) {
|
|
255
|
+
let n2 = "";
|
|
256
|
+
const r2 = Object.keys(t2).every((r3) => (n2 = m(e2, t2[r3], true), true === n2));
|
|
257
|
+
return r2 || d(`objectOf - value validation error:
|
|
258
|
+
${$(n2)}`), r2;
|
|
259
|
+
} });
|
|
260
|
+
}
|
|
261
|
+
function J(e2) {
|
|
262
|
+
const t2 = Object.keys(e2), n2 = t2.filter((t3) => {
|
|
263
|
+
var n3;
|
|
264
|
+
return !(null === (n3 = e2[t3]) || void 0 === n3 || !n3.required);
|
|
265
|
+
}), r2 = j("shape", { type: Object, validator(r3) {
|
|
266
|
+
if (!c(r3)) return false;
|
|
267
|
+
const i2 = Object.keys(r3);
|
|
268
|
+
if (n2.length > 0 && n2.some((e3) => -1 === i2.indexOf(e3))) {
|
|
269
|
+
const e3 = n2.filter((e4) => -1 === i2.indexOf(e4));
|
|
270
|
+
return d(1 === e3.length ? `shape - required property "${e3[0]}" is not defined.` : `shape - required properties "${e3.join('", "')}" are not defined.`), false;
|
|
271
|
+
}
|
|
272
|
+
return i2.every((n3) => {
|
|
273
|
+
if (-1 === t2.indexOf(n3)) return true === this._vueTypes_isLoose || (d(`shape - shape definition does not include a "${n3}" property. Allowed keys: "${t2.join('", "')}".`), false);
|
|
274
|
+
const i3 = m(e2[n3], r3[n3], true);
|
|
275
|
+
return "string" == typeof i3 && d(`shape - "${n3}" property validation error:
|
|
276
|
+
${$(i3)}`), true === i3;
|
|
277
|
+
});
|
|
278
|
+
} });
|
|
279
|
+
return Object.defineProperty(r2, "_vueTypes_isLoose", { writable: true, value: false }), Object.defineProperty(r2, "loose", { get() {
|
|
280
|
+
return this._vueTypes_isLoose = true, this;
|
|
281
|
+
} }), r2;
|
|
282
|
+
}
|
|
283
|
+
const M = ["name", "validate", "getter"], R = /* @__PURE__ */ ((e2) => ((e2 = class {
|
|
284
|
+
static get any() {
|
|
285
|
+
return w();
|
|
286
|
+
}
|
|
287
|
+
static get func() {
|
|
288
|
+
return x().def(this.defaults.func);
|
|
289
|
+
}
|
|
290
|
+
static get bool() {
|
|
291
|
+
return void 0 === this.defaults.bool ? P() : P().def(this.defaults.bool);
|
|
292
|
+
}
|
|
293
|
+
static get string() {
|
|
294
|
+
return A().def(this.defaults.string);
|
|
295
|
+
}
|
|
296
|
+
static get number() {
|
|
297
|
+
return E().def(this.defaults.number);
|
|
298
|
+
}
|
|
299
|
+
static get array() {
|
|
300
|
+
return S().def(this.defaults.array);
|
|
301
|
+
}
|
|
302
|
+
static get object() {
|
|
303
|
+
return N().def(this.defaults.object);
|
|
304
|
+
}
|
|
305
|
+
static get integer() {
|
|
306
|
+
return V().def(this.defaults.integer);
|
|
307
|
+
}
|
|
308
|
+
static get symbol() {
|
|
309
|
+
return q();
|
|
310
|
+
}
|
|
311
|
+
static get nullable() {
|
|
312
|
+
return k();
|
|
313
|
+
}
|
|
314
|
+
static extend(e3) {
|
|
315
|
+
if (d("VueTypes.extend is deprecated. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details."), v(e3)) return e3.forEach((e4) => this.extend(e4)), this;
|
|
316
|
+
const { name: t2, validate: r2 = false, getter: i2 = false } = e3, o2 = n(e3, M);
|
|
317
|
+
if (p(this, t2)) throw new TypeError(`[VueTypes error]: Type "${t2}" already defined`);
|
|
318
|
+
const { type: a2 } = o2;
|
|
319
|
+
if (b(a2)) return delete o2.type, Object.defineProperty(this, t2, i2 ? { get: () => T(t2, a2, o2) } : { value(...e4) {
|
|
320
|
+
const n2 = T(t2, a2, o2);
|
|
321
|
+
return n2.validator && (n2.validator = n2.validator.bind(n2, ...e4)), n2;
|
|
322
|
+
} });
|
|
323
|
+
let s2;
|
|
324
|
+
return s2 = i2 ? { get() {
|
|
325
|
+
const e4 = Object.assign({}, o2);
|
|
326
|
+
return r2 ? _(t2, e4) : j(t2, e4);
|
|
327
|
+
}, enumerable: true } : { value(...e4) {
|
|
328
|
+
const n2 = Object.assign({}, o2);
|
|
329
|
+
let i3;
|
|
330
|
+
return i3 = r2 ? _(t2, n2) : j(t2, n2), n2.validator && (i3.validator = n2.validator.bind(i3, ...e4)), i3;
|
|
331
|
+
}, enumerable: true }, Object.defineProperty(this, t2, s2);
|
|
332
|
+
}
|
|
333
|
+
}).defaults = {}, e2.sensibleDefaults = void 0, e2.config = r, e2.custom = D, e2.oneOf = L, e2.instanceOf = Y, e2.oneOfType = B, e2.arrayOf = F, e2.objectOf = I, e2.shape = J, e2.utils = { validate: (e3, t2) => true === m(t2, e3, true), toType: (e3, t2, n2 = false) => n2 ? _(e3, t2) : j(e3, t2) }, e2))();
|
|
334
|
+
function U(e2 = { func: () => {
|
|
335
|
+
}, bool: true, string: "", number: 0, array: () => [], object: () => ({}), integer: 0 }) {
|
|
336
|
+
var n2;
|
|
337
|
+
return (n2 = class extends R {
|
|
338
|
+
static get sensibleDefaults() {
|
|
339
|
+
return t({}, this.defaults);
|
|
340
|
+
}
|
|
341
|
+
static set sensibleDefaults(n3) {
|
|
342
|
+
this.defaults = false !== n3 ? t({}, true !== n3 ? n3 : e2) : {};
|
|
343
|
+
}
|
|
344
|
+
}).defaults = t({}, e2), n2;
|
|
345
|
+
}
|
|
346
|
+
class z extends U() {
|
|
347
|
+
}
|
|
348
|
+
class PropUtils {
|
|
349
|
+
/** String 类型,默认:'' */
|
|
350
|
+
static get string() {
|
|
351
|
+
return A().def("");
|
|
352
|
+
}
|
|
353
|
+
/** String 类型,默认:undefined */
|
|
354
|
+
static get looseString() {
|
|
355
|
+
return A();
|
|
356
|
+
}
|
|
357
|
+
/** Number 类型,默认:0 */
|
|
358
|
+
static get number() {
|
|
359
|
+
return E().def(0);
|
|
360
|
+
}
|
|
361
|
+
/** Number 类型,默认:undefined */
|
|
362
|
+
static get looseNumber() {
|
|
363
|
+
return E();
|
|
364
|
+
}
|
|
365
|
+
/** Boolean 类型,默认:true */
|
|
366
|
+
static get bool() {
|
|
367
|
+
return P().def(true);
|
|
368
|
+
}
|
|
369
|
+
static get looseBool() {
|
|
370
|
+
return B([]).def(void 0);
|
|
371
|
+
}
|
|
372
|
+
static get looseElement() {
|
|
373
|
+
return B([]).def(void 0);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
__publicField(PropUtils, "objectType", N);
|
|
377
|
+
/** Array 类型,默认:[] */
|
|
378
|
+
__publicField(PropUtils, "array", () => {
|
|
379
|
+
return S().def([]);
|
|
380
|
+
});
|
|
381
|
+
/** Object 类型 */
|
|
382
|
+
__publicField(PropUtils, "object", N);
|
|
383
|
+
/** Function 类型 */
|
|
384
|
+
__publicField(PropUtils, "func", x);
|
|
385
|
+
/** 指定为数组中的值 */
|
|
386
|
+
__publicField(PropUtils, "oneOf", L);
|
|
387
|
+
/** 自定义类型 */
|
|
388
|
+
__publicField(PropUtils, "oneOfType", B);
|
|
389
|
+
/** 枚举类型 */
|
|
390
|
+
__publicField(PropUtils, "enum", A);
|
|
391
|
+
/** 任意类型 */
|
|
392
|
+
__publicField(PropUtils, "any", w);
|
|
393
|
+
const emitFunc = () => () => true;
|
|
394
|
+
function mitt(n2) {
|
|
395
|
+
return { all: n2 = n2 || /* @__PURE__ */ new Map(), on: function(t2, e) {
|
|
396
|
+
var i2 = n2.get(t2);
|
|
397
|
+
i2 ? i2.push(e) : n2.set(t2, [e]);
|
|
398
|
+
}, off: function(t2, e) {
|
|
399
|
+
var i2 = n2.get(t2);
|
|
400
|
+
i2 && (e ? i2.splice(i2.indexOf(e) >>> 0, 1) : n2.set(t2, []));
|
|
401
|
+
}, emit: function(t2, e) {
|
|
402
|
+
var i2 = n2.get(t2);
|
|
403
|
+
i2 && i2.slice().map(function(n3) {
|
|
404
|
+
n3(e);
|
|
405
|
+
}), (i2 = n2.get("*")) && i2.slice().map(function(n3) {
|
|
406
|
+
n3(t2, e);
|
|
407
|
+
});
|
|
408
|
+
} };
|
|
409
|
+
}
|
|
410
|
+
const globalKey = "__product-event-emitter-key";
|
|
411
|
+
function createEmitter() {
|
|
412
|
+
if (window[globalKey]) {
|
|
413
|
+
return window[globalKey];
|
|
414
|
+
}
|
|
415
|
+
const emitter = mitt();
|
|
416
|
+
window[globalKey] = emitter;
|
|
417
|
+
return emitter;
|
|
418
|
+
}
|
|
419
|
+
const useEventBusListener = (event, callback) => {
|
|
420
|
+
const { getEmitter } = useGlobalInject();
|
|
421
|
+
onMounted(() => {
|
|
422
|
+
getEmitter().on(event, callback);
|
|
423
|
+
});
|
|
424
|
+
onBeforeUnmount(() => {
|
|
425
|
+
getEmitter().off(event, callback);
|
|
426
|
+
});
|
|
427
|
+
};
|
|
428
|
+
var LangType = /* @__PURE__ */ ((LangType2) => {
|
|
429
|
+
LangType2["ZH_CN"] = "zh_CN";
|
|
430
|
+
LangType2["ZH_TW"] = "zh_TW";
|
|
431
|
+
LangType2["English"] = "en";
|
|
432
|
+
LangType2["Japanese"] = "ja";
|
|
433
|
+
LangType2["Korean"] = "ko";
|
|
434
|
+
LangType2["Russian"] = "ru";
|
|
435
|
+
return LangType2;
|
|
436
|
+
})(LangType || {});
|
|
437
|
+
const ProductInjectKey = "interactGlobalConfigV2";
|
|
438
|
+
const useGlobalInject = () => {
|
|
439
|
+
const injectData = inject(ProductInjectKey, {
|
|
440
|
+
globalLang: LangType.ZH_CN
|
|
441
|
+
});
|
|
442
|
+
const toast = (msg) => {
|
|
443
|
+
if (injectData.toast) {
|
|
444
|
+
injectData.toast(msg);
|
|
445
|
+
}
|
|
446
|
+
};
|
|
447
|
+
function getEmitter() {
|
|
448
|
+
if (injectData.getEmitter) {
|
|
449
|
+
return injectData.getEmitter();
|
|
450
|
+
}
|
|
451
|
+
return createEmitter();
|
|
452
|
+
}
|
|
453
|
+
const messageBox = (options) => {
|
|
454
|
+
if (injectData.messageBox) {
|
|
455
|
+
return injectData.messageBox(options);
|
|
456
|
+
}
|
|
457
|
+
return Promise.resolve(false);
|
|
458
|
+
};
|
|
459
|
+
return {
|
|
460
|
+
injectData,
|
|
461
|
+
toast,
|
|
462
|
+
getEmitter,
|
|
463
|
+
messageBox
|
|
464
|
+
};
|
|
465
|
+
};
|
|
466
|
+
var isArray = Array.isArray;
|
|
467
|
+
var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
|
|
468
|
+
var freeSelf = typeof self == "object" && self && self.Object === Object && self;
|
|
469
|
+
var root = freeGlobal || freeSelf || Function("return this")();
|
|
470
|
+
var Symbol$1 = root.Symbol;
|
|
471
|
+
var objectProto$4 = Object.prototype;
|
|
472
|
+
var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
|
|
473
|
+
var nativeObjectToString$1 = objectProto$4.toString;
|
|
474
|
+
var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0;
|
|
475
|
+
function getRawTag(value) {
|
|
476
|
+
var isOwn = hasOwnProperty$4.call(value, symToStringTag$1), tag = value[symToStringTag$1];
|
|
477
|
+
try {
|
|
478
|
+
value[symToStringTag$1] = void 0;
|
|
479
|
+
var unmasked = true;
|
|
480
|
+
} catch (e) {
|
|
481
|
+
}
|
|
482
|
+
var result = nativeObjectToString$1.call(value);
|
|
483
|
+
if (unmasked) {
|
|
484
|
+
if (isOwn) {
|
|
485
|
+
value[symToStringTag$1] = tag;
|
|
486
|
+
} else {
|
|
487
|
+
delete value[symToStringTag$1];
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
return result;
|
|
491
|
+
}
|
|
492
|
+
var objectProto$3 = Object.prototype;
|
|
493
|
+
var nativeObjectToString = objectProto$3.toString;
|
|
494
|
+
function objectToString(value) {
|
|
495
|
+
return nativeObjectToString.call(value);
|
|
496
|
+
}
|
|
497
|
+
var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
|
|
498
|
+
var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0;
|
|
499
|
+
function baseGetTag(value) {
|
|
500
|
+
if (value == null) {
|
|
501
|
+
return value === void 0 ? undefinedTag : nullTag;
|
|
502
|
+
}
|
|
503
|
+
return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
|
|
504
|
+
}
|
|
505
|
+
function isObjectLike(value) {
|
|
506
|
+
return value != null && typeof value == "object";
|
|
507
|
+
}
|
|
508
|
+
var symbolTag = "[object Symbol]";
|
|
509
|
+
function isSymbol(value) {
|
|
510
|
+
return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
|
|
511
|
+
}
|
|
512
|
+
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/;
|
|
513
|
+
function isKey(value, object) {
|
|
514
|
+
if (isArray(value)) {
|
|
515
|
+
return false;
|
|
516
|
+
}
|
|
517
|
+
var type = typeof value;
|
|
518
|
+
if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) {
|
|
519
|
+
return true;
|
|
520
|
+
}
|
|
521
|
+
return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);
|
|
522
|
+
}
|
|
523
|
+
function isObject(value) {
|
|
524
|
+
var type = typeof value;
|
|
525
|
+
return value != null && (type == "object" || type == "function");
|
|
526
|
+
}
|
|
527
|
+
var asyncTag = "[object AsyncFunction]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
|
|
528
|
+
function isFunction(value) {
|
|
529
|
+
if (!isObject(value)) {
|
|
530
|
+
return false;
|
|
531
|
+
}
|
|
532
|
+
var tag = baseGetTag(value);
|
|
533
|
+
return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
|
|
534
|
+
}
|
|
535
|
+
var coreJsData = root["__core-js_shared__"];
|
|
536
|
+
var maskSrcKey = function() {
|
|
537
|
+
var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
|
|
538
|
+
return uid ? "Symbol(src)_1." + uid : "";
|
|
539
|
+
}();
|
|
540
|
+
function isMasked(func) {
|
|
541
|
+
return !!maskSrcKey && maskSrcKey in func;
|
|
542
|
+
}
|
|
543
|
+
var funcProto$1 = Function.prototype;
|
|
544
|
+
var funcToString$1 = funcProto$1.toString;
|
|
545
|
+
function toSource(func) {
|
|
546
|
+
if (func != null) {
|
|
547
|
+
try {
|
|
548
|
+
return funcToString$1.call(func);
|
|
549
|
+
} catch (e) {
|
|
550
|
+
}
|
|
551
|
+
try {
|
|
552
|
+
return func + "";
|
|
553
|
+
} catch (e) {
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
return "";
|
|
557
|
+
}
|
|
558
|
+
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
|
|
559
|
+
var reIsHostCtor = /^\[object .+?Constructor\]$/;
|
|
560
|
+
var funcProto = Function.prototype, objectProto$2 = Object.prototype;
|
|
561
|
+
var funcToString = funcProto.toString;
|
|
562
|
+
var hasOwnProperty$3 = objectProto$2.hasOwnProperty;
|
|
563
|
+
var reIsNative = RegExp(
|
|
564
|
+
"^" + funcToString.call(hasOwnProperty$3).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
|
|
565
|
+
);
|
|
566
|
+
function baseIsNative(value) {
|
|
567
|
+
if (!isObject(value) || isMasked(value)) {
|
|
568
|
+
return false;
|
|
569
|
+
}
|
|
570
|
+
var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
|
|
571
|
+
return pattern.test(toSource(value));
|
|
572
|
+
}
|
|
573
|
+
function getValue(object, key) {
|
|
574
|
+
return object == null ? void 0 : object[key];
|
|
575
|
+
}
|
|
576
|
+
function getNative(object, key) {
|
|
577
|
+
var value = getValue(object, key);
|
|
578
|
+
return baseIsNative(value) ? value : void 0;
|
|
579
|
+
}
|
|
580
|
+
var nativeCreate = getNative(Object, "create");
|
|
581
|
+
function hashClear() {
|
|
582
|
+
this.__data__ = nativeCreate ? nativeCreate(null) : {};
|
|
583
|
+
this.size = 0;
|
|
584
|
+
}
|
|
585
|
+
function hashDelete(key) {
|
|
586
|
+
var result = this.has(key) && delete this.__data__[key];
|
|
587
|
+
this.size -= result ? 1 : 0;
|
|
588
|
+
return result;
|
|
589
|
+
}
|
|
590
|
+
var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
|
|
591
|
+
var objectProto$1 = Object.prototype;
|
|
592
|
+
var hasOwnProperty$2 = objectProto$1.hasOwnProperty;
|
|
593
|
+
function hashGet(key) {
|
|
594
|
+
var data = this.__data__;
|
|
595
|
+
if (nativeCreate) {
|
|
596
|
+
var result = data[key];
|
|
597
|
+
return result === HASH_UNDEFINED$1 ? void 0 : result;
|
|
598
|
+
}
|
|
599
|
+
return hasOwnProperty$2.call(data, key) ? data[key] : void 0;
|
|
600
|
+
}
|
|
601
|
+
var objectProto = Object.prototype;
|
|
602
|
+
var hasOwnProperty$1 = objectProto.hasOwnProperty;
|
|
603
|
+
function hashHas(key) {
|
|
604
|
+
var data = this.__data__;
|
|
605
|
+
return nativeCreate ? data[key] !== void 0 : hasOwnProperty$1.call(data, key);
|
|
606
|
+
}
|
|
607
|
+
var HASH_UNDEFINED = "__lodash_hash_undefined__";
|
|
608
|
+
function hashSet(key, value) {
|
|
609
|
+
var data = this.__data__;
|
|
610
|
+
this.size += this.has(key) ? 0 : 1;
|
|
611
|
+
data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
|
|
612
|
+
return this;
|
|
613
|
+
}
|
|
614
|
+
function Hash(entries) {
|
|
615
|
+
var index = -1, length = entries == null ? 0 : entries.length;
|
|
616
|
+
this.clear();
|
|
617
|
+
while (++index < length) {
|
|
618
|
+
var entry = entries[index];
|
|
619
|
+
this.set(entry[0], entry[1]);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
Hash.prototype.clear = hashClear;
|
|
623
|
+
Hash.prototype["delete"] = hashDelete;
|
|
624
|
+
Hash.prototype.get = hashGet;
|
|
625
|
+
Hash.prototype.has = hashHas;
|
|
626
|
+
Hash.prototype.set = hashSet;
|
|
627
|
+
function listCacheClear() {
|
|
628
|
+
this.__data__ = [];
|
|
629
|
+
this.size = 0;
|
|
630
|
+
}
|
|
631
|
+
function eq(value, other) {
|
|
632
|
+
return value === other || value !== value && other !== other;
|
|
633
|
+
}
|
|
634
|
+
function assocIndexOf(array, key) {
|
|
635
|
+
var length = array.length;
|
|
636
|
+
while (length--) {
|
|
637
|
+
if (eq(array[length][0], key)) {
|
|
638
|
+
return length;
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
return -1;
|
|
642
|
+
}
|
|
643
|
+
var arrayProto = Array.prototype;
|
|
644
|
+
var splice = arrayProto.splice;
|
|
645
|
+
function listCacheDelete(key) {
|
|
646
|
+
var data = this.__data__, index = assocIndexOf(data, key);
|
|
647
|
+
if (index < 0) {
|
|
648
|
+
return false;
|
|
649
|
+
}
|
|
650
|
+
var lastIndex = data.length - 1;
|
|
651
|
+
if (index == lastIndex) {
|
|
652
|
+
data.pop();
|
|
653
|
+
} else {
|
|
654
|
+
splice.call(data, index, 1);
|
|
655
|
+
}
|
|
656
|
+
--this.size;
|
|
657
|
+
return true;
|
|
658
|
+
}
|
|
659
|
+
function listCacheGet(key) {
|
|
660
|
+
var data = this.__data__, index = assocIndexOf(data, key);
|
|
661
|
+
return index < 0 ? void 0 : data[index][1];
|
|
662
|
+
}
|
|
663
|
+
function listCacheHas(key) {
|
|
664
|
+
return assocIndexOf(this.__data__, key) > -1;
|
|
665
|
+
}
|
|
666
|
+
function listCacheSet(key, value) {
|
|
667
|
+
var data = this.__data__, index = assocIndexOf(data, key);
|
|
668
|
+
if (index < 0) {
|
|
669
|
+
++this.size;
|
|
670
|
+
data.push([key, value]);
|
|
671
|
+
} else {
|
|
672
|
+
data[index][1] = value;
|
|
673
|
+
}
|
|
674
|
+
return this;
|
|
675
|
+
}
|
|
676
|
+
function ListCache(entries) {
|
|
677
|
+
var index = -1, length = entries == null ? 0 : entries.length;
|
|
678
|
+
this.clear();
|
|
679
|
+
while (++index < length) {
|
|
680
|
+
var entry = entries[index];
|
|
681
|
+
this.set(entry[0], entry[1]);
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
ListCache.prototype.clear = listCacheClear;
|
|
685
|
+
ListCache.prototype["delete"] = listCacheDelete;
|
|
686
|
+
ListCache.prototype.get = listCacheGet;
|
|
687
|
+
ListCache.prototype.has = listCacheHas;
|
|
688
|
+
ListCache.prototype.set = listCacheSet;
|
|
689
|
+
var Map$1 = getNative(root, "Map");
|
|
690
|
+
function mapCacheClear() {
|
|
691
|
+
this.size = 0;
|
|
692
|
+
this.__data__ = {
|
|
693
|
+
"hash": new Hash(),
|
|
694
|
+
"map": new (Map$1 || ListCache)(),
|
|
695
|
+
"string": new Hash()
|
|
696
|
+
};
|
|
697
|
+
}
|
|
698
|
+
function isKeyable(value) {
|
|
699
|
+
var type = typeof value;
|
|
700
|
+
return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
|
|
701
|
+
}
|
|
702
|
+
function getMapData(map, key) {
|
|
703
|
+
var data = map.__data__;
|
|
704
|
+
return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
|
|
705
|
+
}
|
|
706
|
+
function mapCacheDelete(key) {
|
|
707
|
+
var result = getMapData(this, key)["delete"](key);
|
|
708
|
+
this.size -= result ? 1 : 0;
|
|
709
|
+
return result;
|
|
710
|
+
}
|
|
711
|
+
function mapCacheGet(key) {
|
|
712
|
+
return getMapData(this, key).get(key);
|
|
713
|
+
}
|
|
714
|
+
function mapCacheHas(key) {
|
|
715
|
+
return getMapData(this, key).has(key);
|
|
716
|
+
}
|
|
717
|
+
function mapCacheSet(key, value) {
|
|
718
|
+
var data = getMapData(this, key), size = data.size;
|
|
719
|
+
data.set(key, value);
|
|
720
|
+
this.size += data.size == size ? 0 : 1;
|
|
721
|
+
return this;
|
|
722
|
+
}
|
|
723
|
+
function MapCache(entries) {
|
|
724
|
+
var index = -1, length = entries == null ? 0 : entries.length;
|
|
725
|
+
this.clear();
|
|
726
|
+
while (++index < length) {
|
|
727
|
+
var entry = entries[index];
|
|
728
|
+
this.set(entry[0], entry[1]);
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
MapCache.prototype.clear = mapCacheClear;
|
|
732
|
+
MapCache.prototype["delete"] = mapCacheDelete;
|
|
733
|
+
MapCache.prototype.get = mapCacheGet;
|
|
734
|
+
MapCache.prototype.has = mapCacheHas;
|
|
735
|
+
MapCache.prototype.set = mapCacheSet;
|
|
736
|
+
var FUNC_ERROR_TEXT = "Expected a function";
|
|
737
|
+
function memoize(func, resolver) {
|
|
738
|
+
if (typeof func != "function" || resolver != null && typeof resolver != "function") {
|
|
739
|
+
throw new TypeError(FUNC_ERROR_TEXT);
|
|
740
|
+
}
|
|
741
|
+
var memoized = function() {
|
|
742
|
+
var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;
|
|
743
|
+
if (cache.has(key)) {
|
|
744
|
+
return cache.get(key);
|
|
745
|
+
}
|
|
746
|
+
var result = func.apply(this, args);
|
|
747
|
+
memoized.cache = cache.set(key, result) || cache;
|
|
748
|
+
return result;
|
|
749
|
+
};
|
|
750
|
+
memoized.cache = new (memoize.Cache || MapCache)();
|
|
751
|
+
return memoized;
|
|
752
|
+
}
|
|
753
|
+
memoize.Cache = MapCache;
|
|
754
|
+
var MAX_MEMOIZE_SIZE = 500;
|
|
755
|
+
function memoizeCapped(func) {
|
|
756
|
+
var result = memoize(func, function(key) {
|
|
757
|
+
if (cache.size === MAX_MEMOIZE_SIZE) {
|
|
758
|
+
cache.clear();
|
|
759
|
+
}
|
|
760
|
+
return key;
|
|
761
|
+
});
|
|
762
|
+
var cache = result.cache;
|
|
763
|
+
return result;
|
|
764
|
+
}
|
|
765
|
+
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
|
|
766
|
+
var reEscapeChar = /\\(\\)?/g;
|
|
767
|
+
var stringToPath = memoizeCapped(function(string) {
|
|
768
|
+
var result = [];
|
|
769
|
+
if (string.charCodeAt(0) === 46) {
|
|
770
|
+
result.push("");
|
|
771
|
+
}
|
|
772
|
+
string.replace(rePropName, function(match, number, quote, subString) {
|
|
773
|
+
result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match);
|
|
774
|
+
});
|
|
775
|
+
return result;
|
|
776
|
+
});
|
|
777
|
+
function arrayMap(array, iteratee) {
|
|
778
|
+
var index = -1, length = array == null ? 0 : array.length, result = Array(length);
|
|
779
|
+
while (++index < length) {
|
|
780
|
+
result[index] = iteratee(array[index], index, array);
|
|
781
|
+
}
|
|
782
|
+
return result;
|
|
783
|
+
}
|
|
784
|
+
var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto ? symbolProto.toString : void 0;
|
|
785
|
+
function baseToString(value) {
|
|
786
|
+
if (typeof value == "string") {
|
|
787
|
+
return value;
|
|
788
|
+
}
|
|
789
|
+
if (isArray(value)) {
|
|
790
|
+
return arrayMap(value, baseToString) + "";
|
|
791
|
+
}
|
|
792
|
+
if (isSymbol(value)) {
|
|
793
|
+
return symbolToString ? symbolToString.call(value) : "";
|
|
794
|
+
}
|
|
795
|
+
var result = value + "";
|
|
796
|
+
return result == "0" && 1 / value == -Infinity ? "-0" : result;
|
|
797
|
+
}
|
|
798
|
+
function toString(value) {
|
|
799
|
+
return value == null ? "" : baseToString(value);
|
|
800
|
+
}
|
|
801
|
+
function castPath(value, object) {
|
|
802
|
+
if (isArray(value)) {
|
|
803
|
+
return value;
|
|
804
|
+
}
|
|
805
|
+
return isKey(value, object) ? [value] : stringToPath(toString(value));
|
|
806
|
+
}
|
|
807
|
+
function toKey(value) {
|
|
808
|
+
if (typeof value == "string" || isSymbol(value)) {
|
|
809
|
+
return value;
|
|
810
|
+
}
|
|
811
|
+
var result = value + "";
|
|
812
|
+
return result == "0" && 1 / value == -Infinity ? "-0" : result;
|
|
813
|
+
}
|
|
814
|
+
function baseGet(object, path) {
|
|
815
|
+
path = castPath(path, object);
|
|
816
|
+
var index = 0, length = path.length;
|
|
817
|
+
while (object != null && index < length) {
|
|
818
|
+
object = object[toKey(path[index++])];
|
|
819
|
+
}
|
|
820
|
+
return index && index == length ? object : void 0;
|
|
821
|
+
}
|
|
822
|
+
function get(object, path, defaultValue) {
|
|
823
|
+
var result = object == null ? void 0 : baseGet(object, path);
|
|
824
|
+
return result === void 0 ? defaultValue : result;
|
|
825
|
+
}
|
|
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
|
+
const addressEdit$5 = { "name": "联系人", "namePlaceholder": "请填写联系人姓名", "choiceAddress": "选择地区", "addressPlaceholder": "请选择地区", "phone": "手机号码", "phonePlaceholder": "请填写手机号码", "phoneError": "请输入正确的手机号", "addressDetail": "详细地址", "addressDetailPlaceholder": "请填写详细地址", "error": "请完善信息", "submit": "保存", "deleteConfirm": "确定要删除该地址吗?", "addAddress": "添加地址", "editAddress": "修改地址", "deleteAddress": "删除地址", "addSuccess": "保存成功", "addError": "保存失败", "editSuccess": "修改成功", "editError": "修改失败" };
|
|
828
|
+
const zhCNLang = {
|
|
829
|
+
"common.confirm": "确认",
|
|
830
|
+
"common.cancel": "取消",
|
|
831
|
+
"common.delete": "删除",
|
|
832
|
+
"common.edit": "修改",
|
|
833
|
+
"common.submitSuccess": "提交成功",
|
|
834
|
+
"product.button.normal": "去购买",
|
|
835
|
+
"product.button.finance": "立即了解",
|
|
836
|
+
"product.button.position": "投递简历",
|
|
837
|
+
"product.all": "全部",
|
|
838
|
+
"product.searchPlaceholder": "输入商品名称搜索",
|
|
839
|
+
"product.explaining": "讲解中",
|
|
840
|
+
"product.watchExplain": "看讲解",
|
|
841
|
+
"product.notExplained": "待讲解",
|
|
842
|
+
"product.detail.title": "商品详情",
|
|
843
|
+
"product.detail.video": "视频",
|
|
844
|
+
"product.detail.image": "图片",
|
|
845
|
+
"product.detail.job": "职位详情",
|
|
846
|
+
"product.price.free": "免费",
|
|
847
|
+
"product.empty": "暂无内容",
|
|
848
|
+
"product.price.hidden": "待开价",
|
|
849
|
+
"product.order": "订单",
|
|
850
|
+
"product.num": "数量",
|
|
851
|
+
"product.disableBuy": "暂不支持购买",
|
|
852
|
+
"product.allProduct": "全部商品",
|
|
853
|
+
"product.stock.soldOut": "已抢光",
|
|
854
|
+
order: order$5,
|
|
855
|
+
addressEdit: addressEdit$5
|
|
856
|
+
};
|
|
857
|
+
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
|
+
const addressEdit$4 = { "name": "聯絡人", "namePlaceholder": "請填寫聯絡人", "choiceAddress": "選擇地區", "addressPlaceholder": "請選擇地區", "phone": "手機號碼", "phonePlaceholder": "請填寫手機號碼", "phoneError": "請輸入正確的手機號", "addressDetail": "詳細地址", "addressDetailPlaceholder": "請填寫詳細地址", "error": "請完善信息", "submit": "保存", "deleteConfirm": "確定要刪除該地址嗎?", "deleteAddress": "刪除地址", "addAddress": "添加地址", "editAddress": "修改地址", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "修改成功", "editError": "修改失敗" };
|
|
859
|
+
const zhTWLang = {
|
|
860
|
+
"common.confirm": "確認",
|
|
861
|
+
"common.cancel": "取消",
|
|
862
|
+
"common.delete": "刪除",
|
|
863
|
+
"common.edit": "修改",
|
|
864
|
+
"common.submitSuccess": "提交成功",
|
|
865
|
+
"product.button.normal": "去購買",
|
|
866
|
+
"product.button.finance": "立即瞭解",
|
|
867
|
+
"product.button.position": "投遞簡歷",
|
|
868
|
+
"product.all": "全部",
|
|
869
|
+
"product.searchPlaceholder": "輸入商品名稱搜索",
|
|
870
|
+
"product.explaining": "講解中",
|
|
871
|
+
"product.watchExplain": "看講解",
|
|
872
|
+
"product.notExplained": "待講解",
|
|
873
|
+
"product.detail.title": "商品詳情",
|
|
874
|
+
"product.detail.video": "視頻",
|
|
875
|
+
"product.detail.image": "圖片",
|
|
876
|
+
"product.detail.job": "職位詳情",
|
|
877
|
+
"product.price.free": "免費",
|
|
878
|
+
"product.empty": "暫無內容",
|
|
879
|
+
"product.price.hidden": "待開價",
|
|
880
|
+
"product.order": "訂單",
|
|
881
|
+
"product.num": "數量",
|
|
882
|
+
"product.disableBuy": "暫不支持購買",
|
|
883
|
+
"product.allProduct": "全部商品",
|
|
884
|
+
"product.stock.soldOut": "已搶光",
|
|
885
|
+
order: order$4,
|
|
886
|
+
addressEdit: addressEdit$4
|
|
887
|
+
};
|
|
888
|
+
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
|
+
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" };
|
|
890
|
+
const enLang = {
|
|
891
|
+
"common.confirm": "Confirm",
|
|
892
|
+
"common.cancel": "Cancel",
|
|
893
|
+
"common.delete": "Delete",
|
|
894
|
+
"common.edit": "Edit",
|
|
895
|
+
"common.submitSuccess": "Submit Success",
|
|
896
|
+
"product.button.normal": "Buy Now",
|
|
897
|
+
"product.button.finance": "Learn More",
|
|
898
|
+
"product.button.position": "Submit Resume",
|
|
899
|
+
"product.all": "All",
|
|
900
|
+
"product.searchPlaceholder": "Search by product name",
|
|
901
|
+
"product.explaining": "Explaining",
|
|
902
|
+
"product.watchExplain": "Watch Now",
|
|
903
|
+
"product.notExplained": "Pending",
|
|
904
|
+
"product.detail.title": "Product Details",
|
|
905
|
+
"product.detail.video": "Video",
|
|
906
|
+
"product.detail.image": "Image",
|
|
907
|
+
"product.detail.job": "Job Details",
|
|
908
|
+
"product.price.free": "Free",
|
|
909
|
+
"product.empty": "No Content",
|
|
910
|
+
"product.price.hidden": "Pending Price",
|
|
911
|
+
"product.order": "Order",
|
|
912
|
+
"product.num": "Quantity",
|
|
913
|
+
"product.disableBuy": "Purchase not supported",
|
|
914
|
+
"product.allProduct": "Products",
|
|
915
|
+
"product.stock.soldOut": "Sold Out",
|
|
916
|
+
order: order$3,
|
|
917
|
+
addressEdit: addressEdit$3
|
|
918
|
+
};
|
|
919
|
+
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
|
+
const addressEdit$2 = { "name": "連絡先", "namePlaceholder": "連絡先を入力", "choiceAddress": "地域を選択", "addressPlaceholder": "地域を選択", "phone": "電話番号", "phonePlaceholder": "電話番号を入力", "phoneError": "正しい電話番号を入力してください", "addressDetail": "詳細住所", "addressDetailPlaceholder": "詳細住所を入力", "error": "情報を入力してください", "submit": "保存", "deleteConfirm": "この住所を削除しますか?", "deleteAddress": "住所を削除", "addAddress": "住所を追加", "editAddress": "住所を編集", "addSuccess": "保存成功", "addError": "保存失敗", "editSuccess": "編集成功", "editError": "編集失敗" };
|
|
921
|
+
const jaLang = {
|
|
922
|
+
"common.confirm": "確認",
|
|
923
|
+
"common.cancel": "キャンセル",
|
|
924
|
+
"common.delete": "削除",
|
|
925
|
+
"common.edit": "編集",
|
|
926
|
+
"common.submitSuccess": "提出成功",
|
|
927
|
+
"product.button.normal": "購入する",
|
|
928
|
+
"product.button.finance": "今すぐ詳細を見る",
|
|
929
|
+
"product.button.position": "履歴書を送信",
|
|
930
|
+
"product.all": "すべて",
|
|
931
|
+
"product.searchPlaceholder": "商品名を検索",
|
|
932
|
+
"product.explaining": "解説中",
|
|
933
|
+
"product.watchExplain": "解説を見る",
|
|
934
|
+
"product.notExplained": "解説なし",
|
|
935
|
+
"product.detail.title": "商品詳細",
|
|
936
|
+
"product.detail.video": "ビデオ",
|
|
937
|
+
"product.detail.image": "画像",
|
|
938
|
+
"product.detail.job": "職務詳細",
|
|
939
|
+
"product.price.free": "無料",
|
|
940
|
+
"product.empty": "内容なし",
|
|
941
|
+
"product.price.hidden": "価格非公開",
|
|
942
|
+
"product.order": "注文",
|
|
943
|
+
"product.num": "数量",
|
|
944
|
+
"product.disableBuy": "購入不可",
|
|
945
|
+
"product.allProduct": "すべての商品",
|
|
946
|
+
"product.stock.soldOut": "売り切れ",
|
|
947
|
+
order: order$2,
|
|
948
|
+
addressEdit: addressEdit$2
|
|
949
|
+
};
|
|
950
|
+
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
|
+
const addressEdit$1 = { "name": "연락처", "namePlaceholder": "연락처 입력", "choiceAddress": "지역 선택", "addressPlaceholder": "지역 선택", "phone": "전화번호", "phonePlaceholder": "전화번호 입력", "phoneError": "올바른 전화번호를 입력해주세요", "addressDetail": "상세 주소", "addressDetailPlaceholder": "상세 주소 입력", "error": "정보를 입력해주세요.", "submit": "저장", "deleteConfirm": "주소를 삭제하시겠습니까?", "deleteAddress": "주소 삭제", "addAddress": "주소 추가", "editAddress": "주소 수정", "addSuccess": "저장 성공", "addError": "저장 실패", "editSuccess": "수정 성공", "editError": "수정 실패" };
|
|
952
|
+
const koLang = {
|
|
953
|
+
"common.confirm": "확인",
|
|
954
|
+
"common.cancel": "취소",
|
|
955
|
+
"common.delete": "삭제",
|
|
956
|
+
"common.edit": "수정",
|
|
957
|
+
"common.submitSuccess": "제출 성공",
|
|
958
|
+
"product.button.normal": "구매하기",
|
|
959
|
+
"product.button.finance": "지금 알아보기",
|
|
960
|
+
"product.button.position": "이력서 제출",
|
|
961
|
+
"product.all": "모든",
|
|
962
|
+
"product.searchPlaceholder": "상품 이름 검색",
|
|
963
|
+
"product.explaining": "설명중",
|
|
964
|
+
"product.watchExplain": "설명 보기",
|
|
965
|
+
"product.notExplained": "설명 없음",
|
|
966
|
+
"product.detail.title": "상품 상세",
|
|
967
|
+
"product.detail.video": "비디오",
|
|
968
|
+
"product.detail.image": "이미지",
|
|
969
|
+
"product.detail.job": "직무 상세",
|
|
970
|
+
"product.price.free": "무료",
|
|
971
|
+
"product.empty": "내용 없음",
|
|
972
|
+
"product.price.hidden": "가격 미공개",
|
|
973
|
+
"product.order": "주문",
|
|
974
|
+
"product.num": "수량",
|
|
975
|
+
"product.disableBuy": "구매 불가",
|
|
976
|
+
"product.allProduct": "모든 상품",
|
|
977
|
+
"product.stock.soldOut": "품절",
|
|
978
|
+
order: order$1,
|
|
979
|
+
addressEdit: addressEdit$1
|
|
980
|
+
};
|
|
981
|
+
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
|
+
const addressEdit = { "name": "Контактное лицо", "namePlaceholder": "Пожалуйста, введите имя контактного лица", "choiceAddress": "Выберите регион", "addressPlaceholder": "Пожалуйста, выберите регион", "phone": "Номер телефона", "phonePlaceholder": "Пожалуйста, введите номер телефона", "phoneError": "Пожалуйста, введите правильный номер телефона", "addressDetail": "Подробный адрес", "addressDetailPlaceholder": "Пожалуйста, заполните подробный адрес", "error": "Пожалуйста, дополните информацию", "submit": "Сохранить", "deleteConfirm": "Вы уверены, что хотите удалить этот адрес?", "addAddress": "Добавить адрес", "editAddress": "Изменить адрес", "deleteAddress": "Удалить адрес", "addSuccess": "Успешно сохранено", "addError": "Не удалось сохранить", "editSuccess": "Успешно изменено", "editError": "Не удалось изменить" };
|
|
983
|
+
const ruLang = {
|
|
984
|
+
"common.confirm": "Подтвердить",
|
|
985
|
+
"common.cancel": "Отмена",
|
|
986
|
+
"common.delete": "Удалить",
|
|
987
|
+
"common.edit": "Изменить",
|
|
988
|
+
"common.submitSuccess": "Успешно отправлено",
|
|
989
|
+
"product.button.normal": "Купить",
|
|
990
|
+
"product.button.finance": "Узнать подробнее",
|
|
991
|
+
"product.button.position": "Подать резюме",
|
|
992
|
+
"product.all": "Все",
|
|
993
|
+
"product.searchPlaceholder": "Введите название товара для поиска",
|
|
994
|
+
"product.explaining": "В процессе объяснения",
|
|
995
|
+
"product.watchExplain": "Посмотреть объяснение",
|
|
996
|
+
"product.notExplained": "Ожидает объяснения",
|
|
997
|
+
"product.detail.title": "Детали товара",
|
|
998
|
+
"product.detail.video": "Видео",
|
|
999
|
+
"product.detail.image": "Изображение",
|
|
1000
|
+
"product.detail.job": "Детали вакансии",
|
|
1001
|
+
"product.price.free": "Бесплатно",
|
|
1002
|
+
"product.empty": "Пока нет содержимого",
|
|
1003
|
+
"product.price.hidden": "Цена уточняется",
|
|
1004
|
+
"product.order": "Заказ",
|
|
1005
|
+
"product.num": "Количество",
|
|
1006
|
+
"product.disableBuy": "Покупка временно недоступна",
|
|
1007
|
+
"product.allProduct": "Все товары",
|
|
1008
|
+
"product.stock.soldOut": "Распродано",
|
|
1009
|
+
order,
|
|
1010
|
+
addressEdit
|
|
1011
|
+
};
|
|
1012
|
+
const fullI18nData = {
|
|
1013
|
+
[LangType.ZH_CN]: zhCNLang,
|
|
1014
|
+
[LangType.ZH_TW]: zhTWLang,
|
|
1015
|
+
[LangType.English]: enLang,
|
|
1016
|
+
[LangType.Japanese]: jaLang,
|
|
1017
|
+
[LangType.Korean]: koLang,
|
|
1018
|
+
[LangType.Russian]: ruLang
|
|
1019
|
+
};
|
|
1020
|
+
const useI18n = () => {
|
|
1021
|
+
const { injectData } = useGlobalInject();
|
|
1022
|
+
const langValueToKeyMap = {
|
|
1023
|
+
"zh_CN": LangType.ZH_CN,
|
|
1024
|
+
"zh_TW": LangType.ZH_TW,
|
|
1025
|
+
"en": LangType.English,
|
|
1026
|
+
"ja": LangType.Japanese,
|
|
1027
|
+
"ko": LangType.Korean,
|
|
1028
|
+
"ru": LangType.Russian
|
|
1029
|
+
};
|
|
1030
|
+
const currentLang = computed(() => {
|
|
1031
|
+
const injectedLang = injectData.globalLang || LangType.ZH_CN;
|
|
1032
|
+
if (typeof injectedLang === "string" && langValueToKeyMap[injectedLang]) {
|
|
1033
|
+
const mappedLang = langValueToKeyMap[injectedLang];
|
|
1034
|
+
return mappedLang;
|
|
1035
|
+
}
|
|
1036
|
+
return injectedLang;
|
|
1037
|
+
});
|
|
1038
|
+
const currentLangData = computed(() => {
|
|
1039
|
+
const langKey = currentLang.value;
|
|
1040
|
+
const data = fullI18nData[langKey];
|
|
1041
|
+
if (!data) {
|
|
1042
|
+
console.warn(`Language data not found for: ${langKey}, falling back to zh_CN`);
|
|
1043
|
+
return fullI18nData[LangType.ZH_CN];
|
|
1044
|
+
}
|
|
1045
|
+
return data;
|
|
1046
|
+
});
|
|
1047
|
+
const isZhCN = computed(() => {
|
|
1048
|
+
const lang = currentLang.value;
|
|
1049
|
+
return lang === LangType.ZH_CN || lang === LangType.ZH_TW;
|
|
1050
|
+
});
|
|
1051
|
+
function replace(key, value, str) {
|
|
1052
|
+
return str.replace(new RegExp("\\{" + key + "}", "g"), value);
|
|
1053
|
+
}
|
|
1054
|
+
function $t(key, options = {}) {
|
|
1055
|
+
const langData = currentLangData.value;
|
|
1056
|
+
let text = get(langData, key);
|
|
1057
|
+
if (text === void 0 || typeof text !== "string") {
|
|
1058
|
+
console.warn(`Translation key not found: ${key}, current lang: ${currentLang.value}`);
|
|
1059
|
+
return key;
|
|
1060
|
+
}
|
|
1061
|
+
if (options) {
|
|
1062
|
+
const optionKeys = Object.keys(options);
|
|
1063
|
+
for (const optKey of optionKeys) {
|
|
1064
|
+
const value = options[optKey].toString();
|
|
1065
|
+
text = replace(optKey, value, text);
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
return text;
|
|
1069
|
+
}
|
|
1070
|
+
return {
|
|
1071
|
+
currentLang,
|
|
1072
|
+
isZhCN,
|
|
1073
|
+
$t
|
|
1074
|
+
};
|
|
1075
|
+
};
|
|
1076
|
+
function canMatchKeywords(e, t2) {
|
|
1077
|
+
e = e.toLowerCase();
|
|
1078
|
+
const n2 = /[/\s;_-]/, s2 = /[/\s;_-]/;
|
|
1079
|
+
return t2.some((t3) => {
|
|
1080
|
+
const o2 = e.indexOf(t3.toLowerCase());
|
|
1081
|
+
if (-1 !== o2 && (n2.test(e[o2 - 1]) || 0 === o2) && (s2.test(e[o2 + t3.length]) || o2 + t3.length >= e.length)) return true;
|
|
1082
|
+
});
|
|
1083
|
+
}
|
|
1084
|
+
function canMatchModelRule(e, t2) {
|
|
1085
|
+
return !!/;\s*([^;)]*?)(?:\s+Build\/[^;)]+)?(?:;(?:\s*wv)?)?\)/.test(e) && t2.test(RegExp.$1);
|
|
1086
|
+
}
|
|
1087
|
+
function execRules(e, t2) {
|
|
1088
|
+
let n2;
|
|
1089
|
+
return t2.some((t3) => {
|
|
1090
|
+
let s2, o2 = false;
|
|
1091
|
+
return t3.regExp ? (o2 = t3.regExp.test(e), o2 && (s2 = RegExp.$1)) : t3.keywords ? o2 = canMatchKeywords(e, t3.keywords) : t3.modelRegExp && (o2 = canMatchModelRule(e, t3.modelRegExp)), o2 && (n2 = { name: t3.name, version: s2 }), o2;
|
|
1092
|
+
}), n2;
|
|
1093
|
+
}
|
|
1094
|
+
const osRules = [{ name: "windows", regExp: /\bWindows\s?NT\s?(([\d.]+))\b/ }, { name: "ios", regExp: /\bOS(?:\s([\d_.]+))?\slike\sMac\sOS\sX\b/ }, { name: "macos", regExp: /\bMac\sOS\sX(?:\s([\d_.]+))?/ }, { name: "openharmony", regExp: /\bOpenHarmony\s([\d.]+)\b/ }, { name: "android", regExp: /\bAndroid;?(?:[-/\s]([\d.]+))?(?:\b|_)/ }, { name: "android", regExp: /\bAdr\s([\d.]+)(?:\b|_)/ }];
|
|
1095
|
+
function compareVersions(r2, e) {
|
|
1096
|
+
const t2 = /(\.0+)+$/, n2 = String(r2).replace(t2, "").split("."), s2 = String(e).replace(t2, "").split("."), i2 = Math.min(n2.length, s2.length);
|
|
1097
|
+
for (let r3 = 0; r3 < i2; r3++) {
|
|
1098
|
+
const e2 = parseInt(n2[r3]) - parseInt(s2[r3]);
|
|
1099
|
+
if (e2) return e2;
|
|
1100
|
+
}
|
|
1101
|
+
return n2.length - s2.length;
|
|
1102
|
+
}
|
|
1103
|
+
class Version {
|
|
1104
|
+
constructor(r2) {
|
|
1105
|
+
this._ver = (r2 || "").replace(/_/g, ".").replace(/\.+$/, ""), Object.freeze(this);
|
|
1106
|
+
}
|
|
1107
|
+
_compare(r2, e) {
|
|
1108
|
+
if (!this._ver || !r2) return false;
|
|
1109
|
+
const t2 = Array.isArray(e) ? e : [e], n2 = compareVersions(this._ver, r2);
|
|
1110
|
+
return t2.some(function(r3) {
|
|
1111
|
+
return n2 * r3 > 0 || 0 === n2 && 0 === r3;
|
|
1112
|
+
});
|
|
1113
|
+
}
|
|
1114
|
+
gt(r2) {
|
|
1115
|
+
return this._compare(r2, 1);
|
|
1116
|
+
}
|
|
1117
|
+
gte(r2) {
|
|
1118
|
+
return this._compare(r2, [1, 0]);
|
|
1119
|
+
}
|
|
1120
|
+
lt(r2) {
|
|
1121
|
+
return this._compare(r2, -1);
|
|
1122
|
+
}
|
|
1123
|
+
lte(r2) {
|
|
1124
|
+
return this._compare(r2, [-1, 0]);
|
|
1125
|
+
}
|
|
1126
|
+
eq(r2) {
|
|
1127
|
+
return this._compare(r2, 0);
|
|
1128
|
+
}
|
|
1129
|
+
toString() {
|
|
1130
|
+
return this._ver;
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
const propMap$3 = { ios: "isIOS", openharmony: "isOpenHarmony", android: "isAndroid", windows: "isWindows", macos: "isMacOS" };
|
|
1134
|
+
function platformToOS(s2) {
|
|
1135
|
+
switch (s2) {
|
|
1136
|
+
case "Android":
|
|
1137
|
+
return "android";
|
|
1138
|
+
case "iPad":
|
|
1139
|
+
case "iPhone":
|
|
1140
|
+
case "iPod":
|
|
1141
|
+
return "ios";
|
|
1142
|
+
case "MacIntel":
|
|
1143
|
+
return "macos";
|
|
1144
|
+
case "Win32":
|
|
1145
|
+
return "windows";
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
class OSInfo {
|
|
1149
|
+
constructor(s2, o2) {
|
|
1150
|
+
var i2;
|
|
1151
|
+
let e;
|
|
1152
|
+
if (this.isIOS = false, this.isAndroid = false, this.isHarmonyOS = false, this.isOpenHarmony = false, this.isWindows = false, this.isMacOS = false, null == o2 ? void 0 : o2.platform) {
|
|
1153
|
+
const s3 = platformToOS(o2.platform);
|
|
1154
|
+
void 0 !== s3 && (e = { name: s3, version: "" });
|
|
1155
|
+
}
|
|
1156
|
+
let n2 = null !== (i2 = execRules(s2, osRules)) && void 0 !== i2 ? i2 : e;
|
|
1157
|
+
n2 ? (e && e.name !== n2.name && (n2 = e), "macos" === n2.name && (null == o2 ? void 0 : o2.maxTouchPoints) && (n2.name = "ios", n2.version = ""), this[propMap$3[n2.name]] = true, this.version = new Version(n2.version), this.isAndroid && /\bHarmonyOS\b/.test(s2) && (this.isHarmonyOS = true), Object.freeze(this)) : this.version = Object.freeze(new Version(""));
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1160
|
+
const appleRules = [{ name: "ipad", regExp: /iPad/ }, { name: "ipod", regExp: /iPod/ }, { name: "iphone", regExp: /iPhone/ }];
|
|
1161
|
+
const androidRules = [{ name: "huawei", regExp: /\b(?:huawei|honor)/i }, { name: "huawei", keywords: ["ideahub", "figi"] }, { name: "vivo", keywords: ["vivo"] }, { name: "oppo", keywords: ["oppo"] }, { name: "mi", keywords: ["redmi", "hongmi", "shark", "Mi", "MIX", "POCO", "POCOPHONE"] }, { name: "mi", regExp: /\bxiaomi/i }, { name: "samsung", keywords: ["samsung", "galaxy"] }, { name: "oneplus", keywords: ["oneplus", "one"] }, { name: "huawei", modelRegExp: /^Mate\s*\d{2}/i }, { name: "huawei", modelRegExp: /^Nova\s\d$/ }, { name: "huawei", regExp: /\b(?:Hi)?MatePad/i }, { name: "huawei", regExp: /\b(?:Liantong|UNICOMVSENS)VP\d{3}\b/ }, { name: "huawei", regExp: /\bCMDCSP\d{3}\b/ }, { name: "huawei", regExp: /\bTDTECH/i }, { name: "huawei", modelRegExp: /^[A-Z]{3}\d?-W[0-5]9[A-Z]*$/ }, { name: "huawei", modelRegExp: /^[A-Z][A-Za-z]{2,3}-(?:AN|BD|BX|AL|TL)\d{2}[A-Za-z]*$/ }, { name: "huawei", modelRegExp: /^TYH\d+[A-Z]?$/ }, { name: "huawei", modelRegExp: /^H60-L0[12]$/ }, { name: "mi", modelRegExp: /^MI\s?(?:\d|CC|Note|MAX|PLAY|PAD)/i }, { name: "mi", modelRegExp: /^(?:AWM|SKR|SKW|DLT)-/ }, { name: "mi", modelRegExp: /^XIG\d{2}$/ }, { name: "mi", modelRegExp: /^M\d{4}[A-Z]\d{1,2}[A-Z]{1,3}$/ }, { name: "mi", modelRegExp: /^2\d{3}[A-Z0-9]{6}$/ }, { name: "mi", modelRegExp: /^2\d{5}[0-9A-Z]{2}[A-Z]$/ }, { name: "mi", modelRegExp: /^2\d{6}[A-Z]$/ }, { name: "mi", modelRegExp: /^2\d{7}[A-Z]{2,3}$/ }, { name: "samsung", modelRegExp: /^S(?:M|[CGP]H)-[A-Za-z0-9]+$/ }, { name: "samsung", modelRegExp: /^SCV3\d$/ }, { name: "samsung", modelRegExp: /^SC-\d{2}[A-Z]$/ }, { name: "samsung", modelRegExp: /^SH[WV]-/ }, { name: "samsung", modelRegExp: /^GT[-_][A-Z][A-Z0-9]{3,}$/i }, { name: "oppo", modelRegExp: /^(?:CPH|OPD|iPA)\d{4}$/ }, { name: "oppo", modelRegExp: /^OPG\d{2}$/ }, { name: "oppo", modelRegExp: /^A[1-5]0[1-9]OP$/ }, { name: "oneplus", modelRegExp: /^(?:KB|HD|IN|GM|NE|LE|MT)\d{4}$/ }, { name: "vivo", modelRegExp: /^V[12]\d{3}[A-Z]{0,2}$/ }];
|
|
1162
|
+
const propMap$2 = { ipod: "isIPod", iphone: "isIPhone", ipad: "isIPad", huawei: "isHuawei", mi: "isMi", oppo: "isOppo", vivo: "isVivo", oneplus: "isOnePlus", samsung: "isSamsung" };
|
|
1163
|
+
class BrandInfo {
|
|
1164
|
+
constructor(i2, s2) {
|
|
1165
|
+
let e;
|
|
1166
|
+
if (this.isHuawei = false, this.isMi = false, this.isOppo = false, this.isVivo = false, this.isOnePlus = false, this.isSamsung = false, this.isIPod = false, this.isIPhone = false, this.isIPad = false, this.isMac = false, this.isApple = false, s2.isIOS ? (e = appleRules, this.isApple = true) : s2.isMacOS ? (this.isMac = true, this.isApple = true) : (s2.isAndroid || s2.isOpenHarmony) && (e = androidRules), e) {
|
|
1167
|
+
const o2 = execRules(i2, e);
|
|
1168
|
+
o2 ? this[propMap$2[o2.name]] = true : s2.isIOS && (this.isIPad = true);
|
|
1169
|
+
}
|
|
1170
|
+
Object.freeze(this);
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
const browserRules = [{ name: "edge", regExp: /\bEdge\/([\d.]+)/ }, { name: "chrome", regExp: /\b(?:Chrome|CrMo|CriOS)\/([\d.]+)/ }, { name: "safari", regExp: /\b(?:Version\/([\d.]+).*\s?)?Safari\b/ }, { name: "ie", regExp: /\bMSIE\s(\d+)/i }, { name: "ie", regExp: /\bTrident\/.*;\srv:(\d+)/ }, { name: "firefox", regExp: /\bFirefox\/([\d.]+)/ }, { name: "opera-presto", regExp: /\bOpera\/([\d.]+)/ }];
|
|
1174
|
+
const propMap$1 = { chrome: "isChrome", safari: "isSafari", edge: "isEdge", ie: "isIE", firefox: "isFirefox", "opera-presto": "isPrestoOpera" };
|
|
1175
|
+
class BrowserInfo {
|
|
1176
|
+
constructor(e) {
|
|
1177
|
+
this.isChrome = false, this.isSafari = false, this.isEdge = false, this.isIE = false, this.isFirefox = false, this.isPrestoOpera = false;
|
|
1178
|
+
const s2 = execRules(e, browserRules);
|
|
1179
|
+
s2 ? (this[propMap$1[s2.name]] = true, this.version = new Version(s2.version)) : this.version = new Version(""), Object.freeze(this);
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
let clientRules = [{ name: "wxwork", regExp: /\bwxwork\/([\d.]+)/ }, { name: "wx", regExp: /\bMicroMessenger\/([\d.]+)/ }, { name: "ding", regExp: /\bDingTalk\/([\d.]+)/ }, { name: "qq", regExp: /\bQQ\/([\d.]+)/ }, { name: "qq", regExp: /\bIPadQQ\b/ }, { name: "weibo", regExp: /(?:\b|_)Weibo(?:\b|_)/i }, { name: "edge", regExp: /\bEdge?\/([\d.]+)/ }, { name: "opera-blink", regExp: /\bOPR\/([\d.]+)/ }, { name: "qqbrowser", regExp: /\bM?QQBrowser(?:\/([\d.]+))?/i }, { name: "ucbrowser", regExp: /\b(?:UCBrowser|UCWEB)(?:-CMCC)?\/?\s?([\d.]+)/ }, { name: "ucbrowser", regExp: /\bUC\b/ }, { name: "quark", regExp: /\bQuark\/([\d.]+)/ }, { name: "maxthon", regExp: /\b(?:Maxthon|MxBrowser)(?:[/\s]([\d.]+))?/ }, { name: "theworld", regExp: /\bTheWorld(?:\s([\d.]+))?/i }, { name: "baidubrowser", regExp: /\b(?:baidubrowser|bdbrowser_i18n|BIDUBrowser)(?:[/\s]([\d.]+))?/i }, { name: "baidubrowser", regExp: /\bbaidubrowserpad\b/ }, { name: "baiduapp", regExp: /\bbaiduboxapp\b\/([\d.]+)?/i }, { name: "baiduapp", regExp: /\bbaiduboxpad\b/i }];
|
|
1183
|
+
clientRules = clientRules.concat(browserRules);
|
|
1184
|
+
const propMap = { wxwork: "isWxWork", wx: "isWx", ding: "isDing", qq: "isQQ", weibo: "isWeibo", edge: "isEdge", "opera-blink": "isOpera", "opera-presto": "isOpera", qqbrowser: "isQQBrowser", ucbrowser: "isUCBrowser", quark: "isQuark", maxthon: "isMaxthon", theworld: "isTheWorld", baidubrowser: "isBaiduBrowser", baiduapp: "isBaiduApp", chrome: "isChrome", safari: "isSafari", ie: "isIE", firefox: "isFirefox" };
|
|
1185
|
+
class ClientInfo {
|
|
1186
|
+
constructor(i2) {
|
|
1187
|
+
this.isWxWork = false, this.isWx = false, this.isWxMiniProgram = false, this.isDing = false, this.isQQ = false, this.isWeibo = false, this.isEdge = false, this.isOpera = false, this.isQQBrowser = false, this.isUCBrowser = false, this.isQuark = false, this.isMaxthon = false, this.isTheWorld = false, this.isBaiduBrowser = false, this.isBaiduApp = false, this.isChrome = false, this.isSafari = false, this.isIE = false, this.isFirefox = false;
|
|
1188
|
+
const s2 = execRules(i2, clientRules);
|
|
1189
|
+
s2 ? (this[propMap[s2.name]] = true, this.version = new Version(s2.version)) : this.version = new Version(""), this.isWxMiniProgram = (this.isWx || this.isWxWork) && /\bMiniProgramEnv\b/.test(i2), Object.freeze(this);
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1192
|
+
class UAInfo {
|
|
1193
|
+
constructor(t2, i2) {
|
|
1194
|
+
this.os = Object.freeze(new OSInfo(t2, i2)), this.brand = Object.freeze(new BrandInfo(t2, this.os)), this.browser = Object.freeze(new BrowserInfo(t2)), this.client = Object.freeze(new ClientInfo(t2)), this.isTablet = this.brand.isIPad || /\bTablet\b/i.test(t2) || this.os.isAndroid && !/\bMobile\b/i.test(t2), this.os.isIOS || this.os.isAndroid || this.isTablet ? this.isPortable = true : /\(X11[;)]/i.test(t2) || /\b(Windows\sNT|Macintosh)\b/.test(t2) ? this.isPortable = false : this.isPortable = /mobile|android/i.test(t2), Object.freeze(this);
|
|
1195
|
+
}
|
|
1196
|
+
}
|
|
1197
|
+
let currentUAInfo;
|
|
1198
|
+
function getCurrentUAInfo() {
|
|
1199
|
+
return currentUAInfo || (currentUAInfo = Object.freeze("undefined" != typeof window ? new UAInfo(window.navigator.userAgent, window.navigator) : new UAInfo(""))), currentUAInfo;
|
|
1200
|
+
}
|
|
1201
|
+
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;
|
|
1208
|
+
const isPcMiniProgram = (isWeixin || isWorkWeixin) && /miniprogramenv/.test(ua);
|
|
1209
|
+
function __isMobile() {
|
|
1210
|
+
const ua2 = navigator.userAgent;
|
|
1211
|
+
if (/mobile|android/i.test(ua2)) {
|
|
1212
|
+
return true;
|
|
1213
|
+
} else {
|
|
1214
|
+
if (/\b(Windows\sNT|Macintosh|x86(_(32|64))?|amd64|i[1-6]86)\b/.test(ua2) || !("onorientationchange" in window)) {
|
|
1215
|
+
return false;
|
|
1216
|
+
} else {
|
|
1217
|
+
return true;
|
|
1218
|
+
}
|
|
1219
|
+
}
|
|
1220
|
+
}
|
|
1221
|
+
function __isTablet() {
|
|
1222
|
+
const ua2 = navigator.userAgent;
|
|
1223
|
+
if (/(?:iPad|PlayBook)/.test(ua2)) return true;
|
|
1224
|
+
if (uaInfo.os.isAndroid && !/(?:Mobile)/.test(ua2) || /(?:Tablet)/.test(ua2)) return true;
|
|
1225
|
+
return false;
|
|
1226
|
+
}
|
|
1227
|
+
const isMob = __isMobile();
|
|
1228
|
+
isMob && __isTablet();
|
|
1229
|
+
const isMobile = /* @__PURE__ */ (() => {
|
|
1230
|
+
return isMob || isPcMiniProgram;
|
|
1231
|
+
})();
|
|
1232
|
+
const liveGif = "data:image/gif;base64,R0lGODlhKgAqAKIEAP7//////v3//////////wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzFEQjYxNzBBNjg5MTFFQjhBN0REMjM4Qzk4RDRFMzciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzFEQjYxNzFBNjg5MTFFQjhBN0REMjM4Qzk4RDRFMzciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENzE0QTU2QkE2NkUxMUVCOEE3REQyMzhDOThENEUzNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENzE0QTU2Q0E2NkUxMUVCOEE3REQyMzhDOThENEUzNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAkEAAQALAAAAAAqACoAAAOQSLrc/jDKSau9OOvNuxxg6FlACI5VaaKUebKfC8crFJgl5w7Rzm+7XhAogwxUx59m+PDpik1mRtpwEmtR6FRbpV68C+uSyxBvsQ4zBqxQf8lhdgvelk/kbgsezKcT8n1oXXCBIkaFL4OGWYJ1jX9+gISRiEpllJOPe5mLl4+OmpyJaUijC6WWpzgzrK2ur6wJACH5BAkEAAQALAAAAAAqACoAAAOVSLrc/jDKSau9OOvNu/9gOIxkOJGlGaGjurIuxA7xM0cBAJAAd8s7lA8m+2mMjhltg2woh8Ii8ThNNi/XxZNZdWYrX8KWGrWFT13GOBNea9NiuMI9h7ezeHnczi9b+ylefoKDdYV7gX+HeYeGi4AtUo+TiYSVjpGWS2aQm2p6dIiZn40EAQNBowupqgqsPTWxsrO0FAkAIfkECQQABAAsAAAAACoAKgAAA5FIutz+MMpJq7046827/2AojmSJDWhqOqm6Mi36wvG8xEMUAMDAAxxcBJfbCCHEYA151DRZz9PykTROoVdpaxi9dG9f3hbron7PWVqagB6b1+0yWQ52q+l3PBu+VlQbcTJMfHZ1en6BRYB9e4R6X4iOgouFeZOWb4eNlZuXhp6Wiphzog0BPpw9qS1ANq6vsCYJACH5BAkEAAQALAAAAAAqACoAAAONSLrc/jDKSau9OOvNu/9gKI5kaZ7oM6xsugAsALgKzA40Ybf0vUa+3yYIJA59wJ1QY1Q1M89GEOdQUqVIyMDqvHV5XzAjqiAvpuHrOJtWn9lrr9ZMh2PtZTzBnNfX5W1pgnN+hYAOaIiGYneHb459jHGQe4tLipZukZeNkpWUfJ+gmUl6XFV6OaqrrBgJACH5BAkEAAQALAAAAAAqACoAAAOISLrc/jDKSau9OOvNu/9gKI5kaZ5oqq6nMAxAzL70MNf2iudPEL8AHuNHe+wiO+Hi6GAanQzoEoeUKqwE7BXLpUKSz1q4+O2Km94xuWFeo9NR+PSsftXvZfmWHuez23Zvbn96WYVahoeKfn2MiYN7kHOOgEqNkpVVi5iFV0GOn5KhgSylpqcdCQAh+QQJBAAEACwAAAAAKgAqAAADi0i63P4wykmrvTjrzbv/YCiOZGmeaKqubFsOcPwAMfzVtkPXN/7ggx5P54MMALvjr9gARoBBh1PKpFYX0+aVAV0OtV9rGLslZMUydBSc9o4VZ/JbPo/Dy/ey3Yzn6/9zeXWAbWprXIQ5boV0ioiBfoOSjI+Tjo2HbJSRl4KdCwFHc0mfpJkuqKmqEgkAIfkECQQABAAsAAAAACoAKgAAA4JIutz+MMpJq7046827/2AojmRpnmiqrhowvC8Lw/I81DNOO/bt9Q/XCwD4AHk2YxKZgwyIz+fj2KAym9VlFnvdbb0M6xe8ECvMZbRa2421p+yxWw7nyn30t3NtP8fDfGR+fWl/BIFzbXiAhGiDjYaOh4iLhYILAVGXQpuGLJ+goRgJACH5BAkEAAQALAAAAAAqACoAAAOASLrc/jDKSau9OOvNu/9gKI5kaZ5ougxsqyqt+8bsS9CDjes0H/sy1W7WcwCKnWHj2AJ8lAxoA5dzSGFI6/WWXXWjzZr2Nw6WzV7y9JtWg91t8YM6Z2+x9jz8vef2735/emh8hIFyhVV1g4hximeNeIaAA0yGlpEEmI82nZ6fGwkAIfkECQQABAAsAAAAACoAKgAAA3dIutz+MMpJq7046827/2AojmRpXkOqno26soubwrFMK/JwE/ne3z9aEDZkFU9HU7KUDLgCn+QSZXNMc4CHtKrdurpfSE5n5TKu3lfLvGbj3Dz4Gy6DlsNg/Jkuj/P1NYB7f2qDhW2CfodzizEAhDN3jTuUlZYYCQAh+QQJBAAEACwAAAAAKgAqAAADgEi63P4wykmrvTjrzbv/YCiOZGmeaLoMbKsqrfvG7EvQg43rNB/7MtVu1nMAip1h49gCfJQMaAOXc0hhSOv1ll11o82a9jcOls1e8vSbVoPdbfGDOmdvsfY8/L3n9u9+f3pofISBcoVVdYOIcYpnjXiGgANMhpaRBJiPNp2enxsJACH5BAkEAAQALAAAAAAqACoAAAOCSLrc/jDKSau9OOvNu/9gKI5kaZ5oqq4aMLwvC8PyPNQzTjv27fUP1wsA+AB5NmMSmYMMiM/n49igMpvVZRZ73W29DOsXvBArzGW0WtuNtafssVsO58p99LdzbT/Hw3xkfn1pfwSBc214gIRog42GjoeIi4WCCwFRl0KbhiyfoKEYCQAh+QQJBAAEACwAAAAAKgAqAAADi0i63P4wykmrvTjrzbv/YCiOZGmeaKqubFsOcPwAMfzVtkPXN/7ggx5P54MMALvjr9gARoBBh1PKpFYX0+aVAV0OtV9rGLslZMUydBSc9o4VZ/JbPo/Dy/ey3Yzn6/9zeXWAbWprXIQ5boV0ioiBfoOSjI+Tjo2HbJSRl4KdCwFHc0mfpJkuqKmqEgkAIfkECQQABAAsAAAAACoAKgAAA4hIutz+MMpJq7046827/2AojmRpnmiqrqcwDEDMvvQw1/aK508QvwAe40d77CI74eLoYBqdDOgSh5QqrATsFculQpLPWrj47Yqb3jG5YV6j01H49Kx+1e9l+ZYe57Pbdm9uf3pZhVqGh4p+fYyJg3uQc46ASo2SlVWLmIVXQY6fkqGBLKWmpx0JACH5BAkEAAQALAAAAAAqACoAAAONSLrc/jDKSau9OOvNu/9gKI5kaZ7oM6xsugAsALgKzA40Ybf0vUa+3yYIJA59wJ1QY1Q1M89GEOdQUqVIyMDqvHV5XzAjqiAvpuHrOJtWn9lrr9ZMh2PtZTzBnNfX5W1pgnN+hYAOaIiGYneHb459jHGQe4tLipZukZeNkpWUfJ+gmUl6XFV6OaqrrBgJACH5BAkEAAQALAAAAAAqACoAAAORSLrc/jDKSau9OOvNu/9gKI5kiQ1oajqpujIt+sLxvMRDFADAwAMcXASX2wghxGANedQ0Wc/T8pE0TqFXaWsYvXRvX94W66J+z1lamoAem9ftMlkOdqvpdzwbvlZUG3EyTHx2dXp+gUWAfXuEel+IjoKLhXmTlm+HjZWbl4aeloqYc6INAT6cPaktQDaur7AmCQAh+QQFBAAEACwAAAAAKgAqAAADlUi63P4wykmrvTjrzbv/YDiMZDiRpRmho7qyLsQO8TNHAQCQAHfLO5QPJvtpjI4ZbYNsKIfCIvE4TTYv18WTWXVmK1/Clhq1hU9dxjgTXmvTYrjCPYe3s3h53M4vW/spXn6Cg3WFe4F/h3mHhouALVKPk4mElY6RlktmkJtqenSImZ+NBAEDQaMLqaoKrD01sbKztBQJADs=";
|
|
1233
|
+
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
1234
|
+
__name: "product-explain",
|
|
1235
|
+
props: {
|
|
1236
|
+
product: PropUtils.object().isRequired,
|
|
1237
|
+
productTarget: PropUtils.object().isRequired
|
|
1238
|
+
},
|
|
1239
|
+
emits: {
|
|
1240
|
+
"click-explain": emitFunc()
|
|
1241
|
+
},
|
|
1242
|
+
setup(__props, { emit }) {
|
|
1243
|
+
const props = __props;
|
|
1244
|
+
const { $t } = useI18n();
|
|
1245
|
+
const { ProductExplainStatus } = props.productTarget;
|
|
1246
|
+
function onClickExplain() {
|
|
1247
|
+
emit("click-explain", props.product);
|
|
1248
|
+
}
|
|
1249
|
+
return { __sfc: true, props, emit, $t, ProductExplainStatus, onClickExplain, isMobile, liveGif };
|
|
1250
|
+
}
|
|
1251
|
+
});
|
|
1252
|
+
function normalizeComponent(scriptExports, render7, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
|
|
1253
|
+
var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
|
|
1254
|
+
if (render7) {
|
|
1255
|
+
options.render = render7;
|
|
1256
|
+
options.staticRenderFns = staticRenderFns;
|
|
1257
|
+
options._compiled = true;
|
|
1258
|
+
}
|
|
1259
|
+
return {
|
|
1260
|
+
exports: scriptExports,
|
|
1261
|
+
options
|
|
1262
|
+
};
|
|
1263
|
+
}
|
|
1264
|
+
var _sfc_render$5 = function render() {
|
|
1265
|
+
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
1266
|
+
return _setup.isMobile ? _c("div", { class: { "plv-product-c-explain--no-cover": !_vm.product.cover } }, [_vm.product.explainStatus === _setup.ProductExplainStatus.Explaining ? _c("div", { staticClass: "plv-product-c-explain--explaining", class: {
|
|
1267
|
+
"plv-product-c-explain--explaining-cover": _vm.product.cover
|
|
1268
|
+
} }, [_c("img", { staticClass: "plv-product-c-explain--explaining-icon", attrs: { "src": _setup.liveGif } }), _c("span", [_vm._v(_vm._s(_setup.$t("product.explaining")))])]) : _vm.product.explainStatus === _setup.ProductExplainStatus.Explained ? _c("div", { staticClass: "plv-product-c-explain--explained", class: {
|
|
1269
|
+
"plv-product-c-explain--explained-cover": _vm.product.cover
|
|
1270
|
+
}, on: { "click": function($event) {
|
|
1271
|
+
$event.stopPropagation();
|
|
1272
|
+
return _setup.onClickExplain.apply(null, arguments);
|
|
1273
|
+
} } }, [_c("span", [_vm._v(_vm._s(_setup.$t("product.watchExplain")))])]) : _c("div", { staticClass: "plv-product-c-explain--not-explained", class: {
|
|
1274
|
+
"plv-product-c-explain--not-explained-cover": _vm.product.cover
|
|
1275
|
+
} }, [_c("span", [_vm._v(_vm._s(_setup.$t("product.notExplained")))])])]) : _vm._e();
|
|
1276
|
+
};
|
|
1277
|
+
var _sfc_staticRenderFns$5 = [];
|
|
1278
|
+
var __component__$5 = /* @__PURE__ */ normalizeComponent(
|
|
1279
|
+
_sfc_main$5,
|
|
1280
|
+
_sfc_render$5,
|
|
1281
|
+
_sfc_staticRenderFns$5
|
|
1282
|
+
);
|
|
1283
|
+
const ProductExplain = __component__$5.exports;
|
|
1284
|
+
function getDefaultExportFromCjs(x2) {
|
|
1285
|
+
return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
|
|
1286
|
+
}
|
|
1287
|
+
var iconBuilder = {};
|
|
1288
|
+
var interfaces = {};
|
|
1289
|
+
var hasRequiredInterfaces;
|
|
1290
|
+
function requireInterfaces() {
|
|
1291
|
+
if (hasRequiredInterfaces) return interfaces;
|
|
1292
|
+
hasRequiredInterfaces = 1;
|
|
1293
|
+
(function(exports) {
|
|
1294
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1295
|
+
exports.getColorDescription = exports.defaultIconConfig = exports.currentColor = void 0;
|
|
1296
|
+
exports.currentColor = "currentColor";
|
|
1297
|
+
exports.defaultIconConfig = {
|
|
1298
|
+
size: "1em",
|
|
1299
|
+
type: "outline",
|
|
1300
|
+
strokeLinecap: "round",
|
|
1301
|
+
strokeLinejoin: "round",
|
|
1302
|
+
colors: {
|
|
1303
|
+
outline: {
|
|
1304
|
+
background: "none"
|
|
1305
|
+
},
|
|
1306
|
+
filled: {
|
|
1307
|
+
background: "#FFF"
|
|
1308
|
+
},
|
|
1309
|
+
twoTone: {
|
|
1310
|
+
stroke: "#333",
|
|
1311
|
+
fill: "#2F88FF"
|
|
1312
|
+
},
|
|
1313
|
+
multiColor: {
|
|
1314
|
+
outStroke: "#333",
|
|
1315
|
+
outFill: "#2F88FF",
|
|
1316
|
+
innerStroke: "#FFF",
|
|
1317
|
+
innerFill: "#43CCF8"
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
};
|
|
1321
|
+
var getColorDescription = function(colorProp, iconType) {
|
|
1322
|
+
var color = typeof colorProp === "string" ? [colorProp] : colorProp || [];
|
|
1323
|
+
var colorDesc = [exports.currentColor, exports.currentColor, exports.currentColor, exports.currentColor];
|
|
1324
|
+
switch (iconType) {
|
|
1325
|
+
case "outline": {
|
|
1326
|
+
colorDesc[0] = typeof color[0] === "string" ? color[0] : exports.currentColor;
|
|
1327
|
+
colorDesc[1] = "none";
|
|
1328
|
+
colorDesc[2] = typeof color[0] === "string" ? color[0] : exports.currentColor;
|
|
1329
|
+
colorDesc[3] = "none";
|
|
1330
|
+
break;
|
|
1331
|
+
}
|
|
1332
|
+
case "filled": {
|
|
1333
|
+
colorDesc[0] = typeof color[0] === "string" ? color[0] : exports.currentColor;
|
|
1334
|
+
colorDesc[1] = typeof color[0] === "string" ? color[0] : exports.currentColor;
|
|
1335
|
+
colorDesc[2] = "#FFF";
|
|
1336
|
+
colorDesc[3] = "#FFF";
|
|
1337
|
+
break;
|
|
1338
|
+
}
|
|
1339
|
+
case "two-tone": {
|
|
1340
|
+
var _a = exports.defaultIconConfig.colors.twoTone, stroke = _a.stroke, fill = _a.fill;
|
|
1341
|
+
colorDesc[0] = typeof color[0] === "string" ? color[0] : stroke;
|
|
1342
|
+
colorDesc[1] = typeof color[1] === "string" ? color[1] : fill;
|
|
1343
|
+
colorDesc[2] = typeof color[0] === "string" ? color[0] : stroke;
|
|
1344
|
+
colorDesc[3] = typeof color[1] === "string" ? color[1] : fill;
|
|
1345
|
+
break;
|
|
1346
|
+
}
|
|
1347
|
+
case "multi-color": {
|
|
1348
|
+
var _b = exports.defaultIconConfig.colors.multiColor, outStroke = _b.outStroke, outFill = _b.outFill, innerStroke = _b.innerStroke, innerFill = _b.innerFill;
|
|
1349
|
+
colorDesc[0] = typeof color[0] === "string" ? color[0] : outStroke;
|
|
1350
|
+
colorDesc[1] = typeof color[1] === "string" ? color[1] : outFill;
|
|
1351
|
+
colorDesc[2] = typeof color[2] === "string" ? color[2] : innerStroke;
|
|
1352
|
+
colorDesc[3] = typeof color[3] === "string" ? color[3] : innerFill;
|
|
1353
|
+
break;
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1356
|
+
return colorDesc;
|
|
1357
|
+
};
|
|
1358
|
+
exports.getColorDescription = getColorDescription;
|
|
1359
|
+
})(interfaces);
|
|
1360
|
+
return interfaces;
|
|
1361
|
+
}
|
|
1362
|
+
var utils = {};
|
|
1363
|
+
var config = {};
|
|
1364
|
+
var hasRequiredConfig;
|
|
1365
|
+
function requireConfig() {
|
|
1366
|
+
if (hasRequiredConfig) return config;
|
|
1367
|
+
hasRequiredConfig = 1;
|
|
1368
|
+
Object.defineProperty(config, "__esModule", { value: true });
|
|
1369
|
+
config.CLASS_NAME_PREFIX = void 0;
|
|
1370
|
+
config.CLASS_NAME_PREFIX = "polyv";
|
|
1371
|
+
return config;
|
|
1372
|
+
}
|
|
1373
|
+
var hasRequiredUtils;
|
|
1374
|
+
function requireUtils() {
|
|
1375
|
+
if (hasRequiredUtils) return utils;
|
|
1376
|
+
hasRequiredUtils = 1;
|
|
1377
|
+
Object.defineProperty(utils, "__esModule", { value: true });
|
|
1378
|
+
utils.line2UpperCase = utils.createClsName = void 0;
|
|
1379
|
+
var config_1 = requireConfig();
|
|
1380
|
+
var createClsName = function(name) {
|
|
1381
|
+
return "".concat(config_1.CLASS_NAME_PREFIX, "-").concat(name);
|
|
1382
|
+
};
|
|
1383
|
+
utils.createClsName = createClsName;
|
|
1384
|
+
var line2UpperCase = function(text) {
|
|
1385
|
+
return text.replace(/(^\w|-\w)/g, function(c2) {
|
|
1386
|
+
return c2.slice(-1).toUpperCase();
|
|
1387
|
+
});
|
|
1388
|
+
};
|
|
1389
|
+
utils.line2UpperCase = line2UpperCase;
|
|
1390
|
+
return utils;
|
|
1391
|
+
}
|
|
1392
|
+
var hasRequiredIconBuilder;
|
|
1393
|
+
function requireIconBuilder() {
|
|
1394
|
+
if (hasRequiredIconBuilder) return iconBuilder;
|
|
1395
|
+
hasRequiredIconBuilder = 1;
|
|
1396
|
+
Object.defineProperty(iconBuilder, "__esModule", { value: true });
|
|
1397
|
+
iconBuilder.IconBuilder = void 0;
|
|
1398
|
+
var interfaces_1 = requireInterfaces();
|
|
1399
|
+
var utils_1 = requireUtils();
|
|
1400
|
+
var IconBuilder = function(lineName, render7) {
|
|
1401
|
+
var IconComponent = {
|
|
1402
|
+
name: lineName,
|
|
1403
|
+
props: ["size", "type", "color", "strokeLinecap", "strokeLinejoin"],
|
|
1404
|
+
computed: {
|
|
1405
|
+
renderData: function() {
|
|
1406
|
+
var colorProp = this.color;
|
|
1407
|
+
var iconType = this.type || interfaces_1.defaultIconConfig.type;
|
|
1408
|
+
var size = this.size || interfaces_1.defaultIconConfig.size;
|
|
1409
|
+
var strokeLinecap = this.strokeLinecap || interfaces_1.defaultIconConfig.strokeLinecap;
|
|
1410
|
+
var strokeLinejoin = this.strokeLinejoin || interfaces_1.defaultIconConfig.strokeLinejoin;
|
|
1411
|
+
var colorDesc = (0, interfaces_1.getColorDescription)(colorProp, iconType);
|
|
1412
|
+
return {
|
|
1413
|
+
size,
|
|
1414
|
+
colorDesc,
|
|
1415
|
+
strokeLinecap,
|
|
1416
|
+
strokeLinejoin
|
|
1417
|
+
};
|
|
1418
|
+
}
|
|
1419
|
+
},
|
|
1420
|
+
render: function(h2) {
|
|
1421
|
+
var renderData = this.renderData;
|
|
1422
|
+
var classes = [
|
|
1423
|
+
(0, utils_1.createClsName)("icon"),
|
|
1424
|
+
(0, utils_1.createClsName)("icon-".concat(lineName))
|
|
1425
|
+
];
|
|
1426
|
+
var styles = {};
|
|
1427
|
+
if (renderData.size) {
|
|
1428
|
+
styles.fontSize = "".concat(renderData.size, "px");
|
|
1429
|
+
}
|
|
1430
|
+
return h2("span", {
|
|
1431
|
+
class: classes.join(" "),
|
|
1432
|
+
style: styles,
|
|
1433
|
+
on: this.$listeners,
|
|
1434
|
+
attrs: this.$attrs,
|
|
1435
|
+
domProps: {
|
|
1436
|
+
innerHTML: render7(renderData)
|
|
1437
|
+
}
|
|
1438
|
+
});
|
|
1439
|
+
}
|
|
1440
|
+
};
|
|
1441
|
+
return IconComponent;
|
|
1442
|
+
};
|
|
1443
|
+
iconBuilder.IconBuilder = IconBuilder;
|
|
1444
|
+
return iconBuilder;
|
|
1445
|
+
}
|
|
1446
|
+
var iconBuilderExports = requireIconBuilder();
|
|
1447
|
+
const ProductIconArrowDown = iconBuilderExports.IconBuilder(
|
|
1448
|
+
"arrow-down",
|
|
1449
|
+
(data) => `
|
|
1450
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 16 16">
|
|
1451
|
+
<g>
|
|
1452
|
+
<g />
|
|
1453
|
+
<g>
|
|
1454
|
+
<path
|
|
1455
|
+
fill="${data.colorDesc[0]}"
|
|
1456
|
+
fill-opacity="1"
|
|
1457
|
+
fill-rule="evenodd"
|
|
1458
|
+
d="M2.868623,4.662188L8,10.26005L13.1313,4.6623L13.1314,4.662138Q13.2025,4.584652,13.2987,4.542326Q13.3949,4.5,13.5,4.5Q13.5492,4.5,13.5975,4.509607Q13.6458,4.519215,13.6913,4.53806Q13.7368,4.556906,13.7778,4.584265Q13.8187,4.611625,13.8536,4.646447Q13.8884,4.681269,13.9157,4.722215Q13.9431,4.763161,13.9619,4.808658Q13.9808,4.854155,13.9904,4.9024549Q14,4.9507543,14,5Q14,5.0938219,13.966,5.181262Q13.932,5.268701,13.8686,5.337862L13.8684,5.338025L8.36858,11.33786Q8.35389,11.35389,8.33786,11.36858Q8.26455,11.435780000000001,8.1711,11.46982Q8.077639999999999,11.50385,7.97828,11.49953Q7.87892,11.49521,7.78877,11.45319Q7.69863,11.41118,7.63142,11.33786L2.131469,5.337913L2.131423,5.337862Q2.068025,5.268701,2.034013,5.181261Q2,5.0938219,2,5Q2,4.9507543,2.009607,4.9024549Q2.019215,4.854155,2.0380599999999998,4.808658Q2.056906,4.763161,2.084265,4.722215Q2.111625,4.681269,2.146447,4.646447Q2.181269,4.611625,2.222215,4.584265Q2.263161,4.556906,2.308658,4.53806Q2.354155,4.519215,2.4024549,4.509607Q2.4507543,4.5,2.5,4.5Q2.605115,4.5,2.701332,4.542326Q2.797548,4.584652,2.868577,4.662138L2.868623,4.662188Z"
|
|
1459
|
+
/>
|
|
1460
|
+
</g>
|
|
1461
|
+
</g>
|
|
1462
|
+
</svg>
|
|
1463
|
+
`
|
|
1464
|
+
);
|
|
1465
|
+
const ProductIconArrowLeft = iconBuilderExports.IconBuilder(
|
|
1466
|
+
"arrow-left",
|
|
1467
|
+
(data) => `
|
|
1468
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 20 20">
|
|
1469
|
+
<g>
|
|
1470
|
+
<g>
|
|
1471
|
+
<g />
|
|
1472
|
+
<g
|
|
1473
|
+
transform="matrix(0,0.9999999403953552,-0.9999999403953552,0,16.874999813735485,-10.624999180436134)"
|
|
1474
|
+
>
|
|
1475
|
+
<path
|
|
1476
|
+
fill="${data.colorDesc[0]}"
|
|
1477
|
+
fill-opacity="0.6000000238418579"
|
|
1478
|
+
fill-rule="evenodd"
|
|
1479
|
+
d="M14.302944,2.618292L20.625,9.515080000000001L26.9471,2.618207Q27.0537,2.5019780000000003,27.198,2.438489Q27.3423,2.375,27.5,2.375Q27.573900000000002,2.375,27.6463,2.389411Q27.7188,2.403822,27.787,2.43209Q27.8553,2.460359,27.9167,2.501398Q27.978099999999998,2.542437,28.0303,2.59467Q28.0826,2.646903,28.1236,2.708322Q28.1646,2.769742,28.1929,2.837987Q28.2212,2.906233,28.235599999999998,2.978682Q28.25,3.0511315,28.25,3.125Q28.25,3.265733,28.198999999999998,3.3968920000000002Q28.148,3.528052,28.0529,3.631794L28.052300000000002,3.632367L21.17787,11.13179Q21.15583,11.15583,21.13179,11.17786Q21.021819999999998,11.27867,20.88164,11.32972Q20.74147,11.38077,20.59242,11.37429Q20.44338,11.36781,20.30816,11.30479Q20.17294,11.24176,20.07213,11.13179L13.197134,3.631793Q13.102038,3.528052,13.051019,3.3968920000000002Q13,3.265733,13,3.125Q13,3.0511315,13.014410999999999,2.978682Q13.028822,2.906233,13.05709,2.837987Q13.085359,2.769742,13.126398,2.708322Q13.167437,2.646903,13.21967,2.59467Q13.271903,2.542437,13.333322,2.501398Q13.394742,2.460359,13.462987,2.43209Q13.531233,2.403822,13.603682,2.389411Q13.6761315,2.375,13.75,2.375Q13.907672,2.375,14.051997,2.438489Q14.196322,2.5019780000000003,14.302866,2.618207L14.302944,2.618292Z"
|
|
1480
|
+
/>
|
|
1481
|
+
</g>
|
|
1482
|
+
</g>
|
|
1483
|
+
</g>
|
|
1484
|
+
</svg>
|
|
1485
|
+
`
|
|
1486
|
+
);
|
|
1487
|
+
iconBuilderExports.IconBuilder(
|
|
1488
|
+
"arrow-right",
|
|
1489
|
+
(data) => `
|
|
1490
|
+
<svg
|
|
1491
|
+
width="${data.size}"
|
|
1492
|
+
height="${data.size}"
|
|
1493
|
+
fill="${data.colorDesc[0]}"
|
|
1494
|
+
viewBox="0 0 1024 1024"
|
|
1495
|
+
>
|
|
1496
|
+
<path
|
|
1497
|
+
d="M373.504 770.56a31.744 31.744 0 0 1-10.24-23.04c0-8.78933301 3.669333-17.066667 10.24-23.210667L587.946667 522.75200001l-211.541334-198.65600001c-13.568-12.8-13.568-33.536 0-46.336 13.653333-12.8 35.754667-12.79999999 49.322667 0L660.309333 498.005333a31.232 31.232 0 0 1 5.034667 40.277334 32.170667 32.170667 0 0 1-8.106667 12.117333L422.741333 770.56a36.437333 36.437333 0 0 1-49.237333 0z"
|
|
1498
|
+
/>
|
|
1499
|
+
</svg>
|
|
1500
|
+
`
|
|
1501
|
+
);
|
|
1502
|
+
iconBuilderExports.IconBuilder(
|
|
1503
|
+
"choose-address",
|
|
1504
|
+
(data) => `
|
|
1505
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 13.5 10">
|
|
1506
|
+
<g>
|
|
1507
|
+
<path
|
|
1508
|
+
fill="${data.colorDesc[0]}"
|
|
1509
|
+
fill-opacity="1"
|
|
1510
|
+
fill-rule="evenodd"
|
|
1511
|
+
d="M13.2295,1.683941Q13.3599,1.544932,13.4299,1.3677380000000001Q13.5,1.190545,13.5,1Q13.5,0.9015086,13.4808,0.80491Q13.4616,0.708311,13.4239,0.617317Q13.3862,0.526322,13.3315,0.44443Q13.2767,0.362537,13.2071,0.29289299999999996Q13.1375,0.22324900000000003,13.0556,0.16852999999999996Q12.9737,0.11381200000000002,12.8827,0.076121Q12.7917,0.038429999999999964,12.6951,0.019214999999999982Q12.5985,0,12.5,0Q12.2927,0,12.1025,0.08241100000000001Q11.9122,0.164821,11.7705,0.316059L11.7701,0.316446L4.97682,7.56261L1.7071070000000002,4.29289Q1.566455,4.15224,1.382683,4.0761199999999995Q1.198912,4,1,4Q0.9015086,4,0.80491,4.01921Q0.708311,4.03843,0.617317,4.0761199999999995Q0.526322,4.11381,0.44443,4.1685300000000005Q0.362537,4.22325,0.29289299999999996,4.29289Q0.22324900000000003,4.36254,0.16852999999999996,4.4444300000000005Q0.11381200000000002,4.52632,0.076121,4.617319999999999Q0.038429999999999964,4.70831,0.019214999999999982,4.80491Q0,4.90151,0,5Q0,5.19891,0.07611999999999997,5.38268Q0.15224099999999996,5.56645,0.29289299999999996,5.70711L0.293268,5.70748L4.29289,9.70711Q4.3043,9.71851,4.31606,9.72954Q4.46117,9.86558,4.6472999999999995,9.93574Q4.83343,10.00589,5.03224,9.99948Q5.23105,9.99307,5.41227,9.91106Q5.59349,9.82905,5.72954,9.68394L13.2292,1.684328L13.2295,1.683941L13.2295,1.683941Z"
|
|
1512
|
+
/>
|
|
1513
|
+
</g>
|
|
1514
|
+
</svg>
|
|
1515
|
+
`
|
|
1516
|
+
);
|
|
1517
|
+
const ProductIconClose = iconBuilderExports.IconBuilder(
|
|
1518
|
+
"close",
|
|
1519
|
+
(data) => `
|
|
1520
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 24 24">
|
|
1521
|
+
<g>
|
|
1522
|
+
<g />
|
|
1523
|
+
<g>
|
|
1524
|
+
<path
|
|
1525
|
+
fill="${data.colorDesc[0]}"
|
|
1526
|
+
fill-rule="evenodd"
|
|
1527
|
+
d="M13.06067779937744,12.72779953125L18.894417799377443,6.89409953125Q18.99981779937744,6.78860953125,19.05691779937744,6.65077953125Q19.114017799377443,6.51295353125,19.114017799377443,6.36376953125Q19.114017799377443,6.21458553125,19.05691779937744,6.07675653125Q18.99981779937744,5.93892853125,18.894417799377443,5.83343953125Q18.788917799377444,5.72795053125,18.651017799377442,5.67085993125Q18.513217799377443,5.61376953125,18.364017799377443,5.61376953125Q18.214817799377442,5.61376953125,18.077017799377444,5.67085993125Q17.93921779937744,5.72795053125,17.83371779937744,5.83343953125L12.000017799377442,11.667139531250001L6.166317799377442,5.83343953125Q6.114087799377441,5.78120653125,6.052667799377441,5.74016753125Q5.991247799377441,5.69912813125,5.922997799377441,5.67085993125Q5.854753799377441,5.64259163125,5.7823047993774415,5.62818063125Q5.709855799377442,5.6137695661656,5.6359867993774415,5.6137695661656Q5.5621187993774415,5.6137695661656,5.489669799377442,5.62818063125Q5.417219799377442,5.64259163125,5.348974799377442,5.67085993125Q5.280728799377441,5.69912813125,5.2193097993774415,5.74016753125Q5.1578897993774415,5.78120653125,5.105656799377441,5.83343953125Q5.053423799377441,5.88567253125,5.0123847993774415,5.94709153125Q4.971345899377441,6.00851153125,4.943077699377441,6.07675653125Q4.914809399377441,6.14500253125,4.900398399377441,6.21745153125Q4.885987318077442,6.28990053125,4.885987318077442,6.36376953125Q4.885987318077442,6.43763753125,4.900398399377441,6.51008753125Q4.914809399377441,6.58253653125,4.943077699377441,6.65077953125Q4.971345899377441,6.7190295312499995,5.0123847993774415,6.7804495312499995Q5.053423799377441,6.8418695312499995,5.105656799377441,6.89409953125L10.939357799377442,12.72779953125L5.105793799377442,18.56136953125Q5.053560799377442,18.61356953125,5.012521799377441,18.67496953125Q4.971482499377442,18.736469531250002,4.943214099377442,18.80466953125Q4.914945799377441,18.87296953125,4.900534699377442,18.94536953125Q4.886123590377442,19.01786953125,4.886123523377441,19.091669531249998Q4.886123457377441,19.16556953125,4.900534399377442,19.237969531250002Q4.914945399377442,19.31046953125,4.943213599377441,19.37866953125Q4.971481799377441,19.446969531249998,5.012520799377441,19.50836953125Q5.0535597993774415,19.56976953125,5.105792799377442,19.62206953125Q5.158025799377441,19.674269531249998,5.219445799377441,19.71526953125Q5.280864799377442,19.75636953125,5.349110799377441,19.78456953125Q5.417355799377441,19.81286953125,5.489804799377441,19.82726953125Q5.562254799377442,19.841669531249998,5.636122799377441,19.841669531249998Q5.709991799377441,19.841669531249998,5.782440799377442,19.82726953125Q5.854889799377442,19.81286953125,5.923137799377441,19.78456953125Q5.9913777993774415,19.75636953125,6.052797799377442,19.71526953125Q6.114217799377442,19.674269531249998,6.166457799377442,19.62206953125L12.000017799377442,13.78845953125L17.833617799377443,19.62206953125Q17.885817799377442,19.674269531249998,17.94721779937744,19.71526953125Q18.00861779937744,19.75636953125,18.07691779937744,19.78456953125Q18.14511779937744,19.81286953125,18.217617799377443,19.82726953125Q18.29001779937744,19.841669531249998,18.36391779937744,19.841669531249998Q18.43781779937744,19.841669531249998,18.510217799377443,19.82726953125Q18.58271779937744,19.81286953125,18.650917799377442,19.78456953125Q18.719117799377443,19.75636953125,18.780617799377442,19.71526953125Q18.84201779937744,19.674269531249998,18.894217799377444,19.62206953125Q18.94651779937744,19.56976953125,18.987517799377443,19.50836953125Q19.02851779937744,19.446969531249998,19.05681779937744,19.37866953125Q19.085117799377443,19.31046953125,19.09951779937744,19.237969531250002Q19.11391779937744,19.16556953125,19.11391779937744,19.091669531249998Q19.11391779937744,19.01786953125,19.09951779937744,18.94536953125Q19.085117799377443,18.87296953125,19.05681779937744,18.80466953125Q19.02851779937744,18.736469531250002,18.987517799377443,18.67496953125Q18.94651779937744,18.61356953125,18.894217799377444,18.56136953125L13.06067779937744,12.72779953125Z"
|
|
1528
|
+
/>
|
|
1529
|
+
</g>
|
|
1530
|
+
</g>
|
|
1531
|
+
</svg>
|
|
1532
|
+
`
|
|
1533
|
+
);
|
|
1534
|
+
iconBuilderExports.IconBuilder(
|
|
1535
|
+
"close-round-fill",
|
|
1536
|
+
(data) => `
|
|
1537
|
+
<svg
|
|
1538
|
+
width="${data.size}"
|
|
1539
|
+
height="${data.size}"
|
|
1540
|
+
fill="${data.colorDesc[0]}"
|
|
1541
|
+
viewBox="0 0 1024 1024"
|
|
1542
|
+
>
|
|
1543
|
+
<path
|
|
1544
|
+
d="M512 0c282.7776 0 512 229.2224 512 512s-229.2224 512-512 512S0 794.7776 0 512 229.2224 0 512 0zM376.5248 319.0784a40.6528 40.6528 0 0 0-57.344 57.4976l143.872 144.0256-143.872 143.872a40.6016 40.6016 0 1 0 57.4464 57.5488l143.872-143.9744 143.9232 143.9744a40.6528 40.6528 0 0 0 57.4464-57.4976l-143.872-143.9232L721.92 376.576a40.6016 40.6016 0 1 0-57.3952-57.4976l-143.9744 144.0256z"
|
|
1545
|
+
/>
|
|
1546
|
+
</svg>
|
|
1547
|
+
`
|
|
1548
|
+
);
|
|
1549
|
+
iconBuilderExports.IconBuilder(
|
|
1550
|
+
"img-placeholder",
|
|
1551
|
+
(data) => `
|
|
1552
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 80 80">
|
|
1553
|
+
<defs>
|
|
1554
|
+
<clipPath><rect width="80" height="80" x="0" y="0" rx="0" /></clipPath>
|
|
1555
|
+
</defs>
|
|
1556
|
+
<g clip-path="url(#master_svg0_6_25301/6_23777)">
|
|
1557
|
+
<g>
|
|
1558
|
+
<path
|
|
1559
|
+
fill="${data.colorDesc[0]}"
|
|
1560
|
+
fill-opacity="0.10000000149011612"
|
|
1561
|
+
fill-rule="evenodd"
|
|
1562
|
+
d="M4.000041484832764,21.999980926513672L4.000041484832764,57.99998092651367Q4.000041484832764,61.72788092651367,6.636081484832763,64.36398092651368Q9.272121484832763,66.99998092651367,13.000041484832764,66.99998092651367L65.00004148483276,66.99998092651367Q68.72794148483277,66.99998092651367,71.36404148483277,64.36398092651368Q74.00004148483276,61.72788092651367,74.00004148483276,57.99998092651367L74.00004148483276,21.999980926513672Q74.00004148483276,18.27206092651367,71.36404148483277,15.636020926513671Q68.72794148483277,12.999980926513672,65.00004148483276,12.999980926513672L13.000041484832764,12.999980926513672Q9.272121484832763,12.999980926513672,6.636081484832763,15.636020926513671Q4.000041484832764,18.27206092651367,4.000041484832764,21.999980926513672ZM7.000041484832764,21.999980926513672L7.000041484832764,46.84138092651367Q7.026161484832764,46.83008092651367,7.0526914848327635,46.81978092651367Q14.100341484832764,44.08258092651367,20.035341484832763,46.00858092651367Q24.706041484832763,47.52428092651367,28.582441484832763,50.861780926513674Q32.89634148483276,38.45178092651367,44.86384148483276,33.90138092651367Q57.276841484832765,29.18148092651367,71.00004148483276,36.75598092651367L71.00004148483276,21.999980926513672Q71.00004148483276,21.852690926513674,70.99284148483277,21.705570926513673Q70.98554148483277,21.55846092651367,70.97114148483277,21.41188092651367Q70.95674148483276,21.26530092651367,70.93514148483277,21.11960092651367Q70.91354148483276,20.97390092651367,70.88474148483276,20.829440926513673Q70.85604148483276,20.68498092651367,70.82024148483276,20.542100926513672Q70.78444148483277,20.39922092651367,70.74164148483277,20.25827092651367Q70.69894148483276,20.11732092651367,70.64934148483276,19.97864092651367Q70.59964148483276,19.839960926513672,70.54334148483277,19.703880926513673Q70.48694148483277,19.567800926513673,70.42394148483277,19.434650926513672Q70.36094148483276,19.301500926513672,70.29154148483276,19.171600926513673Q70.22214148483276,19.04170092651367,70.14644148483276,18.91536092651367Q70.07064148483276,18.78903092651367,69.98884148483276,18.66656092651367Q69.90704148483276,18.54409092651367,69.81924148483276,18.42578092651367Q69.73154148483276,18.307480926513673,69.63814148483276,18.193620926513674Q69.54464148483277,18.07976092651367,69.44574148483277,17.97063092651367Q69.34684148483277,17.86149092651367,69.24264148483276,17.75734092651367Q69.13854148483276,17.653190926513673,69.02944148483276,17.554270926513674Q68.92024148483276,17.45536092651367,68.80644148483276,17.361920926513672Q68.69254148483276,17.26848092651367,68.57424148483277,17.18073092651367Q68.45594148483276,17.09299092651367,68.33344148483276,17.01116092651367Q68.21094148483276,16.92933092651367,68.08464148483276,16.85361092651367Q67.95834148483277,16.77788092651367,67.82844148483277,16.70845092651367Q67.69854148483276,16.639020926513673,67.56534148483277,16.57604092651367Q67.43224148483276,16.51307092651367,67.29614148483276,16.456700926513673Q67.16004148483276,16.40034092651367,67.02134148483276,16.350720926513674Q66.88264148483276,16.301090926513673,66.74174148483277,16.25834092651367Q66.60074148483277,16.21558092651367,66.45794148483276,16.17979092651367Q66.31504148483276,16.144000926513673,66.17054148483277,16.115270926513674Q66.02614148483276,16.08653092651367,65.88044148483277,16.064920926513672Q65.73474148483277,16.043310926513673,65.58814148483276,16.028870926513672Q65.44154148483275,16.014430926513672,65.29444148483276,16.00721092651367Q65.14734148483276,15.999980926513672,65.00004148483276,15.999980926513672L13.000041484832764,15.999980926513672Q12.852751484832764,15.999980926513672,12.705631484832764,16.00721092651367Q12.558521484832763,16.014430926513672,12.411941484832763,16.028870926513672Q12.265361484832763,16.043310926513673,12.119661484832763,16.064920926513672Q11.973961484832763,16.08653092651367,11.829501484832765,16.115270926513674Q11.685041484832762,16.144000926513673,11.542161484832764,16.17979092651367Q11.399281484832763,16.21558092651367,11.258331484832762,16.25834092651367Q11.117381484832764,16.301090926513673,10.978701484832763,16.350720926513674Q10.840021484832764,16.40034092651367,10.703941484832765,16.456700926513673Q10.567861484832765,16.51307092651367,10.434711484832764,16.57604092651367Q10.301561484832764,16.639020926513673,10.171661484832764,16.70845092651367Q10.041761484832763,16.77789092651367,9.915421484832763,16.85361092651367Q9.789091484832763,16.92933092651367,9.666621484832763,17.01116092651367Q9.544151484832764,17.09299092651367,9.425841484832763,17.18073092651367Q9.307541484832765,17.26848092651367,9.193681484832764,17.361920926513672Q9.079821484832763,17.45536092651367,8.970691484832763,17.554270926513674Q8.861551484832763,17.653190926513673,8.757401484832764,17.75734092651367Q8.653251484832763,17.86149092651367,8.554331484832764,17.97063092651367Q8.455421484832764,18.07976092651367,8.361981484832764,18.193620926513674Q8.268541484832763,18.307480926513673,8.180791484832763,18.42578092651367Q8.093051484832763,18.54409092651367,8.011221484832763,18.66656092651367Q7.929391484832763,18.78903092651367,7.853671484832764,18.91536092651367Q7.7779414848327635,19.04170092651367,7.708511484832764,19.171600926513673Q7.639081484832763,19.301500926513672,7.576101484832764,19.434650926513672Q7.513131484832764,19.567800926513673,7.4567614848327635,19.703880926513673Q7.400401484832764,19.839960926513672,7.350781484832764,19.97864092651367Q7.301151484832763,20.11732092651367,7.258401484832763,20.25827092651367Q7.215641484832764,20.39922092651367,7.1798514848327635,20.542100926513672Q7.144061484832763,20.68498092651367,7.115331484832764,20.829440926513673Q7.086591484832764,20.97390092651367,7.064981484832764,21.11960092651367Q7.043371484832764,21.26530092651367,7.028931484832764,21.41188092651367Q7.014491484832764,21.55846092651367,7.0072714848327635,21.705570926513673Q7.000041484832764,21.852690926513674,7.000041484832764,21.999980926513672ZM23.595741484832764,37.59568092651367Q23.718441484832763,37.59568092651367,23.841041484832765,37.58968092651367Q23.963641484832763,37.58368092651367,24.085841484832763,37.571580926513676Q24.207941484832762,37.559580926513675,24.329441484832763,37.541580926513674Q24.450841484832765,37.523580926513674,24.571241484832765,37.49958092651367Q24.691541484832765,37.475680926513675,24.810641484832765,37.445880926513674Q24.929741484832764,37.41598092651367,25.047141484832764,37.38038092651367Q25.164641484832764,37.34478092651367,25.280141484832765,37.30338092651367Q25.395741484832765,37.262080926513676,25.509141484832764,37.21508092651367Q25.622541484832762,37.16808092651367,25.733541484832763,37.11558092651367Q25.844441484832764,37.06318092651367,25.952741484832764,37.00528092651367Q26.060941484832764,36.947380926513674,26.166241484832764,36.88428092651367Q26.271541484832763,36.82118092651368,26.373641484832763,36.75298092651367Q26.475641484832764,36.68488092651367,26.574241484832765,36.61168092651367Q26.672841484832762,36.538580926513674,26.767741484832765,36.46078092651367Q26.862641484832764,36.38288092651367,26.953541484832762,36.30048092651367Q27.044441484832763,36.217980926513675,27.131241484832763,36.13118092651367Q27.218041484832764,36.04438092651367,27.300541484832763,35.95348092651367Q27.382941484832763,35.86258092651367,27.460841484832763,35.76768092651368Q27.538641484832763,35.67278092651367,27.611741484832763,35.57418092651368Q27.684941484832763,35.47558092651367,27.753041484832764,35.37358092651367Q27.821241484832765,35.271480926513675,27.884341484832763,35.166180926513675Q27.947441484832762,35.060880926513676,28.005341484832762,34.95268092651367Q28.063241484832762,34.84438092651367,28.115641484832764,34.73348092651367Q28.168141484832763,34.622480926513674,28.215141484832763,34.509080926513676Q28.262141484832764,34.39568092651368,28.303441484832764,34.28018092651367Q28.344841484832763,34.16458092651367,28.380441484832765,34.04708092651367Q28.416041484832764,33.92968092651367,28.445941484832765,33.81058092651367Q28.475741484832763,33.69148092651368,28.499641484832765,33.57118092651368Q28.523641484832762,33.45078092651367,28.541641484832763,33.32938092651367Q28.559641484832763,33.20788092651367,28.571641484832764,33.08578092651367Q28.583741484832764,32.96358092651367,28.589741484832764,32.84098092651367Q28.595741484832764,32.718380926513674,28.595741484832764,32.59568092651367Q28.595741484832764,32.47298092651367,28.589741484832764,32.35038092651367Q28.583741484832764,32.227780926513674,28.571641484832764,32.10558092651367Q28.559641484832763,31.98348092651367,28.541641484832763,31.862080926513674Q28.523641484832762,31.740580926513672,28.499641484832765,31.620180926513672Q28.475741484832763,31.499880926513672,28.445941484832765,31.380780926513673Q28.416041484832764,31.261680926513673,28.380441484832765,31.144280926513673Q28.344841484832763,31.026780926513673,28.303441484832764,30.911280926513673Q28.262141484832764,30.795680926513672,28.215141484832763,30.682280926513673Q28.168141484832763,30.56888092651367,28.115641484832764,30.45788092651367Q28.063241484832762,30.346980926513673,28.005341484832762,30.238680926513673Q27.947441484832762,30.130480926513673,27.884341484832763,30.025180926513674Q27.821241484832765,29.91988092651367,27.753041484832764,29.81778092651367Q27.684941484832763,29.715780926513673,27.611741484832763,29.617180926513672Q27.538641484832763,29.51858092651367,27.460841484832763,29.423680926513672Q27.382941484832763,29.328880926513673,27.300541484832763,29.23788092651367Q27.218041484832764,29.14698092651367,27.131241484832763,29.06018092651367Q27.044441484832763,28.97338092651367,26.953541484832762,28.890880926513674Q26.862641484832764,28.808480926513674,26.767741484832765,28.730580926513674Q26.672841484832762,28.65278092651367,26.574241484832765,28.579680926513674Q26.475641484832764,28.506480926513674,26.373641484832763,28.438380926513673Q26.271541484832763,28.370180926513672,26.166241484832764,28.30708092651367Q26.060941484832764,28.24398092651367,25.952741484832764,28.18608092651367Q25.844441484832764,28.12818092651367,25.733541484832763,28.075780926513673Q25.622541484832762,28.02328092651367,25.509141484832764,27.976280926513674Q25.395741484832765,27.92928092651367,25.280241484832764,27.88798092651367Q25.164641484832764,27.846580926513674,25.047141484832764,27.810980926513672Q24.929741484832764,27.77538092651367,24.810641484832765,27.74548092651367Q24.691541484832765,27.71568092651367,24.571241484832765,27.691780926513673Q24.450841484832765,27.66778092651367,24.329441484832763,27.64978092651367Q24.207941484832762,27.63178092651367,24.085841484832763,27.61978092651367Q23.963641484832763,27.607680926513673,23.841041484832765,27.601680926513673Q23.718441484832763,27.595680926513673,23.595741484832764,27.595680926513673Q23.473041484832763,27.595680926513673,23.350441484832764,27.601680926513673Q23.227841484832762,27.607680926513673,23.105641484832763,27.61978092651367Q22.983541484832763,27.63178092651367,22.862141484832765,27.64978092651367Q22.740641484832764,27.66778092651367,22.620241484832764,27.691780926513673Q22.499941484832764,27.71568092651367,22.380841484832764,27.74548092651367Q22.261741484832765,27.77538092651367,22.144341484832765,27.810980926513672Q22.026841484832765,27.846580926513674,21.911341484832764,27.88798092651367Q21.795741484832764,27.92928092651367,21.682341484832765,27.976280926513674Q21.568941484832763,28.02328092651367,21.457941484832762,28.075780926513673Q21.347041484832765,28.12818092651367,21.238741484832765,28.18608092651367Q21.130541484832765,28.24398092651367,21.025241484832765,28.30708092651367Q20.919941484832762,28.370180926513672,20.817841484832762,28.438380926513673Q20.715841484832765,28.506480926513674,20.617241484832764,28.579680926513674Q20.518641484832763,28.65278092651367,20.423741484832764,28.730580926513674Q20.328941484832765,28.808480926513674,20.237941484832763,28.890880926513674Q20.147041484832762,28.97338092651367,20.060241484832762,29.06018092651367Q19.97344148483276,29.14698092651367,19.890941484832766,29.23788092651367Q19.808541484832766,29.328880926513673,19.730641484832766,29.423680926513672Q19.652841484832763,29.51858092651367,19.579741484832766,29.617180926513672Q19.506541484832766,29.715780926513673,19.438441484832765,29.81778092651367Q19.370241484832764,29.91988092651367,19.307141484832762,30.025180926513674Q19.244041484832763,30.130480926513673,19.186141484832763,30.238680926513673Q19.128241484832763,30.346980926513673,19.075841484832765,30.45788092651367Q19.023341484832763,30.56888092651367,18.976341484832766,30.682280926513673Q18.92934148483276,30.795680926513672,18.888041484832762,30.911280926513673Q18.846641484832766,31.026780926513673,18.811041484832764,31.144280926513673Q18.77544148483276,31.261680926513673,18.745541484832764,31.380780926513673Q18.715741484832762,31.499880926513672,18.691841484832764,31.620180926513672Q18.667841484832763,31.740580926513672,18.649841484832763,31.86198092651367Q18.631841484832762,31.98348092651367,18.61984148483276,32.10558092651367Q18.607741484832765,32.227780926513674,18.601741484832765,32.35038092651367Q18.595741484832764,32.47298092651367,18.595741484832764,32.59568092651367Q18.595741484832764,32.718380926513674,18.601741484832765,32.84098092651367Q18.607741484832765,32.96358092651367,18.61984148483276,33.08578092651367Q18.631841484832762,33.20788092651367,18.649841484832763,33.32938092651367Q18.667841484832763,33.45078092651367,18.691841484832764,33.57118092651368Q18.715741484832762,33.69148092651368,18.745541484832764,33.81058092651367Q18.77544148483276,33.92968092651367,18.811041484832764,34.04708092651367Q18.846641484832766,34.16458092651367,18.888041484832762,34.280080926513676Q18.92934148483276,34.39568092651368,18.976341484832766,34.509080926513676Q19.023341484832763,34.622480926513674,19.075841484832765,34.73348092651367Q19.128241484832763,34.84438092651367,19.186141484832763,34.95268092651367Q19.244041484832763,35.060880926513676,19.307141484832762,35.166180926513675Q19.370241484832764,35.271480926513675,19.438441484832765,35.37358092651367Q19.506541484832766,35.47558092651367,19.579741484832766,35.57418092651368Q19.652841484832763,35.67278092651367,19.730641484832766,35.76768092651368Q19.808541484832766,35.86258092651367,19.890941484832766,35.95348092651367Q19.97344148483276,36.04438092651367,20.060241484832762,36.13118092651367Q20.147041484832762,36.217980926513675,20.237941484832763,36.30048092651367Q20.328941484832765,36.38288092651367,20.423741484832764,36.46078092651367Q20.518641484832763,36.538580926513674,20.617241484832764,36.61168092651367Q20.715841484832765,36.68488092651367,20.817841484832762,36.75298092651367Q20.919941484832762,36.82118092651368,21.025241484832765,36.88428092651367Q21.130541484832765,36.947380926513674,21.238741484832765,37.00528092651367Q21.347041484832765,37.06318092651367,21.457941484832762,37.11558092651367Q21.568941484832763,37.16808092651367,21.682341484832765,37.21508092651367Q21.795741484832764,37.262080926513676,21.911341484832764,37.30338092651367Q22.026841484832765,37.34478092651367,22.144341484832765,37.38038092651367Q22.261741484832765,37.41598092651367,22.380841484832764,37.445880926513674Q22.499941484832764,37.475680926513675,22.620241484832764,37.49958092651367Q22.740641484832764,37.523580926513674,22.862041484832762,37.541580926513674Q22.983541484832763,37.559580926513675,23.105641484832763,37.571580926513676Q23.227841484832762,37.58368092651367,23.350441484832764,37.58968092651367Q23.473041484832763,37.59568092651367,23.595741484832764,37.59568092651367ZM23.595741484832764,30.595680926513673Q23.694041484832763,30.595680926513673,23.791741484832762,30.60528092651367Q23.889541484832765,30.61498092651367,23.985941484832765,30.634080926513672Q24.082241484832764,30.653280926513673,24.176341484832765,30.68178092651367Q24.270341484832763,30.710280926513672,24.361141484832764,30.747880926513673Q24.451841484832762,30.78548092651367,24.538541484832763,30.831880926513673Q24.625141484832763,30.87818092651367,24.706841484832765,30.932780926513672Q24.788541484832763,30.987380926513673,24.864541484832763,31.049680926513673Q24.940441484832764,31.11198092651367,25.009941484832762,31.18148092651367Q25.079441484832763,31.250980926513673,25.141741484832764,31.32688092651367Q25.204141484832764,31.40288092651367,25.258641484832765,31.484580926513672Q25.313241484832762,31.56628092651367,25.359541484832764,31.65288092651367Q25.405941484832763,31.73958092651367,25.443541484832764,31.830280926513673Q25.481141484832765,31.92108092651367,25.509641484832763,32.015080926513676Q25.538141484832764,32.10918092651367,25.557341484832765,32.20548092651367Q25.576441484832763,32.301880926513675,25.586141484832762,32.39968092651367Q25.595741484832764,32.49738092651367,25.595741484832764,32.59568092651367Q25.595741484832764,32.693980926513674,25.586141484832762,32.79168092651367Q25.576441484832763,32.88948092651367,25.557341484832765,32.98588092651367Q25.538141484832764,33.08218092651367,25.509641484832763,33.17628092651367Q25.481141484832765,33.27028092651367,25.443541484832764,33.36108092651367Q25.405941484832763,33.45178092651367,25.359541484832764,33.53848092651367Q25.313241484832762,33.625080926513675,25.258641484832765,33.70678092651367Q25.204141484832764,33.78848092651367,25.141741484832764,33.86448092651367Q25.079441484832763,33.94038092651367,25.009941484832762,34.009880926513674Q24.940441484832764,34.07938092651367,24.864541484832763,34.14168092651367Q24.788541484832763,34.20408092651367,24.706841484832765,34.25858092651367Q24.625141484832763,34.31318092651367,24.538541484832763,34.35948092651367Q24.451841484832762,34.405880926513674,24.361141484832764,34.44348092651367Q24.270341484832763,34.48108092651367,24.176341484832765,34.50958092651367Q24.082241484832764,34.53808092651367,23.985941484832765,34.55728092651367Q23.889541484832765,34.57638092651367,23.791741484832762,34.586080926513674Q23.694041484832763,34.59568092651367,23.595741484832764,34.59568092651367Q23.497441484832763,34.59568092651367,23.399741484832763,34.586080926513674Q23.301941484832764,34.57638092651367,23.205541484832764,34.55728092651367Q23.109241484832765,34.53808092651367,23.015141484832764,34.50958092651367Q22.921141484832763,34.48108092651367,22.830341484832765,34.44348092651367Q22.739641484832763,34.405880926513674,22.652941484832763,34.35948092651367Q22.566341484832762,34.31318092651367,22.484641484832764,34.25858092651367Q22.402941484832763,34.20408092651367,22.326941484832762,34.14168092651367Q22.251041484832765,34.07938092651367,22.181541484832763,34.009880926513674Q22.112041484832762,33.94038092651367,22.049741484832765,33.86448092651367Q21.987441484832765,33.78848092651367,21.932841484832764,33.70678092651367Q21.878241484832763,33.625080926513675,21.831941484832765,33.53848092651367Q21.785541484832763,33.45178092651367,21.747941484832765,33.36108092651367Q21.710341484832764,33.27028092651367,21.681841484832763,33.17628092651367Q21.653341484832765,33.08218092651367,21.634141484832764,32.98588092651367Q21.615041484832762,32.88948092651367,21.605341484832763,32.79168092651367Q21.595741484832764,32.693980926513674,21.595741484832764,32.59568092651367Q21.595741484832764,32.49738092651367,21.605341484832763,32.39968092651367Q21.615041484832762,32.301880926513675,21.634141484832764,32.20548092651367Q21.653341484832765,32.10918092651367,21.681841484832763,32.015080926513676Q21.710341484832764,31.92108092651367,21.747941484832765,31.830280926513673Q21.785541484832763,31.73958092651367,21.831941484832765,31.65288092651367Q21.878241484832763,31.56628092651367,21.932841484832764,31.484580926513672Q21.987441484832765,31.40288092651367,22.049741484832765,31.32688092651367Q22.112041484832762,31.250980926513673,22.181541484832763,31.18148092651367Q22.251041484832765,31.11198092651367,22.326941484832762,31.049680926513673Q22.402941484832763,30.987380926513673,22.484641484832764,30.932780926513672Q22.566341484832762,30.87818092651367,22.652941484832763,30.831880926513673Q22.739641484832763,30.78548092651367,22.830341484832765,30.747880926513673Q22.921141484832763,30.710280926513672,23.015141484832764,30.68178092651367Q23.109241484832765,30.653280926513673,23.205541484832764,30.634080926513672Q23.301941484832764,30.61498092651367,23.399741484832763,30.60528092651367Q23.497441484832763,30.595680926513673,23.595741484832764,30.595680926513673ZM7.000041484832764,57.99998092651367L7.000041484832764,49.594680926513675Q7.2851214848327634,49.717980926513675,7.595741484832764,49.717980926513675Q7.876801484832764,49.717980926513675,8.138801484832765,49.616280926513674Q14.190541484832764,47.265880926513674,19.10934148483276,48.86208092651367Q24.185241484832762,50.50918092651367,28.231341484832765,54.64468092651367Q28.514741484832765,54.93438092651367,28.905441484832764,55.04188092651367Q28.976541484832765,55.061480926513674,29.049141484832763,55.07398092651367Q29.121741484832764,55.08648092651367,29.195241484832763,55.09178092651367Q29.268741484832763,55.09708092651367,29.342441484832765,55.09518092651367Q29.416041484832764,55.09328092651367,29.489241484832764,55.084180926513675Q29.562341484832764,55.074980926513675,29.634241484832764,55.05878092651367Q29.706041484832763,55.04258092651367,29.776041484832763,55.01928092651367Q29.845941484832764,54.99608092651367,29.913341484832763,54.96618092651367Q29.980641484832763,54.93618092651367,30.044741484832763,54.89978092651367Q30.108741484832763,54.86338092651367,30.168941484832764,54.820880926513674Q30.229141484832763,54.77838092651367,30.284841484832764,54.730180926513675Q30.340641484832762,54.681980926513674,30.391341484832765,54.628480926513674Q30.442041484832764,54.57508092651367,30.487341484832765,54.51688092651367Q30.532641484832762,54.45878092651367,30.571941484832763,54.396480926513675Q30.611241484832764,54.33408092651367,30.644341484832765,54.268280926513675Q30.677341484832763,54.20238092651367,30.703741484832765,54.13358092651367Q30.730241484832764,54.06478092651367,30.749741484832764,53.99378092651367Q34.290341484832766,41.13128092651367,45.93004148483276,36.70548092651367Q57.604541484832765,32.26648092651367,70.83024148483277,40.11548092651367Q70.91234148483277,40.16428092651367,71.00004148483276,40.20218092651368L71.00004148483276,57.99998092651367Q71.00004148483276,58.14728092651367,70.99284148483277,58.294380926513675Q70.98554148483277,58.44148092651367,70.97114148483277,58.58808092651367Q70.95674148483276,58.73468092651367,70.93514148483277,58.88038092651367Q70.91354148483276,59.02608092651367,70.88474148483276,59.17048092651367Q70.85604148483276,59.31498092651367,70.82024148483276,59.457880926513674Q70.78444148483277,59.60078092651367,70.74164148483277,59.74168092651367Q70.69894148483276,59.88268092651367,70.64934148483276,60.02128092651367Q70.59964148483276,60.15998092651367,70.54334148483277,60.296080926513675Q70.48694148483277,60.432180926513674,70.42394148483277,60.56528092651367Q70.36094148483276,60.698480926513675,70.29154148483276,60.828380926513674Q70.22214148483276,60.95828092651367,70.14644148483276,61.084580926513674Q70.07064148483276,61.210880926513674,69.98884148483276,61.33338092651367Q69.90704148483276,61.45588092651367,69.81924148483276,61.57418092651367Q69.73154148483276,61.692480926513674,69.63814148483276,61.80638092651367Q69.54464148483277,61.92018092651367,69.44574148483277,62.029380926513674Q69.34684148483277,62.13848092651367,69.24264148483276,62.242580926513675Q69.13854148483276,62.346780926513674,69.02944148483276,62.445680926513674Q68.92024148483276,62.544580926513675,68.80644148483276,62.63808092651367Q68.69254148483276,62.73148092651367,68.57424148483277,62.819180926513674Q68.45594148483276,62.90698092651367,68.33344148483276,62.98878092651367Q68.21094148483276,63.07058092651367,68.08464148483276,63.14638092651367Q67.95834148483277,63.22208092651367,67.82844148483277,63.29148092651367Q67.69854148483276,63.36098092651367,67.56534148483277,63.423880926513675Q67.43224148483276,63.48688092651367,67.29614148483276,63.543280926513674Q67.16004148483276,63.599580926513674,67.02134148483276,63.64928092651367Q66.88264148483276,63.698880926513674,66.74174148483277,63.74158092651367Q66.60074148483277,63.78438092651367,66.45794148483276,63.82018092651367Q66.31504148483276,63.85598092651367,66.17054148483277,63.884680926513674Q66.02614148483276,63.913380926513675,65.88044148483277,63.93508092651367Q65.73474148483277,63.95668092651367,65.58814148483276,63.97108092651367Q65.44154148483275,63.985480926513674,65.29444148483276,63.992780926513674Q65.14734148483276,63.99998092651367,65.00004148483276,63.99998092651367L13.000041484832764,63.99998092651367Q12.852751484832764,63.99998092651367,12.705631484832764,63.992780926513674Q12.558521484832763,63.985480926513674,12.411941484832763,63.97108092651367Q12.265361484832763,63.95668092651367,12.119661484832763,63.93508092651367Q11.973961484832763,63.913380926513675,11.829501484832765,63.884680926513674Q11.685041484832762,63.85598092651367,11.542161484832764,63.82018092651367Q11.399281484832763,63.78438092651367,11.258331484832762,63.74158092651367Q11.117381484832764,63.698880926513674,10.978701484832763,63.64928092651367Q10.840021484832764,63.599580926513674,10.703941484832765,63.543280926513674Q10.567861484832765,63.48688092651367,10.434711484832764,63.423880926513675Q10.301561484832764,63.36098092651367,10.171661484832764,63.29148092651367Q10.041761484832763,63.22208092651367,9.915421484832763,63.14638092651367Q9.789091484832763,63.07058092651367,9.666621484832763,62.98878092651367Q9.544151484832764,62.90698092651367,9.425841484832763,62.819180926513674Q9.307541484832765,62.73148092651367,9.193681484832764,62.63808092651367Q9.079821484832763,62.544580926513675,8.970691484832763,62.445680926513674Q8.861551484832763,62.346780926513674,8.757401484832764,62.242580926513675Q8.653251484832763,62.13848092651367,8.554331484832764,62.029380926513674Q8.455421484832764,61.92018092651367,8.361981484832764,61.80638092651367Q8.268541484832763,61.692480926513674,8.180791484832763,61.57418092651367Q8.093051484832763,61.45588092651367,8.011221484832763,61.33338092651367Q7.929391484832763,61.210880926513674,7.853671484832764,61.084580926513674Q7.7779414848327635,60.95828092651367,7.708511484832764,60.828380926513674Q7.639081484832763,60.698480926513675,7.576101484832764,60.56528092651367Q7.513131484832764,60.432180926513674,7.4567614848327635,60.296080926513675Q7.400401484832764,60.15998092651367,7.350781484832764,60.02128092651367Q7.301151484832763,59.88268092651367,7.258401484832763,59.74168092651367Q7.215641484832764,59.60078092651367,7.1798514848327635,59.457880926513674Q7.144061484832763,59.31498092651367,7.115331484832764,59.17048092651367Q7.086591484832764,59.02608092651367,7.064981484832764,58.88038092651367Q7.043371484832764,58.73468092651367,7.028931484832764,58.58808092651367Q7.014491484832764,58.44148092651367,7.0072714848327635,58.294380926513675Q7.000041484832764,58.14728092651367,7.000041484832764,57.99998092651367Z"
|
|
1563
|
+
/>
|
|
1564
|
+
</g>
|
|
1565
|
+
</g>
|
|
1566
|
+
</svg>
|
|
1567
|
+
`
|
|
1568
|
+
);
|
|
1569
|
+
iconBuilderExports.IconBuilder(
|
|
1570
|
+
"order-empty",
|
|
1571
|
+
(data) => `
|
|
1572
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 70 70">
|
|
1573
|
+
<defs>
|
|
1574
|
+
<clipPath><rect width="70" height="70" x="0" y="0" rx="0" /></clipPath>
|
|
1575
|
+
</defs>
|
|
1576
|
+
<g clip-path="url(#master_svg0_1_6828)">
|
|
1577
|
+
<g>
|
|
1578
|
+
<g>
|
|
1579
|
+
<path
|
|
1580
|
+
fill="${data.colorDesc[0]}"
|
|
1581
|
+
fill-opacity="1"
|
|
1582
|
+
d="M53.562049403381344,33.934721223754885C53.43764940338135,32.172721223754884,52.055249403381346,30.844301223754883,50.34594940338135,30.844301223754883L18.827749403381347,30.844301223754883C17.132259403381347,30.844301223754883,15.699349403381348,32.29193122375488,15.699349403381348,34.005171223754886C15.699349403381348,35.71809122375488,17.132259403381347,37.16539122375488,18.827749403381347,37.16539122375488L50.43544940338135,37.16539122375488C52.13154940338135,37.16539122375488,53.564449403381346,35.71809122375488,53.564449403381346,34.005171223754886L53.562049403381344,33.934721223754885Z"
|
|
1583
|
+
/>
|
|
1584
|
+
</g>
|
|
1585
|
+
<g>
|
|
1586
|
+
<path
|
|
1587
|
+
fill="${data.colorDesc[0]}"
|
|
1588
|
+
fill-opacity="1"
|
|
1589
|
+
d="M27.334229237670897,9.39679L42.0187092376709,9.39679C44.2485092376709,9.39679,46.1324092376709,7.24512,46.1324092376709,4.69827C46.1324092376709,2.1076,44.2467092376709,0,41.9290092376709,0L27.334229237670897,0C25.0164992376709,0,23.1311092376709,2.10752,23.1311092376709,4.69827C23.1311092376709,7.28902,25.0165892376709,9.39679,27.334229237670897,9.39679Z"
|
|
1590
|
+
/>
|
|
1591
|
+
</g>
|
|
1592
|
+
<g>
|
|
1593
|
+
<path
|
|
1594
|
+
fill="${data.colorDesc[0]}"
|
|
1595
|
+
fill-opacity="1"
|
|
1596
|
+
d="M50.43544940338135,19.085237503051758L18.827749403381347,19.085237503051758C17.132259403381347,19.085237503051758,15.699349403381348,20.532537503051756,15.699349403381348,22.246107503051757C15.699349403381348,23.959357503051756,17.132259403381347,25.406657503051758,18.827749403381347,25.406657503051758L50.43544940338135,25.406657503051758C52.13154940338135,25.406657503051758,53.564449403381346,23.959357503051756,53.564449403381346,22.246107503051757C53.56434940338135,20.532537503051756,52.131449403381346,19.085237503051758,50.43544940338135,19.085237503051758Z"
|
|
1597
|
+
/>
|
|
1598
|
+
</g>
|
|
1599
|
+
<g>
|
|
1600
|
+
<path
|
|
1601
|
+
fill="${data.colorDesc[0]}"
|
|
1602
|
+
fill-opacity="1"
|
|
1603
|
+
d="M50.34594940338135,43.59782409667969L18.827749403381347,43.59782409667969C17.132259403381347,43.59782409667969,15.699349403381348,45.045454096679684,15.699349403381348,46.75869409667969C15.699349403381348,48.47161409667969,17.132259403381347,49.918914096679686,18.827749403381347,49.918914096679686L50.43544940338135,49.918914096679686C52.13154940338135,49.918914096679686,53.564449403381346,48.47161409667969,53.564449403381346,46.75869409667969L53.562049403381344,46.68824409667969C53.43764940338135,44.92633409667969,52.05514940338135,43.59782409667969,50.34594940338135,43.59782409667969Z"
|
|
1604
|
+
/>
|
|
1605
|
+
</g>
|
|
1606
|
+
<g>
|
|
1607
|
+
<path
|
|
1608
|
+
fill="${data.colorDesc[0]}"
|
|
1609
|
+
fill-opacity="1"
|
|
1610
|
+
d="M64.75030000000001,4.860395980682373C63.0699,3.042334980682373,60.6587,2.081305980682373,57.7776,2.081305980682373L53.5692,2.081305980682373C51.8921,2.081305980682373,50.0824,3.186115980682373,50.0824,4.9703959806823725C50.0824,6.657005980682373,51.8094,8.312295980682373,53.5692,8.312295980682373L57.7776,8.312295980682373C59.7387,8.312295980682373,61.0061,9.592295980682373,61.0061,11.573625980682372L61.0061,60.507705980682374C61.0061,62.48900598068237,59.7386,63.76900598068237,57.7776,63.76900598068237L12.4706,63.76900598068237C10.43963,63.76900598068237,8.16793,62.374405980682376,8.16793,60.507705980682374L8.16793,11.573705980682373C8.16793,9.592375980682373,9.43511,8.312375980682372,11.39646,8.312375980682372L16.6792,8.312375980682372C18.2292,8.312375980682372,19.2706,6.969235980682373,19.2706,4.970475980682373C19.2706,3.161375980682373,18.3018,2.081388112482373,16.6792,2.081388112482373L11.39646,2.081388112482373C5.512560000000001,2.081388112482373,2,5.663835980682373,2,11.664135980682373L2,60.05540598068237C2,66.09640598068238,5.86401,70.00000598068237,11.8441,70.00000598068237L57.3296,70.00000598068237C63.678,70.00000598068237,67.174,66.46810598068237,67.174,60.05540598068237L67.174,11.664055980682374C67.174,8.928455980682372,66.3361,6.575785980682373,64.75030000000001,4.860395980682373Z"
|
|
1611
|
+
/>
|
|
1612
|
+
</g>
|
|
1613
|
+
</g>
|
|
1614
|
+
</g>
|
|
1615
|
+
</svg>
|
|
1616
|
+
`
|
|
1617
|
+
);
|
|
1618
|
+
iconBuilderExports.IconBuilder(
|
|
1619
|
+
"order-enter",
|
|
1620
|
+
(data) => `
|
|
1621
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 16 16">
|
|
1622
|
+
<defs>
|
|
1623
|
+
<clipPath><rect width="16" height="16" x="0" y="0" rx="0" /></clipPath>
|
|
1624
|
+
</defs>
|
|
1625
|
+
<g clip-path="url(#master_svg0_1_00794/1_4215)">
|
|
1626
|
+
<g>
|
|
1627
|
+
<rect
|
|
1628
|
+
width="10.666666626930237"
|
|
1629
|
+
height="12.000000596046448"
|
|
1630
|
+
x="2.67"
|
|
1631
|
+
y="2"
|
|
1632
|
+
fill="none"
|
|
1633
|
+
stroke="${data.colorDesc[0]}"
|
|
1634
|
+
stroke-opacity="1"
|
|
1635
|
+
stroke-width="1.3333333730697632"
|
|
1636
|
+
rx="0"
|
|
1637
|
+
/>
|
|
1638
|
+
</g>
|
|
1639
|
+
<g>
|
|
1640
|
+
<path
|
|
1641
|
+
fill="${data.colorDesc[0]}"
|
|
1642
|
+
fill-opacity="1"
|
|
1643
|
+
fill-rule="evenodd"
|
|
1644
|
+
d="M10.666581953125,6.0000410234375L5.333251953125,6.0000410234375L5.333251953125,4.6667070234375L10.666581953125,4.6667070234375L10.666581953125,6.0000410234375Z"
|
|
1645
|
+
/>
|
|
1646
|
+
</g>
|
|
1647
|
+
<g>
|
|
1648
|
+
<path
|
|
1649
|
+
fill="${data.colorDesc[0]}"
|
|
1650
|
+
fill-opacity="1"
|
|
1651
|
+
fill-rule="evenodd"
|
|
1652
|
+
d="M10.666581953125,8.666667L5.333251953125,8.666667L5.333251953125,7.333333L10.666581953125,7.333333L10.666581953125,8.666667Z"
|
|
1653
|
+
/>
|
|
1654
|
+
</g>
|
|
1655
|
+
<g>
|
|
1656
|
+
<path
|
|
1657
|
+
fill="${data.colorDesc[0]}"
|
|
1658
|
+
fill-opacity="1"
|
|
1659
|
+
fill-rule="evenodd"
|
|
1660
|
+
d="M9.333251953125,11.3332929765625L5.333251953125,11.3332929765625L5.333251953125,9.9999589765625L9.333251953125,9.9999589765625L9.333251953125,11.3332929765625Z"
|
|
1661
|
+
/>
|
|
1662
|
+
</g>
|
|
1663
|
+
</g>
|
|
1664
|
+
</svg>
|
|
1665
|
+
`
|
|
1666
|
+
);
|
|
1667
|
+
iconBuilderExports.IconBuilder(
|
|
1668
|
+
"product",
|
|
1669
|
+
(data) => `
|
|
1670
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 12 12">
|
|
1671
|
+
<g style="mix-blend-mode: passthrough">
|
|
1672
|
+
<g style="mix-blend-mode: passthrough">
|
|
1673
|
+
<g style="mix-blend-mode: passthrough">
|
|
1674
|
+
<g style="mix-blend-mode: passthrough">
|
|
1675
|
+
<path
|
|
1676
|
+
fill="${data.colorDesc[0]}"
|
|
1677
|
+
fill-opacity="1"
|
|
1678
|
+
fill-rule="evenodd"
|
|
1679
|
+
d="M2.16316,1.26412Q2.4502,1,2.84027,1L9.15973,1Q9.5498,1,9.83684,1.26412Q10.1239,1.52824,10.1563,1.91695L10.8229,9.91695Q10.8594,10.3542,10.5623,10.6771Q10.2652,11,9.8264,11L2.1736,11Q1.73482,11,1.43772,10.6771Q1.14061,10.3542,1.17705,9.91695L1.84372,1.91695Q1.87611,1.52824,2.16316,1.26412ZM9.15973,0L2.84027,0C1.80009,0,0.933556,0.797325,0.847174,1.83391L0.180508,9.83391C0.0833377,10.9999,1.00352,12,2.1736,12L9.8264,12C10.9965,12,11.9167,10.9999,11.8195,9.83391L11.1528,1.83391C11.0664,0.797325,10.1999,0,9.15973,0Z"
|
|
1680
|
+
/>
|
|
1681
|
+
</g>
|
|
1682
|
+
<g style="mix-blend-mode: passthrough">
|
|
1683
|
+
<path
|
|
1684
|
+
fill="${data.colorDesc[0]}"
|
|
1685
|
+
fill-opacity="1"
|
|
1686
|
+
d="M9.5,3Q9.5,4.44975,8.47487,5.47487Q7.44975,6.5,6,6.5Q4.55025,6.5,3.525126,5.47487Q2.5,4.44975,2.5,2.999999559137L3.5,2.999999487188Q3.5,4.03553,4.2322299999999995,4.7677700000000005Q4.96447,5.5,6,5.5Q7.03553,5.5,7.76777,4.7677700000000005Q8.5,4.03553,8.5,3L9.5,3ZM9.5,3Q9.5,3.0492457,9.49039,3.0975451Q9.48078,3.145845,9.46194,3.191342Q9.44309,3.236839,9.41573,3.277785Q9.38837,3.318731,9.35355,3.353553Q9.31873,3.388375,9.27778,3.415735Q9.23684,3.443094,9.19134,3.4619400000000002Q9.14584,3.480785,9.09755,3.490393Q9.04925,3.5,9,3.5Q8.95075,3.5,8.90245,3.490393Q8.85415,3.480785,8.80866,3.4619400000000002Q8.76316,3.443094,8.72221,3.415735Q8.68127,3.388375,8.64645,3.353553Q8.61162,3.318731,8.58426,3.277785Q8.55691,3.236839,8.53806,3.191342Q8.519210000000001,3.145845,8.50961,3.0975451Q8.5,3.0492457,8.5,3Q8.5,2.9507543,8.50961,2.9024549Q8.519210000000001,2.854155,8.53806,2.808658Q8.55691,2.763161,8.58426,2.722215Q8.61162,2.681269,8.64645,2.646447Q8.68127,2.611625,8.72221,2.584265Q8.76316,2.556906,8.80866,2.5380599999999998Q8.85415,2.519215,8.90245,2.509607Q8.95075,2.5,9,2.5Q9.04925,2.5,9.09755,2.509607Q9.14584,2.519215,9.19134,2.5380599999999998Q9.23684,2.556906,9.27778,2.584265Q9.31873,2.611625,9.35355,2.646447Q9.38837,2.681269,9.41573,2.722215Q9.44309,2.763161,9.46194,2.808658Q9.48078,2.854155,9.49039,2.9024549Q9.5,2.9507543,9.5,3ZM3.5,3Q3.5,3.0492457,3.490393,3.0975451Q3.480785,3.145845,3.4619400000000002,3.191342Q3.443094,3.236839,3.415735,3.277785Q3.388375,3.318731,3.353553,3.353553Q3.318731,3.388375,3.277785,3.415735Q3.236839,3.443094,3.191342,3.4619400000000002Q3.145845,3.480785,3.0975451,3.490393Q3.0492457,3.5,3,3.5Q2.9507543,3.5,2.9024549,3.490393Q2.854155,3.480785,2.808658,3.4619400000000002Q2.763161,3.443094,2.722215,3.415735Q2.681269,3.388375,2.646447,3.353553Q2.611625,3.318731,2.584265,3.277785Q2.556906,3.236839,2.5380599999999998,3.191342Q2.519215,3.145845,2.509607,3.0975451Q2.5,3.0492457,2.5,3Q2.5,2.9507543,2.509607,2.9024549Q2.519215,2.854155,2.5380599999999998,2.808658Q2.556906,2.763161,2.584265,2.722215Q2.611625,2.681269,2.646447,2.646447Q2.681269,2.611625,2.722215,2.584265Q2.763161,2.556906,2.808658,2.5380599999999998Q2.854155,2.519215,2.9024549,2.509607Q2.9507543,2.5,3,2.5Q3.0492457,2.5,3.0975451,2.509607Q3.145845,2.519215,3.191342,2.5380599999999998Q3.236839,2.556906,3.277785,2.584265Q3.318731,2.611625,3.353553,2.646447Q3.388375,2.681269,3.415735,2.722215Q3.443094,2.763161,3.4619400000000002,2.808658Q3.480785,2.854155,3.490393,2.9024549Q3.5,2.9507543,3.5,3Z"
|
|
1687
|
+
/>
|
|
1688
|
+
</g>
|
|
1689
|
+
</g>
|
|
1690
|
+
</g>
|
|
1691
|
+
</g>
|
|
1692
|
+
</svg>
|
|
1693
|
+
`
|
|
1694
|
+
);
|
|
1695
|
+
iconBuilderExports.IconBuilder(
|
|
1696
|
+
"search",
|
|
1697
|
+
(data) => `
|
|
1698
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 16 16">
|
|
1699
|
+
<g>
|
|
1700
|
+
<g>
|
|
1701
|
+
<g>
|
|
1702
|
+
<path
|
|
1703
|
+
fill="${data.colorDesc[0]}"
|
|
1704
|
+
fill-rule="evenodd"
|
|
1705
|
+
d="M11.5814,10.87433Q11.9223,10.47129,12.1875,10.01494Q12.4527,9.55858,12.6342,9.06293Q12.8157,8.56728,12.9078,8.04756Q13,7.52783,13,7Q13,6.85271,12.9928,6.70559Q12.9855,6.55848,12.9711,6.4119Q12.9567,6.26531,12.9351,6.11962Q12.9134,5.97392,12.8847,5.82946Q12.856,5.685,12.8202,5.54212Q12.7844,5.39924,12.7416,5.25829Q12.6989,5.11734,12.6493,4.97866Q12.5996,4.839980000000001,12.5433,4.7039Q12.4869,4.56782,12.4239,4.434670000000001Q12.361,4.30152,12.2915,4.17162Q12.2221,4.04172,12.1464,3.91538Q12.0706,3.78905,11.9888,3.66658Q11.907,3.54411,11.8192,3.4258Q11.7315,3.3075,11.6381,3.19364Q11.5446,3.07978,11.4457,2.97065Q11.3468,2.86151,11.2426,2.7573600000000003Q11.1385,2.65321,11.0294,2.55429Q10.92022,2.45538,10.80636,2.3619399999999997Q10.6925,2.2685,10.57419,2.1807499999999997Q10.45589,2.09301,10.33342,2.01118Q10.21095,1.929351,10.08462,1.853628Q9.95828,1.777905,9.82838,1.708472Q9.69848,1.63904,9.56533,1.5760640000000001Q9.43218,1.513089,9.2961,1.456723Q9.16002,1.400357,9.02134,1.350736Q8.88266,1.301114,8.741710000000001,1.2583579999999999Q8.600760000000001,1.215601,8.45788,1.179812Q8.315000000000001,1.144023,8.170539999999999,1.115288Q8.02608,1.0865531,7.88038,1.0649409Q7.73469,1.0433288,7.5881,1.0288916Q7.44152,1.0144545,7.29441,1.00722726Q7.14729,1,7,1Q6.85271,1,6.70559,1.00722726Q6.55848,1.0144545,6.4119,1.0288916Q6.26531,1.0433288,6.11962,1.0649409Q5.97392,1.0865531,5.82946,1.115288Q5.685,1.144023,5.54212,1.179812Q5.39924,1.215601,5.25829,1.2583579999999999Q5.11734,1.301114,4.97866,1.350736Q4.839980000000001,1.400357,4.7039,1.456723Q4.56782,1.513089,4.434670000000001,1.5760640000000001Q4.30152,1.63904,4.17162,1.708472Q4.04172,1.777905,3.91538,1.853628Q3.78905,1.929351,3.66658,2.01118Q3.54411,2.09301,3.4258,2.1807499999999997Q3.3075,2.2685,3.19364,2.3619399999999997Q3.07978,2.45538,2.97065,2.55429Q2.86151,2.65321,2.7573600000000003,2.7573600000000003Q2.65321,2.86151,2.55429,2.97065Q2.45538,3.07978,2.3619399999999997,3.19364Q2.2685,3.3075,2.1807499999999997,3.4258Q2.09301,3.54411,2.01118,3.66658Q1.929351,3.78905,1.853628,3.91538Q1.777905,4.04172,1.708472,4.17162Q1.63904,4.30152,1.5760640000000001,4.434670000000001Q1.513089,4.56782,1.456723,4.7039Q1.400357,4.839980000000001,1.350736,4.97866Q1.301114,5.11734,1.2583579999999999,5.25829Q1.215601,5.39924,1.179812,5.54212Q1.144023,5.685,1.115288,5.82946Q1.0865531,5.97392,1.0649409,6.11962Q1.0433288,6.26532,1.0288916,6.4119Q1.0144545,6.55848,1.00722726,6.70559Q1,6.85271,1,7Q1,7.14729,1.00722726,7.29441Q1.0144545,7.44152,1.0288916,7.5881Q1.0433288,7.73469,1.0649409,7.88038Q1.0865531,8.02608,1.115288,8.170539999999999Q1.144023,8.315000000000001,1.179812,8.45788Q1.215601,8.600760000000001,1.2583579999999999,8.741710000000001Q1.301114,8.88266,1.350736,9.02134Q1.400357,9.16002,1.456723,9.2961Q1.513089,9.43218,1.5760640000000001,9.56533Q1.63904,9.69848,1.708472,9.82838Q1.777905,9.95828,1.853628,10.08462Q1.929351,10.21095,2.01118,10.33342Q2.09301,10.45589,2.1807499999999997,10.5742Q2.2685,10.6925,2.3619399999999997,10.80636Q2.45538,10.92022,2.55429,11.0294Q2.65321,11.1385,2.7573600000000003,11.2426Q2.86151,11.3468,2.97065,11.4457Q3.07978,11.5446,3.19364,11.6381Q3.3075,11.7315,3.4258,11.8192Q3.54411,11.907,3.66658,11.9888Q3.78905,12.0706,3.91538,12.1464Q4.04172,12.2221,4.17162,12.2915Q4.30152,12.361,4.434670000000001,12.4239Q4.56782,12.4869,4.7039,12.5433Q4.839980000000001,12.5996,4.97866,12.6493Q5.11734,12.6989,5.25829,12.7416Q5.39924,12.7844,5.54212,12.8202Q5.685,12.856,5.82946,12.8847Q5.97392,12.9134,6.11962,12.9351Q6.26532,12.9567,6.4119,12.9711Q6.55848,12.9855,6.70559,12.9928Q6.85271,13,7,13Q7.52783,13,8.04756,12.9078Q8.56728,12.8157,9.06293,12.6342Q9.55858,12.4527,10.01494,12.1875Q10.47129,11.9223,10.87433,11.5814L13.4749,14.182Q13.5452,14.2523,13.6371,14.2904Q13.729,14.3284,13.8284,14.3284Q13.9279,14.3284,14.0198,14.2904Q14.1117,14.2523,14.182,14.182Q14.2523,14.1117,14.2904,14.0198Q14.3284,13.9279,14.3284,13.8284Q14.3284,13.729,14.2904,13.6371Q14.2523,13.5452,14.182,13.4749L11.5814,10.87433ZM7,2Q7.12274,2,7.24534,2.00602Q7.36793,2.01205,7.49009,2.02408Q7.61224,2.03611,7.73365,2.05412Q7.85507,2.07213,7.97545,2.09607Q8.095839999999999,2.1200200000000002,8.2149,2.14984Q8.33397,2.1796699999999998,8.451419999999999,2.2153Q8.56888,2.2509300000000003,8.68445,2.29228Q8.80002,2.3336300000000003,8.91342,2.3806000000000003Q9.02682,2.4275700000000002,9.13777,2.4800500000000003Q9.24873,2.53253,9.35698,2.59039Q9.46523,2.64825,9.57051,2.71136Q9.67579,2.77446,9.77785,2.84265Q9.87991,2.9108400000000003,9.9785,2.9839599999999997Q10.07708,3.05708,10.17197,3.13495Q10.26685,3.21281,10.35779,3.29524Q10.44874,3.37767,10.53553,3.46447Q10.62233,3.55126,10.70475,3.6422Q10.78718,3.73315,10.86505,3.82803Q10.94292,3.92291,11.016,4.0215Q11.0892,4.120089999999999,11.1573,4.22215Q11.2255,4.32421,11.2886,4.4294899999999995Q11.3517,4.53477,11.4096,4.64302Q11.4675,4.75127,11.5199,4.862220000000001Q11.5724,4.97318,11.6194,5.08658Q11.6664,5.19998,11.7077,5.31555Q11.7491,5.43112,11.7847,5.54858Q11.8203,5.66603,11.8502,5.7851Q11.88,5.90416,11.9039,6.02455Q11.9279,6.14493,11.9459,6.26635Q11.9639,6.38776,11.9759,6.50991Q11.988,6.63207,11.994,6.75466Q12,6.87726,12,7Q12,7.12274,11.994,7.24534Q11.988,7.36793,11.9759,7.49009Q11.9639,7.61224,11.9459,7.73365Q11.9279,7.85507,11.9039,7.97545Q11.88,8.095839999999999,11.8502,8.2149Q11.8203,8.33397,11.7847,8.451419999999999Q11.7491,8.56888,11.7077,8.68445Q11.6664,8.80002,11.6194,8.91342Q11.5724,9.02682,11.5199,9.13777Q11.4675,9.24873,11.4096,9.35698Q11.3517,9.46523,11.2886,9.57051Q11.2255,9.67579,11.1573,9.77785Q11.0892,9.87991,11.016,9.9785Q10.94292,10.07708,10.86505,10.17197Q10.78718,10.26685,10.70475,10.35779Q10.62233,10.44874,10.53553,10.53553Q10.44874,10.62233,10.35779,10.70475Q10.26685,10.78718,10.17197,10.86505Q10.07708,10.94292,9.9785,11.016Q9.87991,11.0892,9.77785,11.1573Q9.67579,11.2255,9.57051,11.2886Q9.46523,11.3517,9.35698,11.4096Q9.24873,11.4675,9.13777,11.5199Q9.02682,11.5724,8.91342,11.6194Q8.80002,11.6664,8.68445,11.7077Q8.56888,11.7491,8.451419999999999,11.7847Q8.333960000000001,11.8203,8.2149,11.8502Q8.095839999999999,11.88,7.97545,11.9039Q7.85507,11.9279,7.73365,11.9459Q7.61224,11.9639,7.49009,11.9759Q7.36793,11.988,7.24534,11.994Q7.12274,12,7,12Q6.87726,12,6.75466,11.994Q6.63207,11.988,6.50991,11.9759Q6.38776,11.9639,6.26635,11.9459Q6.14493,11.9279,6.02455,11.9039Q5.90416,11.88,5.7851,11.8502Q5.66603,11.8203,5.54858,11.7847Q5.43112,11.7491,5.31555,11.7077Q5.19998,11.6664,5.08658,11.6194Q4.97318,11.5724,4.862220000000001,11.5199Q4.75127,11.4675,4.64302,11.4096Q4.53477,11.3517,4.4294899999999995,11.2886Q4.32421,11.2255,4.22215,11.1573Q4.120089999999999,11.0892,4.0215,11.016Q3.92292,10.94292,3.82803,10.86505Q3.73315,10.78718,3.6422,10.70475Q3.55126,10.62233,3.46447,10.53553Q3.37767,10.44874,3.29524,10.35779Q3.21281,10.26685,3.13495,10.17197Q3.05708,10.07708,2.9839599999999997,9.9785Q2.9108400000000003,9.87991,2.84265,9.77785Q2.77446,9.67579,2.71136,9.57051Q2.64825,9.46523,2.59039,9.35698Q2.53253,9.24873,2.4800500000000003,9.13777Q2.4275700000000002,9.02682,2.3806000000000003,8.91342Q2.3336300000000003,8.80002,2.29228,8.68445Q2.2509300000000003,8.56888,2.2153,8.451419999999999Q2.1796699999999998,8.333960000000001,2.14984,8.2149Q2.1200200000000002,8.095839999999999,2.09607,7.97545Q2.07213,7.85507,2.05412,7.73365Q2.03611,7.61224,2.02408,7.49009Q2.01205,7.36793,2.00602,7.24534Q2,7.12274,2,7Q2,6.87726,2.00602,6.75466Q2.01205,6.63207,2.02408,6.50991Q2.03611,6.38776,2.05412,6.26635Q2.07213,6.14493,2.09607,6.02455Q2.1200200000000002,5.90416,2.14984,5.7851Q2.1796699999999998,5.66603,2.2153,5.54858Q2.2509300000000003,5.43112,2.29228,5.31555Q2.3336300000000003,5.19998,2.3806000000000003,5.08658Q2.4275700000000002,4.97318,2.4800500000000003,4.862220000000001Q2.53253,4.75127,2.59039,4.64302Q2.64825,4.53477,2.71136,4.4294899999999995Q2.77446,4.32421,2.84265,4.22215Q2.9108400000000003,4.120089999999999,2.9839599999999997,4.0215Q3.05708,3.92292,3.13495,3.82803Q3.21281,3.73315,3.29524,3.6422Q3.37767,3.55126,3.46447,3.46447Q3.55126,3.37767,3.6422,3.29524Q3.73315,3.21281,3.82803,3.13495Q3.92291,3.05708,4.0215,2.9839599999999997Q4.120089999999999,2.9108400000000003,4.22215,2.84265Q4.32421,2.77446,4.4294899999999995,2.71136Q4.53477,2.64825,4.64302,2.59039Q4.75127,2.53253,4.862220000000001,2.4800500000000003Q4.97318,2.4275700000000002,5.08658,2.3806000000000003Q5.19998,2.3336300000000003,5.31555,2.29228Q5.43112,2.2509300000000003,5.54858,2.2153Q5.66603,2.1796699999999998,5.7851,2.14984Q5.90416,2.1200200000000002,6.02455,2.09607Q6.14493,2.07213,6.26635,2.05412Q6.38776,2.03611,6.50991,2.02408Q6.63207,2.01205,6.75466,2.00602Q6.87726,2,7,2Z"
|
|
1706
|
+
/>
|
|
1707
|
+
</g>
|
|
1708
|
+
</g>
|
|
1709
|
+
</g>
|
|
1710
|
+
</svg>
|
|
1711
|
+
`
|
|
1712
|
+
);
|
|
1713
|
+
iconBuilderExports.IconBuilder(
|
|
1714
|
+
"search-empty",
|
|
1715
|
+
(data) => `
|
|
1716
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 70 70">
|
|
1717
|
+
<defs>
|
|
1718
|
+
<clipPath><rect width="70" height="70" x="0" y="0" rx="0" /></clipPath>
|
|
1719
|
+
</defs>
|
|
1720
|
+
<g clip-path="url(#master_svg0_1_05361)">
|
|
1721
|
+
<g>
|
|
1722
|
+
<path
|
|
1723
|
+
fill="${data.colorDesc[0]}"
|
|
1724
|
+
fill-opacity="1"
|
|
1725
|
+
d="M34.99823296875,13.078125C34.11226296875,13.078125,33.39404296875,13.796345,33.39404296875,14.682315C33.39404296875,15.568285,34.11226296875,16.286505,34.99823296875,16.286505C42.63643296875,16.286505,48.82844296875,22.478485,48.82844296875,30.116725C48.82964296875,31.001825,49.54754296875,31.718625,50.43264296875,31.718625C51.31774296875,31.718625,52.03554296875,31.001825,52.03684296875,30.116725C52.041142968749995,20.707835,44.41144296875,13.078125,34.99823296875,13.078125Z"
|
|
1726
|
+
/>
|
|
1727
|
+
</g>
|
|
1728
|
+
<g>
|
|
1729
|
+
<path
|
|
1730
|
+
fill="${data.colorDesc[0]}"
|
|
1731
|
+
fill-opacity="1"
|
|
1732
|
+
d="M68.995683984375,65.5144796875L57.182683984375,53.7013796875C73.022783984375,35.3662796875,63.929183984375,6.7689296875,40.408483984375,0.9499226875C16.887683984375,-4.8690803125,-4.490606015625,16.1894796875,0.973315984375,39.7952796875C6.437253984375,63.4009796875,34.894283984375,72.9244796875,53.466083984375,57.3624796875L65.306883984375,69.2032796875C66.320183984375,70.2521796875,67.996583984375,70.2665796875,69.027783984375,69.2353796875C70.058983984375,68.2040796875,70.044583984375,66.5277796875,68.995683984375,65.5144796875ZM32.551983984375,59.3597796875C17.711083984375,59.3267796875,5.707163984375,47.2683796875,5.741543984375,32.4273796875C5.775923984375,17.5863796875,17.835483984375,5.5836996875,32.676483984375,5.6195196875C47.517483984375,5.6553396875,59.518983984375,17.7160796875,59.481783984375,32.5570796875C59.444483984375,47.3939796875,47.388883984375,59.3926796875,32.551983984375,59.3597796875Z"
|
|
1733
|
+
/>
|
|
1734
|
+
</g>
|
|
1735
|
+
</g>
|
|
1736
|
+
</svg>
|
|
1737
|
+
`
|
|
1738
|
+
);
|
|
1739
|
+
iconBuilderExports.IconBuilder(
|
|
1740
|
+
"video-placeholder",
|
|
1741
|
+
(data) => `
|
|
1742
|
+
<svg width="${data.size}" height="${data.size}" fill="none" viewBox="0 0 80 80">
|
|
1743
|
+
<defs>
|
|
1744
|
+
<clipPath><rect width="80" height="80" x="0" y="0" rx="0" /></clipPath>
|
|
1745
|
+
</defs>
|
|
1746
|
+
<g clip-path="url(#master_svg0_6_23777)">
|
|
1747
|
+
<g>
|
|
1748
|
+
<path
|
|
1749
|
+
fill="${data.colorDesc[0]}"
|
|
1750
|
+
fill-opacity="0.10000000149011612"
|
|
1751
|
+
fill-rule="evenodd"
|
|
1752
|
+
d="M5,22L5,58Q5,61.7279,7.6360399999999995,64.364Q10.272079999999999,67,14,67L66,67Q69.7279,67,72.364,64.364Q75,61.7279,75,58L75,22Q75,18.27208,72.364,15.63604Q69.7279,13,66,13L14,13Q10.272079999999999,13,7.6360399999999995,15.63604Q5,18.27208,5,22ZM20.1631,30.5754L8,30.5754L8,22Q8,21.852710000000002,8.00723,21.70559Q8.01445,21.55848,8.02889,21.4119Q8.043330000000001,21.26532,8.06494,21.119619999999998Q8.086549999999999,20.97392,8.11529,20.82946Q8.14402,20.685,8.17981,20.54212Q8.2156,20.39924,8.25836,20.25829Q8.30111,20.11734,8.35074,19.978659999999998Q8.40036,19.83998,8.45672,19.7039Q8.51309,19.56782,8.57606,19.43467Q8.63904,19.30152,8.70847,19.17162Q8.77791,19.041719999999998,8.853629999999999,18.91538Q8.92935,18.78905,9.01118,18.66658Q9.09301,18.54411,9.18075,18.4258Q9.2685,18.3075,9.36194,18.193640000000002Q9.45538,18.07978,9.55429,17.97065Q9.65321,17.86151,9.75736,17.75736Q9.861509999999999,17.65321,9.97065,17.55429Q10.07978,17.455379999999998,10.19364,17.36194Q10.307500000000001,17.2685,10.425799999999999,17.18075Q10.54411,17.09301,10.66658,17.01118Q10.78905,16.92935,10.915379999999999,16.85363Q11.04172,16.7779,11.17162,16.70847Q11.30152,16.63904,11.43467,16.57606Q11.567820000000001,16.51309,11.7039,16.45672Q11.83998,16.40036,11.97866,16.350740000000002Q12.11734,16.30111,12.258289999999999,16.25836Q12.399239999999999,16.2156,12.54212,16.17981Q12.684999999999999,16.14402,12.829460000000001,16.11529Q12.97392,16.08655,13.11962,16.06494Q13.26532,16.04333,13.4119,16.02889Q13.55848,16.01445,13.70559,16.00723Q13.85271,16,14,16L20.1631,16L20.1631,30.5754ZM23.1631,16L56.334,16L56.334,64L23.1631,64L23.1631,16ZM72,22L72,29.7717L59.334,29.7717L59.334,16L66,16Q66.1473,16,66.2944,16.00723Q66.44149999999999,16.01445,66.5881,16.02889Q66.7347,16.04333,66.88040000000001,16.06494Q67.0261,16.08655,67.1705,16.11529Q67.315,16.14402,67.4579,16.17981Q67.6007,16.2156,67.74170000000001,16.25836Q67.8826,16.30111,68.0213,16.350740000000002Q68.16,16.40036,68.2961,16.45672Q68.4322,16.51309,68.56530000000001,16.57606Q68.6985,16.63904,68.8284,16.70847Q68.95830000000001,16.77791,69.0846,16.85363Q69.2109,16.92935,69.3334,17.01118Q69.4559,17.09301,69.5742,17.18075Q69.6925,17.2685,69.8064,17.36194Q69.9202,17.455379999999998,70.0294,17.55429Q70.1385,17.65321,70.2426,17.75736Q70.3468,17.86151,70.4457,17.97065Q70.5446,18.07978,70.6381,18.193640000000002Q70.7315,18.3075,70.8192,18.4258Q70.907,18.54411,70.9888,18.66658Q71.0706,18.78905,71.1464,18.91538Q71.2221,19.041719999999998,71.2915,19.17162Q71.3609,19.30152,71.4239,19.43467Q71.4869,19.56782,71.5433,19.7039Q71.5996,19.83998,71.6493,19.978659999999998Q71.6989,20.11734,71.7416,20.25829Q71.7844,20.39924,71.8202,20.54212Q71.856,20.685,71.8847,20.82946Q71.9135,20.97392,71.9351,21.119619999999998Q71.9567,21.26532,71.9711,21.4119Q71.9855,21.55848,71.9928,21.70559Q72,21.852710000000002,72,22ZM35.75,47.3612Q38,48.6603,40.25,47.3612L46.25,43.897099999999995Q48.5,42.5981,48.5,40Q48.5,37.4019,46.25,36.102900000000005L40.25,32.6388Q38,31.3397,35.75,32.6388Q33.5,33.937799999999996,33.5,36.5359L33.5,43.4641Q33.5,46.0622,35.75,47.3612ZM72,32.771699999999996L72,45.8474L59.334,45.8474L59.334,32.771699999999996L72,32.771699999999996ZM20.1631,46.6511L8,46.6511L8,33.5754L20.1631,33.5754L20.1631,46.6511ZM44.75,41.299L38.75,44.7631Q38,45.1962,37.25,44.7631Q36.5,44.3301,36.5,43.4641L36.5,36.5359Q36.5,35.6699,37.25,35.2369Q38,34.803799999999995,38.75,35.2369L44.75,38.701Q45.5,39.134,45.5,40Q45.5,40.866,44.75,41.299ZM66,64L59.334,64L59.334,48.8474L72,48.8474L72,58Q72,58.1473,71.9928,58.2944Q71.9855,58.4415,71.9711,58.5881Q71.9567,58.7347,71.9351,58.8804Q71.9135,59.0261,71.8847,59.1705Q71.856,59.315,71.8202,59.4579Q71.7844,59.6008,71.7416,59.7417Q71.6989,59.8827,71.6493,60.0213Q71.5996,60.16,71.5433,60.2961Q71.4869,60.4322,71.4239,60.5653Q71.3609,60.6985,71.2915,60.8284Q71.2221,60.9583,71.1464,61.0846Q71.0706,61.2109,70.9888,61.3334Q70.907,61.4559,70.8192,61.5742Q70.7315,61.6925,70.6381,61.8064Q70.5446,61.9202,70.4457,62.0294Q70.3468,62.1385,70.2426,62.2426Q70.1385,62.3468,70.0294,62.4457Q69.9202,62.5446,69.8064,62.6381Q69.6925,62.7315,69.5742,62.8192Q69.4559,62.907,69.3334,62.9888Q69.2109,63.0706,69.0846,63.1464Q68.95830000000001,63.2221,68.8284,63.2915Q68.6985,63.361,68.56530000000001,63.4239Q68.4322,63.4869,68.2961,63.5433Q68.16,63.5996,68.0213,63.6493Q67.8826,63.6989,67.74170000000001,63.7416Q67.6007,63.7844,67.4579,63.8202Q67.315,63.856,67.1705,63.8847Q67.0261,63.9134,66.88040000000001,63.9351Q66.7347,63.9567,66.5881,63.9711Q66.44149999999999,63.9855,66.2944,63.9928Q66.1473,64,66,64ZM20.1631,49.6511L20.1631,64L14,64Q13.85271,64,13.70559,63.9928Q13.55848,63.9855,13.4119,63.9711Q13.26532,63.9567,13.11962,63.9351Q12.97392,63.9134,12.829460000000001,63.8847Q12.684999999999999,63.856,12.54212,63.8202Q12.399239999999999,63.7844,12.258289999999999,63.7416Q12.11734,63.6989,11.97866,63.6493Q11.83998,63.5996,11.7039,63.5433Q11.567820000000001,63.4869,11.43467,63.4239Q11.30152,63.361,11.17162,63.2915Q11.04172,63.2221,10.915379999999999,63.1464Q10.78905,63.0706,10.66658,62.9888Q10.54411,62.907,10.425799999999999,62.8192Q10.307500000000001,62.7315,10.19364,62.6381Q10.07978,62.5446,9.97065,62.4457Q9.861509999999999,62.3468,9.75736,62.2426Q9.65321,62.1385,9.55429,62.0294Q9.45538,61.9202,9.36194,61.8064Q9.2685,61.6925,9.18075,61.5742Q9.09301,61.4559,9.01118,61.3334Q8.92935,61.2109,8.853629999999999,61.0846Q8.777899999999999,60.9583,8.70847,60.8284Q8.63904,60.6985,8.57606,60.5653Q8.51309,60.4322,8.45672,60.2961Q8.40036,60.16,8.35074,60.0213Q8.30111,59.8827,8.25836,59.7417Q8.2156,59.6008,8.17981,59.4579Q8.14402,59.315,8.11529,59.1705Q8.086549999999999,59.0261,8.06494,58.8804Q8.043330000000001,58.7347,8.02889,58.5881Q8.01445,58.4415,8.00723,58.2944Q8,58.1473,8,58L8,49.6511L20.1631,49.6511Z"
|
|
1753
|
+
/>
|
|
1754
|
+
</g>
|
|
1755
|
+
</g>
|
|
1756
|
+
</svg>
|
|
1757
|
+
`
|
|
1758
|
+
);
|
|
1759
|
+
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
1760
|
+
__name: "product-title",
|
|
1761
|
+
props: {
|
|
1762
|
+
title: PropUtils.string.def(""),
|
|
1763
|
+
useExpand: PropUtils.bool.def(false),
|
|
1764
|
+
useEllipsis: PropUtils.bool.def(false)
|
|
1765
|
+
},
|
|
1766
|
+
setup(__props) {
|
|
1767
|
+
const props = __props;
|
|
1768
|
+
const titleRef = ref();
|
|
1769
|
+
const moreArrowVisible = ref(false);
|
|
1770
|
+
function handleExpand() {
|
|
1771
|
+
var _a;
|
|
1772
|
+
moreArrowVisible.value = false;
|
|
1773
|
+
(_a = titleRef.value) == null ? void 0 : _a.classList.add("plv-product-c-item__title--expanded");
|
|
1774
|
+
}
|
|
1775
|
+
function isTitleOverflowing() {
|
|
1776
|
+
const titleEl = titleRef.value;
|
|
1777
|
+
if (!titleEl) return false;
|
|
1778
|
+
const clone = titleEl.cloneNode(true);
|
|
1779
|
+
const computedStyle = window.getComputedStyle(titleEl);
|
|
1780
|
+
clone.style.font = computedStyle.font;
|
|
1781
|
+
clone.style.lineHeight = computedStyle.lineHeight;
|
|
1782
|
+
clone.style.display = "block";
|
|
1783
|
+
clone.style.width = titleEl.clientWidth + "px";
|
|
1784
|
+
clone.style.visibility = "hidden";
|
|
1785
|
+
clone.style.position = "absolute";
|
|
1786
|
+
clone.style.whiteSpace = "normal";
|
|
1787
|
+
document.body.appendChild(clone);
|
|
1788
|
+
const isOverflowing = clone.scrollHeight > titleEl.clientHeight + 1;
|
|
1789
|
+
document.body.removeChild(clone);
|
|
1790
|
+
return isOverflowing;
|
|
1791
|
+
}
|
|
1792
|
+
function checkTitleOverflow() {
|
|
1793
|
+
moreArrowVisible.value = isTitleOverflowing();
|
|
1794
|
+
}
|
|
1795
|
+
watch(
|
|
1796
|
+
() => props.title,
|
|
1797
|
+
() => {
|
|
1798
|
+
if (titleRef.value) {
|
|
1799
|
+
titleRef.value.classList.remove("plv-product-c-item__title--expanded");
|
|
1800
|
+
}
|
|
1801
|
+
nextTick(() => {
|
|
1802
|
+
checkTitleOverflow();
|
|
1803
|
+
});
|
|
1804
|
+
}
|
|
1805
|
+
);
|
|
1806
|
+
onMounted(() => {
|
|
1807
|
+
checkTitleOverflow();
|
|
1808
|
+
});
|
|
1809
|
+
return { __sfc: true, props, titleRef, moreArrowVisible, handleExpand, isTitleOverflowing, checkTitleOverflow, ProductIconArrowDown };
|
|
1810
|
+
}
|
|
1811
|
+
});
|
|
1812
|
+
var _sfc_render$4 = function render2() {
|
|
1813
|
+
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
1814
|
+
return _c("div", { staticClass: "plv-product-c-item__title-container" }, [_c("div", { ref: "titleRef", staticClass: "plv-product-c-item__title", class: {
|
|
1815
|
+
"plv-product-c-item__title--single": _vm.useEllipsis
|
|
1816
|
+
} }, [_vm._v(" " + _vm._s(_vm.title) + " ")]), _vm.useExpand && _setup.moreArrowVisible ? _c("button", { staticClass: "plv-product-c-item__title-more", on: { "click": _setup.handleExpand } }, [_c(_setup.ProductIconArrowDown, { staticClass: "plv-product-c-item__title-more-icon" })], 1) : _vm._e()]);
|
|
1817
|
+
};
|
|
1818
|
+
var _sfc_staticRenderFns$4 = [];
|
|
1819
|
+
var __component__$4 = /* @__PURE__ */ normalizeComponent(
|
|
1820
|
+
_sfc_main$4,
|
|
1821
|
+
_sfc_render$4,
|
|
1822
|
+
_sfc_staticRenderFns$4
|
|
1823
|
+
);
|
|
1824
|
+
const ProductTitle = __component__$4.exports;
|
|
1825
|
+
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
1826
|
+
__name: "product-feature-tag",
|
|
1827
|
+
props: {
|
|
1828
|
+
tag: PropUtils.string.def(""),
|
|
1829
|
+
maxWidth: PropUtils.number.def(88)
|
|
1830
|
+
},
|
|
1831
|
+
setup(__props) {
|
|
1832
|
+
const props = __props;
|
|
1833
|
+
const containerStyle = computed(() => ({
|
|
1834
|
+
maxWidth: `${props.maxWidth}px`
|
|
1835
|
+
}));
|
|
1836
|
+
return { __sfc: true, props, containerStyle };
|
|
1837
|
+
}
|
|
1838
|
+
});
|
|
1839
|
+
var _sfc_render$3 = function render3() {
|
|
1840
|
+
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
1841
|
+
return _c("div", { staticClass: "plv-product-c-item__tag-container", style: _setup.containerStyle, attrs: { "title": _vm.tag } }, [_vm.tag ? _c("span", { staticClass: "plv-product-c-item__tag" }, [_vm._v(_vm._s(_vm.tag))]) : _vm._e()]);
|
|
1842
|
+
};
|
|
1843
|
+
var _sfc_staticRenderFns$3 = [];
|
|
1844
|
+
var __component__$3 = /* @__PURE__ */ normalizeComponent(
|
|
1845
|
+
_sfc_main$3,
|
|
1846
|
+
_sfc_render$3,
|
|
1847
|
+
_sfc_staticRenderFns$3
|
|
1848
|
+
);
|
|
1849
|
+
const ProductFeatureTag = __component__$3.exports;
|
|
1850
|
+
const productEvents = {
|
|
1851
|
+
/**
|
|
1852
|
+
* 打开商品详情弹层
|
|
1853
|
+
*/
|
|
1854
|
+
OpenProductDetailPopup: "openProductDetailPopup",
|
|
1855
|
+
/**
|
|
1856
|
+
* 打开 iframe 链接弹层
|
|
1857
|
+
*/
|
|
1858
|
+
OpenProductIframeLinkPopup: "openProductIframeLinkPopup"
|
|
1859
|
+
};
|
|
1860
|
+
const productProps = () => ({
|
|
1861
|
+
/** 商品 SDK 实例 */
|
|
1862
|
+
productTarget: PropUtils.object().isRequired,
|
|
1863
|
+
/** 商品配置 */
|
|
1864
|
+
productConfig: PropUtils.object().def({})
|
|
1865
|
+
});
|
|
1866
|
+
function getProductTargetExport(productTarget) {
|
|
1867
|
+
return {
|
|
1868
|
+
ProductType: productTarget.ProductType,
|
|
1869
|
+
ProductLinkType: productTarget.ProductLinkType,
|
|
1870
|
+
ProductLinkJumpWay: productTarget.ProductLinkJumpWay,
|
|
1871
|
+
ProductBuyType: productTarget.ProductBuyType,
|
|
1872
|
+
ProductStatus: productTarget.ProductStatus,
|
|
1873
|
+
ProductPriceType: productTarget.ProductPriceType,
|
|
1874
|
+
ProductExplainStatus: productTarget.ProductExplainStatus,
|
|
1875
|
+
ProductMediaType: productTarget.ProductMediaType,
|
|
1876
|
+
ProductDeliveryType: productTarget.ProductDeliveryType,
|
|
1877
|
+
ProductEvents: productTarget.ProductEvents
|
|
1878
|
+
};
|
|
1879
|
+
}
|
|
1880
|
+
const PRODUCT_PROVIDE_KEY = Symbol("PRODUCT_PROVIDE_KEY");
|
|
1881
|
+
const useProductInject = () => {
|
|
1882
|
+
const data = inject(PRODUCT_PROVIDE_KEY);
|
|
1883
|
+
const productTarget = data.getProductTarget();
|
|
1884
|
+
return __spreadValues({
|
|
1885
|
+
productTarget,
|
|
1886
|
+
productConfig: data.productConfig
|
|
1887
|
+
}, getProductTargetExport(productTarget));
|
|
1888
|
+
};
|
|
1889
|
+
const useProductStock = (options) => {
|
|
1890
|
+
const { product } = options;
|
|
1891
|
+
let ProductType;
|
|
1892
|
+
let ProductBuyType;
|
|
1893
|
+
if (options.entranceProps) {
|
|
1894
|
+
const result = getProductTargetExport(options.entranceProps.productTarget);
|
|
1895
|
+
ProductType = result.ProductType;
|
|
1896
|
+
ProductBuyType = result.ProductBuyType;
|
|
1897
|
+
} else {
|
|
1898
|
+
const result = useProductInject();
|
|
1899
|
+
ProductType = result.ProductType;
|
|
1900
|
+
ProductBuyType = result.ProductBuyType;
|
|
1901
|
+
}
|
|
1902
|
+
function getStock(target) {
|
|
1903
|
+
if (!ProductType || !ProductBuyType) {
|
|
1904
|
+
return {
|
|
1905
|
+
enabled: false,
|
|
1906
|
+
stock: 0
|
|
1907
|
+
};
|
|
1908
|
+
}
|
|
1909
|
+
if ((target == null ? void 0 : target.productType) === ProductType.Normal && target.buyType === ProductBuyType.DirectBuy && (target == null ? void 0 : target.stockEnabled)) {
|
|
1910
|
+
return {
|
|
1911
|
+
enabled: true,
|
|
1912
|
+
stock: target.stock
|
|
1913
|
+
};
|
|
1914
|
+
}
|
|
1915
|
+
return {
|
|
1916
|
+
enabled: false,
|
|
1917
|
+
stock: 0
|
|
1918
|
+
};
|
|
1919
|
+
}
|
|
1920
|
+
const stock = computed(() => {
|
|
1921
|
+
let target;
|
|
1922
|
+
if (typeof product === "function") {
|
|
1923
|
+
target = product();
|
|
1924
|
+
} else {
|
|
1925
|
+
target = unref(product);
|
|
1926
|
+
}
|
|
1927
|
+
return getStock(target);
|
|
1928
|
+
});
|
|
1929
|
+
const isSoldOut = computed(() => {
|
|
1930
|
+
return stock.value.enabled && stock.value.stock <= 0;
|
|
1931
|
+
});
|
|
1932
|
+
return {
|
|
1933
|
+
stock,
|
|
1934
|
+
isSoldOut
|
|
1935
|
+
};
|
|
1936
|
+
};
|
|
1937
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
1938
|
+
__name: "product-price",
|
|
1939
|
+
props: {
|
|
1940
|
+
product: PropUtils.object()
|
|
1941
|
+
},
|
|
1942
|
+
setup(__props) {
|
|
1943
|
+
const props = __props;
|
|
1944
|
+
const { $t } = useI18n();
|
|
1945
|
+
const { ProductType, ProductPriceType } = useProductInject();
|
|
1946
|
+
const isFreeProduct = computed(() => {
|
|
1947
|
+
if (!props.product || props.product.productType !== ProductType.Normal) return false;
|
|
1948
|
+
if (!props.product.realPrice) return true;
|
|
1949
|
+
return false;
|
|
1950
|
+
});
|
|
1951
|
+
const hiddenPriceMarks = computed(() => {
|
|
1952
|
+
const { product } = props;
|
|
1953
|
+
if (!product || product.productType !== ProductType.Normal) return "";
|
|
1954
|
+
if (!product.realPrice) return "??";
|
|
1955
|
+
const integerPart = String(product.realPrice).split(".")[0];
|
|
1956
|
+
const repeatTimes = Math.min(
|
|
1957
|
+
integerPart.length,
|
|
1958
|
+
3
|
|
1959
|
+
/** 由于空间所限,最多显示 3 个 */
|
|
1960
|
+
);
|
|
1961
|
+
return "?".repeat(repeatTimes);
|
|
1962
|
+
});
|
|
1963
|
+
const displayPrice = computed(() => {
|
|
1964
|
+
if (!props.product || props.product.productType !== ProductType.Normal) return;
|
|
1965
|
+
if (isFreeProduct.value) return $t("product.price.free");
|
|
1966
|
+
return props.product.realPrice;
|
|
1967
|
+
});
|
|
1968
|
+
return { __sfc: true, props, $t, ProductType, ProductPriceType, isFreeProduct, hiddenPriceMarks, displayPrice };
|
|
1969
|
+
}
|
|
1970
|
+
});
|
|
1971
|
+
var _sfc_render$2 = function render4() {
|
|
1972
|
+
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
1973
|
+
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();
|
|
1974
|
+
};
|
|
1975
|
+
var _sfc_staticRenderFns$2 = [];
|
|
1976
|
+
var __component__$2 = /* @__PURE__ */ normalizeComponent(
|
|
1977
|
+
_sfc_main$2,
|
|
1978
|
+
_sfc_render$2,
|
|
1979
|
+
_sfc_staticRenderFns$2
|
|
1980
|
+
);
|
|
1981
|
+
const ProductPrice = __component__$2.exports;
|
|
1982
|
+
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
1983
|
+
function hasOwnProp(r2, n2) {
|
|
1984
|
+
return hasOwnProperty.call(r2, n2);
|
|
1985
|
+
}
|
|
1986
|
+
function assignProps(r2, ...n2) {
|
|
1987
|
+
if (null == r2) throw new TypeError("Cannot convert undefined or null to object");
|
|
1988
|
+
for (let o2 = 0; o2 < n2.length; o2++) {
|
|
1989
|
+
const t2 = n2[o2];
|
|
1990
|
+
if (null != t2) for (const n3 in t2) "__proto__" !== n3 && hasOwnProp(t2, n3) && (r2[n3] = t2[n3]);
|
|
1991
|
+
}
|
|
1992
|
+
return r2;
|
|
1993
|
+
}
|
|
1994
|
+
function addToResult(n2, o2, e, t2) {
|
|
1995
|
+
if (null == e && (e = ""), "" !== e || !t2.ignoreEmpty) {
|
|
1996
|
+
if ("function" == typeof t2.encode) {
|
|
1997
|
+
o2 = t2.encode(o2);
|
|
1998
|
+
e = -1 !== ["boolean", "string", "number"].indexOf(typeof e) ? t2.encode(String(e)) : "";
|
|
1999
|
+
}
|
|
2000
|
+
n2.push(o2 + "=" + e);
|
|
2001
|
+
}
|
|
2002
|
+
}
|
|
2003
|
+
function handleMultiValues(n2, o2, e, t2) {
|
|
2004
|
+
e.forEach((e2) => {
|
|
2005
|
+
addToResult(n2, o2, e2, t2);
|
|
2006
|
+
});
|
|
2007
|
+
}
|
|
2008
|
+
function stringify(n2, o2) {
|
|
2009
|
+
const e = assignProps({ encode: encodeURIComponent }, o2), t2 = [];
|
|
2010
|
+
let i2, r2;
|
|
2011
|
+
for (i2 in n2) hasOwnProp(n2, i2) && (r2 = n2[i2], Array.isArray(r2) ? handleMultiValues(t2, i2, r2, e) : addToResult(t2, i2, r2, e));
|
|
2012
|
+
return t2.join("&");
|
|
2013
|
+
}
|
|
2014
|
+
function splitURL(e) {
|
|
2015
|
+
const t2 = { leftContext: "" };
|
|
2016
|
+
let n2 = e.indexOf("#");
|
|
2017
|
+
return -1 !== n2 && (t2.hash = e.slice(n2 + 1), e = e.slice(0, n2)), n2 = e.indexOf("?"), -1 !== n2 && (t2.search = e.slice(n2 + 1), e = e.slice(0, n2)), t2.leftContext = e, t2;
|
|
2018
|
+
}
|
|
2019
|
+
function joinURL(e) {
|
|
2020
|
+
let t2 = e.leftContext;
|
|
2021
|
+
return null != e.search && (t2 += "?" + e.search), null != e.hash && (t2 += "#" + e.hash), t2;
|
|
2022
|
+
}
|
|
2023
|
+
function concat(i2, r2, t2) {
|
|
2024
|
+
if (i2 = String(i2), null == r2) return i2;
|
|
2025
|
+
if (!(r2 = "string" == typeof r2 ? r2.replace(/^[?&]/, "") : stringify(r2, t2))) return i2;
|
|
2026
|
+
const n2 = splitURL(i2);
|
|
2027
|
+
let e = n2.search || "";
|
|
2028
|
+
return e && "&" !== e.slice(-1) && (e += "&"), e += r2, n2.search = e, joinURL(n2);
|
|
2029
|
+
}
|
|
2030
|
+
const useTrackEvent = (iarCore) => {
|
|
2031
|
+
const { injectData } = useGlobalInject();
|
|
2032
|
+
function trackEvent(data) {
|
|
2033
|
+
if (injectData.trackEventCallback) {
|
|
2034
|
+
injectData.trackEventCallback(data);
|
|
2035
|
+
return;
|
|
2036
|
+
}
|
|
2037
|
+
iarCore.trackEvent(data);
|
|
2038
|
+
}
|
|
2039
|
+
return {
|
|
2040
|
+
trackEvent
|
|
2041
|
+
};
|
|
2042
|
+
};
|
|
2043
|
+
const htmlChars = ['"', "'", "&", "<", ">"], htmlEntities = [""", "'", "&", "<", ">"], charsToEntities = /* @__PURE__ */ Object.create(null), entitiesToChars = /* @__PURE__ */ Object.create(null);
|
|
2044
|
+
htmlChars.forEach((n2, e) => {
|
|
2045
|
+
charsToEntities[n2] = htmlEntities[e], entitiesToChars[htmlEntities[e]] = n2;
|
|
2046
|
+
});
|
|
2047
|
+
const reHTMLChars = new RegExp("[" + htmlChars.join("") + "]", "g");
|
|
2048
|
+
function escapeHTML(n2) {
|
|
2049
|
+
return null == n2 ? n2 : String(n2).replace(reHTMLChars, (n3) => charsToEntities[n3]);
|
|
2050
|
+
}
|
|
2051
|
+
function randomStr(n2, e) {
|
|
2052
|
+
if (!(n2 |= 0) || n2 < 0) throw new Error('"length" must be a number greater than 0');
|
|
2053
|
+
let t2 = "";
|
|
2054
|
+
do {
|
|
2055
|
+
t2 += Math.random().toString(36).substr(2);
|
|
2056
|
+
} while (t2.length < n2);
|
|
2057
|
+
return t2 = t2.substr(0, n2), t2;
|
|
2058
|
+
}
|
|
2059
|
+
const useWeixinButton = (hookOptions = {}) => {
|
|
2060
|
+
const { injectData } = useGlobalInject();
|
|
2061
|
+
const isHighWeixinVersion = weixinVersion.gte("7.0.12");
|
|
2062
|
+
const isWxMiniProgramWebview = ref(false);
|
|
2063
|
+
const supportWxOpenLaunchWeapp = computed(() => {
|
|
2064
|
+
return isWeixin && isHighWeixinVersion && isMobile;
|
|
2065
|
+
});
|
|
2066
|
+
function supportWxMiniProgramNavigateTo() {
|
|
2067
|
+
return __async(this, null, function* () {
|
|
2068
|
+
var _a;
|
|
2069
|
+
if (!isWeixin || !injectData.getWeixinSdk) {
|
|
2070
|
+
return false;
|
|
2071
|
+
}
|
|
2072
|
+
const wx = yield injectData.getWeixinSdk();
|
|
2073
|
+
if ((_a = wx == null ? void 0 : wx.miniProgram) == null ? void 0 : _a.getEnv) {
|
|
2074
|
+
return new Promise((resolve) => {
|
|
2075
|
+
var _a2;
|
|
2076
|
+
(_a2 = wx.miniProgram) == null ? void 0 : _a2.getEnv((res) => {
|
|
2077
|
+
resolve((res == null ? void 0 : res.miniprogram) === true);
|
|
2078
|
+
});
|
|
2079
|
+
});
|
|
2080
|
+
}
|
|
2081
|
+
return false;
|
|
2082
|
+
});
|
|
2083
|
+
}
|
|
2084
|
+
function checkWxMiniProgramWebview() {
|
|
2085
|
+
return __async(this, null, function* () {
|
|
2086
|
+
const check = yield supportWxMiniProgramNavigateTo();
|
|
2087
|
+
isWxMiniProgramWebview.value = check;
|
|
2088
|
+
});
|
|
2089
|
+
}
|
|
2090
|
+
function toWxMiniProgram(url) {
|
|
2091
|
+
return __async(this, null, function* () {
|
|
2092
|
+
var _a;
|
|
2093
|
+
if (!isWeixin || !injectData.getWeixinSdk) {
|
|
2094
|
+
return;
|
|
2095
|
+
}
|
|
2096
|
+
const wx = yield injectData.getWeixinSdk();
|
|
2097
|
+
(_a = wx == null ? void 0 : wx.miniProgram) == null ? void 0 : _a.navigateTo({
|
|
2098
|
+
url
|
|
2099
|
+
});
|
|
2100
|
+
return;
|
|
2101
|
+
});
|
|
2102
|
+
}
|
|
2103
|
+
onMounted(() => {
|
|
2104
|
+
checkWxMiniProgramWebview();
|
|
2105
|
+
});
|
|
2106
|
+
const weixinBtnRef = ref();
|
|
2107
|
+
const buttonOptions = computed(() => {
|
|
2108
|
+
var _a;
|
|
2109
|
+
return (_a = hookOptions.getButtonOptions) == null ? void 0 : _a.call(hookOptions);
|
|
2110
|
+
});
|
|
2111
|
+
function createWxMiniProgramButton() {
|
|
2112
|
+
if (!weixinBtnRef.value || !supportWxOpenLaunchWeapp.value) {
|
|
2113
|
+
return;
|
|
2114
|
+
}
|
|
2115
|
+
const options = buttonOptions.value;
|
|
2116
|
+
if (!options) {
|
|
2117
|
+
return;
|
|
2118
|
+
}
|
|
2119
|
+
const { wxMiniprogramOriginalId, wxMiniprogramLink, classKey } = options;
|
|
2120
|
+
const btnElem = weixinBtnRef.value;
|
|
2121
|
+
const width = btnElem.clientWidth;
|
|
2122
|
+
const height = btnElem.clientHeight;
|
|
2123
|
+
const id = "wx-open-launch-weapp-" + randomStr(8);
|
|
2124
|
+
const htmlText = `
|
|
2125
|
+
<wx-open-launch-weapp
|
|
2126
|
+
id="${id}"
|
|
2127
|
+
username="${escapeHTML(wxMiniprogramOriginalId)}"
|
|
2128
|
+
path="${wxMiniprogramLink}"
|
|
2129
|
+
>
|
|
2130
|
+
<script type="text/wxtag-template">
|
|
2131
|
+
<style>.plv-iar-${classKey}-wx-buy-btn {width: ${width}px;height: ${height}px;}</style>
|
|
2132
|
+
<div class="plv-iar-${classKey}-wx-buy-btn"></div>
|
|
2133
|
+
<\/script>
|
|
2134
|
+
</wx-open-launch-weapp>
|
|
2135
|
+
`;
|
|
2136
|
+
btnElem.innerHTML = htmlText;
|
|
2137
|
+
setTimeout(() => {
|
|
2138
|
+
const launchElem = document.querySelector(`#${id}`);
|
|
2139
|
+
launchElem == null ? void 0 : launchElem.addEventListener("launch", () => {
|
|
2140
|
+
if (hookOptions.launchCallback) {
|
|
2141
|
+
hookOptions.launchCallback();
|
|
2142
|
+
}
|
|
2143
|
+
});
|
|
2144
|
+
launchElem == null ? void 0 : launchElem.addEventListener("error", (e) => {
|
|
2145
|
+
const error = e;
|
|
2146
|
+
console.error("Launch error", error.detail);
|
|
2147
|
+
});
|
|
2148
|
+
}, 10);
|
|
2149
|
+
}
|
|
2150
|
+
watch(
|
|
2151
|
+
() => [weixinBtnRef.value, supportWxOpenLaunchWeapp.value, buttonOptions.value],
|
|
2152
|
+
() => {
|
|
2153
|
+
createWxMiniProgramButton();
|
|
2154
|
+
},
|
|
2155
|
+
{
|
|
2156
|
+
immediate: true
|
|
2157
|
+
}
|
|
2158
|
+
);
|
|
2159
|
+
return {
|
|
2160
|
+
isHighWeixinVersion,
|
|
2161
|
+
isWxMiniProgramWebview,
|
|
2162
|
+
supportWxOpenLaunchWeapp,
|
|
2163
|
+
supportWxMiniProgramNavigateTo,
|
|
2164
|
+
toWxMiniProgram,
|
|
2165
|
+
weixinBtnRef,
|
|
2166
|
+
createWxMiniProgramButton
|
|
2167
|
+
};
|
|
2168
|
+
};
|
|
2169
|
+
const useAppNative = () => {
|
|
2170
|
+
function getNativeToPointMallFn() {
|
|
2171
|
+
var _a, _b, _c, _d;
|
|
2172
|
+
if (isAndroid) {
|
|
2173
|
+
return (_a = window.AndroidNative) == null ? void 0 : _a.toPointMall;
|
|
2174
|
+
} else if (isIOS) {
|
|
2175
|
+
return (_d = (_c = (_b = window.webkit) == null ? void 0 : _b.messageHandlers) == null ? void 0 : _c.gotoPointsMall) == null ? void 0 : _d.postMessage;
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
function supportNativeToPointMall() {
|
|
2179
|
+
return !!getNativeToPointMallFn();
|
|
2180
|
+
}
|
|
2181
|
+
const supportAppNative = computed(() => {
|
|
2182
|
+
return supportNativeToPointMall();
|
|
2183
|
+
});
|
|
2184
|
+
function toNativeLink(options) {
|
|
2185
|
+
const { androidLink, iosLink, otherLink } = options;
|
|
2186
|
+
const nativePointMallFn = getNativeToPointMallFn();
|
|
2187
|
+
if (nativePointMallFn) {
|
|
2188
|
+
let url = isAndroid ? androidLink : iosLink;
|
|
2189
|
+
const pltBackUri = encodeURIComponent(location.href);
|
|
2190
|
+
url = concat(url, {
|
|
2191
|
+
plt_back_uri: pltBackUri
|
|
2192
|
+
});
|
|
2193
|
+
const paramsStr = JSON.stringify({
|
|
2194
|
+
url
|
|
2195
|
+
});
|
|
2196
|
+
nativePointMallFn(paramsStr);
|
|
2197
|
+
return;
|
|
2198
|
+
}
|
|
2199
|
+
window.open(otherLink, "_blank", "noopener=yes");
|
|
2200
|
+
}
|
|
2201
|
+
return {
|
|
2202
|
+
getNativeToPointMallFn,
|
|
2203
|
+
supportNativeToPointMall,
|
|
2204
|
+
supportAppNative,
|
|
2205
|
+
toNativeLink
|
|
2206
|
+
};
|
|
2207
|
+
};
|
|
2208
|
+
const usePolyvWebview = () => {
|
|
2209
|
+
const { injectData } = useGlobalInject();
|
|
2210
|
+
const isPlvWebview = ref(false);
|
|
2211
|
+
const supportPlvWebview = computed(() => {
|
|
2212
|
+
return isPlvWebview.value;
|
|
2213
|
+
});
|
|
2214
|
+
function getPlvWebviewBridge() {
|
|
2215
|
+
return __async(this, null, function* () {
|
|
2216
|
+
if (injectData.getPlvWebviewBridge) {
|
|
2217
|
+
return yield injectData.getPlvWebviewBridge();
|
|
2218
|
+
}
|
|
2219
|
+
});
|
|
2220
|
+
}
|
|
2221
|
+
function toPlvWebviewBridge(options) {
|
|
2222
|
+
return __async(this, null, function* () {
|
|
2223
|
+
if (!supportPlvWebview.value) {
|
|
2224
|
+
return;
|
|
2225
|
+
}
|
|
2226
|
+
let plvWebviewDataSize = {
|
|
2227
|
+
width: 90,
|
|
2228
|
+
height: 160
|
|
2229
|
+
};
|
|
2230
|
+
if (injectData.getPlvWebviewSmallWindowSize) {
|
|
2231
|
+
plvWebviewDataSize = injectData.getPlvWebviewSmallWindowSize();
|
|
2232
|
+
}
|
|
2233
|
+
const webviewBridge = yield getPlvWebviewBridge();
|
|
2234
|
+
if (!webviewBridge) {
|
|
2235
|
+
return;
|
|
2236
|
+
}
|
|
2237
|
+
webviewBridge.sendData("clickProduct", {
|
|
2238
|
+
width: plvWebviewDataSize.width,
|
|
2239
|
+
height: plvWebviewDataSize.height,
|
|
2240
|
+
newPage: true,
|
|
2241
|
+
link: options.link,
|
|
2242
|
+
data: options.data
|
|
2243
|
+
});
|
|
2244
|
+
});
|
|
2245
|
+
}
|
|
2246
|
+
onMounted(() => {
|
|
2247
|
+
if (injectData.isPlvWebview) {
|
|
2248
|
+
isPlvWebview.value = injectData.isPlvWebview();
|
|
2249
|
+
}
|
|
2250
|
+
});
|
|
2251
|
+
return {
|
|
2252
|
+
isPlvWebview,
|
|
2253
|
+
supportPlvWebview,
|
|
2254
|
+
getPlvWebviewBridge,
|
|
2255
|
+
toPlvWebviewBridge
|
|
2256
|
+
};
|
|
2257
|
+
};
|
|
2258
|
+
const productButtonProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
2259
|
+
/**
|
|
2260
|
+
* 商品数据
|
|
2261
|
+
*/
|
|
2262
|
+
productData: PropUtils.object().isRequired,
|
|
2263
|
+
disabled: PropUtils.bool.def(false)
|
|
2264
|
+
});
|
|
2265
|
+
const productButtonEmits = () => ({
|
|
2266
|
+
/** 直接购买 */
|
|
2267
|
+
"direct-buy": emitFunc()
|
|
2268
|
+
});
|
|
2269
|
+
const useProductButton = (options) => {
|
|
2270
|
+
const { props, emit } = options;
|
|
2271
|
+
const { isSoldOut } = useProductStock({
|
|
2272
|
+
product: () => props.productData
|
|
2273
|
+
});
|
|
2274
|
+
const { getEmitter } = useGlobalInject();
|
|
2275
|
+
const { $t } = useI18n();
|
|
2276
|
+
const productConfig = computed(() => {
|
|
2277
|
+
return props.productConfig;
|
|
2278
|
+
});
|
|
2279
|
+
const { isWxMiniProgramWebview, supportWxOpenLaunchWeapp, weixinBtnRef, toWxMiniProgram } = useWeixinButton({
|
|
2280
|
+
getButtonOptions: () => {
|
|
2281
|
+
const productData = props.productData;
|
|
2282
|
+
return {
|
|
2283
|
+
wxMiniprogramOriginalId: productData.wxMiniprogramOriginalId,
|
|
2284
|
+
wxMiniprogramLink: formatProductLink(productData.wxMiniprogramLink),
|
|
2285
|
+
classKey: "product"
|
|
2286
|
+
};
|
|
2287
|
+
},
|
|
2288
|
+
launchCallback: () => sendClickEvent()
|
|
2289
|
+
});
|
|
2290
|
+
const { supportAppNative, toNativeLink } = useAppNative();
|
|
2291
|
+
const { supportPlvWebview, toPlvWebviewBridge } = usePolyvWebview();
|
|
2292
|
+
const { trackEvent } = useTrackEvent(props.productTarget.iarCore);
|
|
2293
|
+
const { ProductBuyType, ProductType, ProductLinkType, ProductLinkJumpWay } = getProductTargetExport(props.productTarget);
|
|
2294
|
+
const isDirectBuy = computed(() => {
|
|
2295
|
+
return props.productData.productType === ProductType.Normal && props.productData.buyType === ProductBuyType.DirectBuy;
|
|
2296
|
+
});
|
|
2297
|
+
const isPreviewMode = computed(() => {
|
|
2298
|
+
var _a;
|
|
2299
|
+
return (_a = productConfig.value.isPreviewMode) != null ? _a : false;
|
|
2300
|
+
});
|
|
2301
|
+
const isButtonDisabled = computed(() => {
|
|
2302
|
+
const productData = props.productData;
|
|
2303
|
+
if (productConfig.value.customProductDisabled) {
|
|
2304
|
+
const isDisabled = productConfig.value.customProductDisabled(productData);
|
|
2305
|
+
return !!isDisabled;
|
|
2306
|
+
}
|
|
2307
|
+
if (props.disabled) return true;
|
|
2308
|
+
if (isPreviewMode.value) {
|
|
2309
|
+
return false;
|
|
2310
|
+
}
|
|
2311
|
+
if (isSoldOut.value) {
|
|
2312
|
+
return true;
|
|
2313
|
+
}
|
|
2314
|
+
if (productData.productType === ProductType.Normal && !productData.priceVisible && productData.realPrice > 0) {
|
|
2315
|
+
return true;
|
|
2316
|
+
}
|
|
2317
|
+
if (isDirectBuy.value) {
|
|
2318
|
+
return false;
|
|
2319
|
+
}
|
|
2320
|
+
if (productData.linkType === ProductLinkType.Normal) {
|
|
2321
|
+
return !productData.link;
|
|
2322
|
+
}
|
|
2323
|
+
if (productData.linkType === ProductLinkType.MultiPlatform) {
|
|
2324
|
+
return isMultiPlatformDisabled.value;
|
|
2325
|
+
}
|
|
2326
|
+
if (productData.linkType === ProductLinkType.Native) {
|
|
2327
|
+
if (supportAppNative.value) {
|
|
2328
|
+
return !productData.androidLink && !productData.iosLink;
|
|
2329
|
+
}
|
|
2330
|
+
return !productData.otherLink;
|
|
2331
|
+
}
|
|
2332
|
+
return false;
|
|
2333
|
+
});
|
|
2334
|
+
const isMultiPlatformDisabled = computed(() => {
|
|
2335
|
+
const { pcLink, mobileLink, wxMiniprogramLink, mobileAppLink } = props.productData;
|
|
2336
|
+
if (isWeixinButton.value) {
|
|
2337
|
+
return false;
|
|
2338
|
+
}
|
|
2339
|
+
if (isWxMiniProgramWebview.value && wxMiniprogramLink) {
|
|
2340
|
+
return false;
|
|
2341
|
+
}
|
|
2342
|
+
if (isMobile) {
|
|
2343
|
+
return !mobileLink && !mobileAppLink;
|
|
2344
|
+
}
|
|
2345
|
+
if (!isMobile) {
|
|
2346
|
+
return !pcLink;
|
|
2347
|
+
}
|
|
2348
|
+
return true;
|
|
2349
|
+
});
|
|
2350
|
+
const isWeixinButton = computed(() => {
|
|
2351
|
+
if (typeof productConfig.value.customClickButtonHandler === "function") {
|
|
2352
|
+
return false;
|
|
2353
|
+
}
|
|
2354
|
+
if (isDirectBuy.value) {
|
|
2355
|
+
return false;
|
|
2356
|
+
}
|
|
2357
|
+
if (isWxMiniProgramWebview.value) {
|
|
2358
|
+
return false;
|
|
2359
|
+
}
|
|
2360
|
+
return supportWxOpenLaunchWeapp.value && !!props.productData.wxMiniprogramOriginalId;
|
|
2361
|
+
});
|
|
2362
|
+
const buttonText = computed(() => {
|
|
2363
|
+
let defaultText = $t("product.button.normal");
|
|
2364
|
+
switch (props.productData.productType) {
|
|
2365
|
+
case ProductType.Normal:
|
|
2366
|
+
defaultText = $t("product.button.normal");
|
|
2367
|
+
break;
|
|
2368
|
+
case ProductType.Finance:
|
|
2369
|
+
defaultText = $t("product.button.finance");
|
|
2370
|
+
break;
|
|
2371
|
+
case ProductType.Position:
|
|
2372
|
+
defaultText = $t("product.button.position");
|
|
2373
|
+
break;
|
|
2374
|
+
}
|
|
2375
|
+
return props.productData.buttonText || defaultText;
|
|
2376
|
+
});
|
|
2377
|
+
function formatProductLink(url, params = {}) {
|
|
2378
|
+
let urlParams = __spreadValues({}, params);
|
|
2379
|
+
if (productConfig.value.getLinkParams) {
|
|
2380
|
+
const res = productConfig.value.getLinkParams(url);
|
|
2381
|
+
urlParams = Object.assign({}, urlParams, res);
|
|
2382
|
+
}
|
|
2383
|
+
return concat(url, urlParams);
|
|
2384
|
+
}
|
|
2385
|
+
function onClickLinkBtn() {
|
|
2386
|
+
const productData = props.productData;
|
|
2387
|
+
const { linkType } = productData;
|
|
2388
|
+
sendClickEvent();
|
|
2389
|
+
if (productConfig.value.customClickButtonHandler) {
|
|
2390
|
+
productConfig.value.customClickButtonHandler(productData);
|
|
2391
|
+
return;
|
|
2392
|
+
}
|
|
2393
|
+
if (isDirectBuy.value) {
|
|
2394
|
+
toDirectBuy();
|
|
2395
|
+
return;
|
|
2396
|
+
}
|
|
2397
|
+
if (productData.linkType === ProductLinkType.Native) {
|
|
2398
|
+
toNativeLink({
|
|
2399
|
+
androidLink: formatProductLink(productData.androidLink),
|
|
2400
|
+
iosLink: formatProductLink(productData.iosLink),
|
|
2401
|
+
otherLink: formatProductLink(productData.otherLink)
|
|
2402
|
+
});
|
|
2403
|
+
return;
|
|
2404
|
+
}
|
|
2405
|
+
if (supportPlvWebview.value) {
|
|
2406
|
+
let linkTo = "";
|
|
2407
|
+
const { link, mobileLink, mobileAppLink, wxMiniprogramOriginalId, wxMiniprogramLink } = productData;
|
|
2408
|
+
switch (productData.linkType) {
|
|
2409
|
+
case ProductLinkType.Normal:
|
|
2410
|
+
linkTo = link;
|
|
2411
|
+
break;
|
|
2412
|
+
case ProductLinkType.MultiPlatform:
|
|
2413
|
+
linkTo = mobileAppLink || mobileLink;
|
|
2414
|
+
break;
|
|
2415
|
+
}
|
|
2416
|
+
let otherData = null;
|
|
2417
|
+
if (productData.linkType !== ProductLinkType.Normal) {
|
|
2418
|
+
otherData = {
|
|
2419
|
+
mobileLink: formatProductLink(mobileLink),
|
|
2420
|
+
wxMiniprogramOriginalId,
|
|
2421
|
+
wxMiniprogramLink: formatProductLink(wxMiniprogramLink),
|
|
2422
|
+
mobileAppLink: formatProductLink(mobileAppLink)
|
|
2423
|
+
};
|
|
2424
|
+
}
|
|
2425
|
+
toPlvWebviewBridge({
|
|
2426
|
+
link: formatProductLink(linkTo),
|
|
2427
|
+
data: otherData
|
|
2428
|
+
});
|
|
2429
|
+
return;
|
|
2430
|
+
}
|
|
2431
|
+
if (linkType === ProductLinkType.Normal) {
|
|
2432
|
+
const { link, jumpWay } = productData;
|
|
2433
|
+
openLink(formatProductLink(link), jumpWay);
|
|
2434
|
+
return;
|
|
2435
|
+
}
|
|
2436
|
+
if (linkType === ProductLinkType.MultiPlatform) {
|
|
2437
|
+
const { wxMiniprogramLink, mobileLink, pcLink } = productData;
|
|
2438
|
+
if (isWxMiniProgramWebview.value && wxMiniprogramLink) {
|
|
2439
|
+
toWxMiniProgram(formatProductLink(wxMiniprogramLink));
|
|
2440
|
+
return;
|
|
2441
|
+
}
|
|
2442
|
+
if (isMobile) {
|
|
2443
|
+
openLink(formatProductLink(mobileLink), ProductLinkJumpWay.NewWindow);
|
|
2444
|
+
return;
|
|
2445
|
+
}
|
|
2446
|
+
if (!isMobile) {
|
|
2447
|
+
openLink(formatProductLink(pcLink), ProductLinkJumpWay.NewWindow);
|
|
2448
|
+
return;
|
|
2449
|
+
}
|
|
2450
|
+
}
|
|
2451
|
+
}
|
|
2452
|
+
function openLink(url, jumpWay) {
|
|
2453
|
+
switch (jumpWay) {
|
|
2454
|
+
case ProductLinkJumpWay.NewWindow:
|
|
2455
|
+
window.open(url, "_blank", "noopener=yes");
|
|
2456
|
+
break;
|
|
2457
|
+
case ProductLinkJumpWay.CurrentWindow:
|
|
2458
|
+
window.location.href = url;
|
|
2459
|
+
break;
|
|
2460
|
+
case ProductLinkJumpWay.PopUp:
|
|
2461
|
+
getEmitter().emit(productEvents.OpenProductIframeLinkPopup, url);
|
|
2462
|
+
break;
|
|
2463
|
+
default:
|
|
2464
|
+
window.open(url, "_blank", "noopener=yes");
|
|
2465
|
+
}
|
|
2466
|
+
}
|
|
2467
|
+
function toDirectBuy() {
|
|
2468
|
+
emit("direct-buy", props.productData);
|
|
2469
|
+
}
|
|
2470
|
+
function sendClickEvent() {
|
|
2471
|
+
return __async(this, null, function* () {
|
|
2472
|
+
const productData = props.productData;
|
|
2473
|
+
const data = yield props.productTarget.getCurrentPushingProduct();
|
|
2474
|
+
trackEvent({
|
|
2475
|
+
event_id: "product_click_button",
|
|
2476
|
+
event_type: "click",
|
|
2477
|
+
spec_attrs: {
|
|
2478
|
+
buyType: productData.productType === ProductType.Normal ? productData.buyType : "",
|
|
2479
|
+
deliveryType: productData.productType === ProductType.Normal ? productData.deliveryType : "",
|
|
2480
|
+
name: productData.name,
|
|
2481
|
+
productId: productData.productId,
|
|
2482
|
+
productType: productData.productType,
|
|
2483
|
+
productPushRule: data == null ? void 0 : data.pushRule
|
|
2484
|
+
}
|
|
2485
|
+
});
|
|
2486
|
+
props.productTarget.sendProductClickEvent({
|
|
2487
|
+
productId: productData.productId,
|
|
2488
|
+
name: productData.name,
|
|
2489
|
+
productType: productData.productType
|
|
2490
|
+
});
|
|
2491
|
+
});
|
|
2492
|
+
}
|
|
2493
|
+
return {
|
|
2494
|
+
isButtonDisabled,
|
|
2495
|
+
isWeixinButton,
|
|
2496
|
+
isPreviewMode,
|
|
2497
|
+
buttonText,
|
|
2498
|
+
weixinBtnRef,
|
|
2499
|
+
formatProductLink,
|
|
2500
|
+
onClickLinkBtn
|
|
2501
|
+
};
|
|
2502
|
+
};
|
|
2503
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
2504
|
+
__name: "product-button",
|
|
2505
|
+
props: productButtonProps(),
|
|
2506
|
+
emits: productButtonEmits(),
|
|
2507
|
+
setup(__props, { emit }) {
|
|
2508
|
+
const props = __props;
|
|
2509
|
+
const {
|
|
2510
|
+
isButtonDisabled,
|
|
2511
|
+
buttonText,
|
|
2512
|
+
isWeixinButton,
|
|
2513
|
+
isPreviewMode,
|
|
2514
|
+
weixinBtnRef,
|
|
2515
|
+
onClickLinkBtn
|
|
2516
|
+
} = useProductButton({ props, emit });
|
|
2517
|
+
return { __sfc: true, props, emit, isButtonDisabled, buttonText, isWeixinButton, isPreviewMode, weixinBtnRef, onClickLinkBtn };
|
|
2518
|
+
}
|
|
2519
|
+
});
|
|
2520
|
+
var _sfc_render$1 = function render5() {
|
|
2521
|
+
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
2522
|
+
return _c("div", { staticClass: "plv-product-button", class: {
|
|
2523
|
+
"is-disabled": _setup.isButtonDisabled
|
|
2524
|
+
} }, [_c("div", { staticClass: "plv-product-button__render" }, [_vm._t("default", null, { "buttonText": _setup.buttonText, "disabled": _setup.isButtonDisabled })], 2), !_setup.isButtonDisabled && !_setup.isPreviewMode ? [_setup.isWeixinButton ? _c("div", { key: "weixin-btn", ref: "weixinBtnRef", staticClass: "plv-product-button__inner plv-product-button__inner--wx" }) : _c("div", { key: "link-btn", staticClass: "plv-product-button__inner plv-product-button__inner--link", on: { "click": function($event) {
|
|
2525
|
+
$event.stopPropagation();
|
|
2526
|
+
return _setup.onClickLinkBtn.apply(null, arguments);
|
|
2527
|
+
} } })] : _vm._e()], 2);
|
|
2528
|
+
};
|
|
2529
|
+
var _sfc_staticRenderFns$1 = [];
|
|
2530
|
+
var __component__$1 = /* @__PURE__ */ normalizeComponent(
|
|
2531
|
+
_sfc_main$1,
|
|
2532
|
+
_sfc_render$1,
|
|
2533
|
+
_sfc_staticRenderFns$1
|
|
2534
|
+
);
|
|
2535
|
+
const ProductButton = __component__$1.exports;
|
|
2536
|
+
var popperManager;
|
|
2537
|
+
var hasRequiredPopperManager;
|
|
2538
|
+
function requirePopperManager() {
|
|
2539
|
+
if (hasRequiredPopperManager) return popperManager;
|
|
2540
|
+
hasRequiredPopperManager = 1;
|
|
2541
|
+
popperManager = function(e) {
|
|
2542
|
+
var n2 = {};
|
|
2543
|
+
function t2(r2) {
|
|
2544
|
+
if (n2[r2]) return n2[r2].exports;
|
|
2545
|
+
var o2 = n2[r2] = { i: r2, l: false, exports: {} };
|
|
2546
|
+
return e[r2].call(o2.exports, o2, o2.exports, t2), o2.l = true, o2.exports;
|
|
2547
|
+
}
|
|
2548
|
+
return t2.m = e, t2.c = n2, t2.d = function(e2, n3, r2) {
|
|
2549
|
+
t2.o(e2, n3) || Object.defineProperty(e2, n3, { enumerable: true, get: r2 });
|
|
2550
|
+
}, t2.r = function(e2) {
|
|
2551
|
+
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e2, "__esModule", { value: true });
|
|
2552
|
+
}, t2.t = function(e2, n3) {
|
|
2553
|
+
if (1 & n3 && (e2 = t2(e2)), 8 & n3) return e2;
|
|
2554
|
+
if (4 & n3 && "object" == typeof e2 && e2 && e2.__esModule) return e2;
|
|
2555
|
+
var r2 = /* @__PURE__ */ Object.create(null);
|
|
2556
|
+
if (t2.r(r2), Object.defineProperty(r2, "default", { enumerable: true, value: e2 }), 2 & n3 && "string" != typeof e2) for (var o2 in e2) t2.d(r2, o2, function(n4) {
|
|
2557
|
+
return e2[n4];
|
|
2558
|
+
}.bind(null, o2));
|
|
2559
|
+
return r2;
|
|
2560
|
+
}, t2.n = function(e2) {
|
|
2561
|
+
var n3 = e2 && e2.__esModule ? function() {
|
|
2562
|
+
return e2.default;
|
|
2563
|
+
} : function() {
|
|
2564
|
+
return e2;
|
|
2565
|
+
};
|
|
2566
|
+
return t2.d(n3, "a", n3), n3;
|
|
2567
|
+
}, t2.o = function(e2, n3) {
|
|
2568
|
+
return Object.prototype.hasOwnProperty.call(e2, n3);
|
|
2569
|
+
}, t2.p = "", t2(t2.s = 14);
|
|
2570
|
+
}({ 14: function(e, n2, t2) {
|
|
2571
|
+
t2.r(n2);
|
|
2572
|
+
t2(41);
|
|
2573
|
+
var r2 = "@@polyvAdminUIzIndex", o2 = { ctx: r2, openPopper: function(e2) {
|
|
2574
|
+
o2.zIndex++, e2.style.zIndex = o2.zIndex;
|
|
2575
|
+
}, install: function(e2) {
|
|
2576
|
+
var n3 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, t3 = n3.defaultZIndex, o3 = void 0 === t3 ? 3e3 : t3;
|
|
2577
|
+
window[r2] = o3;
|
|
2578
|
+
} };
|
|
2579
|
+
Object.defineProperty(o2, "zIndex", { configurable: true, get: function() {
|
|
2580
|
+
return window[r2] || (window[r2] = 3e3), window[r2];
|
|
2581
|
+
}, set: function(e2) {
|
|
2582
|
+
window[r2] = e2;
|
|
2583
|
+
} }), n2.default = o2;
|
|
2584
|
+
}, 41: function(e, n2, t2) {
|
|
2585
|
+
} }).default;
|
|
2586
|
+
return popperManager;
|
|
2587
|
+
}
|
|
2588
|
+
var popperManagerExports = requirePopperManager();
|
|
2589
|
+
const PlvPopperManager = /* @__PURE__ */ getDefaultExportFromCjs(popperManagerExports);
|
|
2590
|
+
var radio;
|
|
2591
|
+
var hasRequiredRadio;
|
|
2592
|
+
function requireRadio() {
|
|
2593
|
+
if (hasRequiredRadio) return radio;
|
|
2594
|
+
hasRequiredRadio = 1;
|
|
2595
|
+
radio = function(t2) {
|
|
2596
|
+
var e = {};
|
|
2597
|
+
function r2(n2) {
|
|
2598
|
+
if (e[n2]) return e[n2].exports;
|
|
2599
|
+
var o2 = e[n2] = { i: n2, l: false, exports: {} };
|
|
2600
|
+
return t2[n2].call(o2.exports, o2, o2.exports, r2), o2.l = true, o2.exports;
|
|
2601
|
+
}
|
|
2602
|
+
return r2.m = t2, r2.c = e, r2.d = function(t3, e2, n2) {
|
|
2603
|
+
r2.o(t3, e2) || Object.defineProperty(t3, e2, { enumerable: true, get: n2 });
|
|
2604
|
+
}, r2.r = function(t3) {
|
|
2605
|
+
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t3, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t3, "__esModule", { value: true });
|
|
2606
|
+
}, r2.t = function(t3, e2) {
|
|
2607
|
+
if (1 & e2 && (t3 = r2(t3)), 8 & e2) return t3;
|
|
2608
|
+
if (4 & e2 && "object" == typeof t3 && t3 && t3.__esModule) return t3;
|
|
2609
|
+
var n2 = /* @__PURE__ */ Object.create(null);
|
|
2610
|
+
if (r2.r(n2), Object.defineProperty(n2, "default", { enumerable: true, value: t3 }), 2 & e2 && "string" != typeof t3) for (var o2 in t3) r2.d(n2, o2, function(e3) {
|
|
2611
|
+
return t3[e3];
|
|
2612
|
+
}.bind(null, o2));
|
|
2613
|
+
return n2;
|
|
2614
|
+
}, r2.n = function(t3) {
|
|
2615
|
+
var e2 = t3 && t3.__esModule ? function() {
|
|
2616
|
+
return t3.default;
|
|
2617
|
+
} : function() {
|
|
2618
|
+
return t3;
|
|
2619
|
+
};
|
|
2620
|
+
return r2.d(e2, "a", e2), e2;
|
|
2621
|
+
}, r2.o = function(t3, e2) {
|
|
2622
|
+
return Object.prototype.hasOwnProperty.call(t3, e2);
|
|
2623
|
+
}, r2.p = "", r2(r2.s = 298);
|
|
2624
|
+
}({ 0: function(t2, e, r2) {
|
|
2625
|
+
function n2(t3, e2, r3, n3, o2, i2, a2, s2) {
|
|
2626
|
+
var u2, c2 = "function" == typeof t3 ? t3.options : t3;
|
|
2627
|
+
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) {
|
|
2628
|
+
(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);
|
|
2629
|
+
}, c2._ssrRegister = u2) : o2 && (u2 = s2 ? function() {
|
|
2630
|
+
o2.call(this, this.$root.$options.shadowRoot);
|
|
2631
|
+
} : o2), u2) if (c2.functional) {
|
|
2632
|
+
c2._injectStyles = u2;
|
|
2633
|
+
var l2 = c2.render;
|
|
2634
|
+
c2.render = function(t4, e3) {
|
|
2635
|
+
return u2.call(e3), l2(t4, e3);
|
|
2636
|
+
};
|
|
2637
|
+
} else {
|
|
2638
|
+
var f2 = c2.beforeCreate;
|
|
2639
|
+
c2.beforeCreate = f2 ? [].concat(f2, u2) : [u2];
|
|
2640
|
+
}
|
|
2641
|
+
return { exports: t3, options: c2 };
|
|
2642
|
+
}
|
|
2643
|
+
r2.d(e, "a", function() {
|
|
2644
|
+
return n2;
|
|
2645
|
+
});
|
|
2646
|
+
}, 115: function(t2, e, r2) {
|
|
2647
|
+
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) {
|
|
2648
|
+
return -1 !== ["", "border"].indexOf(t3);
|
|
2649
|
+
} }, disabled: { type: Boolean, default: false }, readonly: { type: Boolean, default: false }, corner: { type: Boolean, default: false } }, model: { prop: "checked", event: "change" }, computed: { inGroup: function() {
|
|
2650
|
+
return !!this.radioGroup;
|
|
2651
|
+
}, isChecked: function() {
|
|
2652
|
+
return this.inGroup ? this.radioGroup.value === this.value : this.checked;
|
|
2653
|
+
}, isDisabled: function() {
|
|
2654
|
+
return this.disabled || this.inGroup && this.radioGroup.disabled;
|
|
2655
|
+
}, isReadonly: function() {
|
|
2656
|
+
return this.readonly || this.radioGroup.readonly;
|
|
2657
|
+
}, radioLabel: function() {
|
|
2658
|
+
return this.isChecked ? this.trueLabel || this.label : this.falseLabel || this.label;
|
|
2659
|
+
}, radioType: function() {
|
|
2660
|
+
return this.type || this.radioGroup.type;
|
|
2661
|
+
}, isHasSlot: function() {
|
|
2662
|
+
return this.$slots.default || this.$slots.trueLabel || this.$slots.falseLabel;
|
|
2663
|
+
} }, methods: { emitChange: function(t3) {
|
|
2664
|
+
this.$emit("change", t3);
|
|
2665
|
+
}, handleClick: function() {
|
|
2666
|
+
this.isDisabled || this.isReadonly || (this.inGroup ? this.radioGroup.radioClick(this.value) : this.checked || this.emitChange(true), this.blurToValidateItem());
|
|
2667
|
+
} } }, o2 = (r2(354), r2(355), r2(0)), i2 = Object(o2.a)(n2, function() {
|
|
2668
|
+
var t3 = this, e2 = t3.$createElement, r3 = t3._self._c || e2;
|
|
2669
|
+
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()]);
|
|
2670
|
+
}, [], false, null, null, null);
|
|
2671
|
+
e.a = i2.exports;
|
|
2672
|
+
}, 147: function(t2, e, r2) {
|
|
2673
|
+
}, 148: function(t2, e, r2) {
|
|
2674
|
+
}, 15: function(t2, e, r2) {
|
|
2675
|
+
r2.d(e, "a", function() {
|
|
2676
|
+
return i2;
|
|
2677
|
+
});
|
|
2678
|
+
var n2 = r2(2), o2 = r2.n(n2), i2 = { inject: { formItem: { default: void 0 } }, computed: { formItemIsError: function() {
|
|
2679
|
+
return !!this.formItem && this.formItem.formItemIsError;
|
|
2680
|
+
} }, watch: { showPopper: function() {
|
|
2681
|
+
this.showPopper ? this.focusToRemoveError() : this.blurToValidateItem();
|
|
2682
|
+
} }, methods: { validateCurrentFormItem: function() {
|
|
2683
|
+
if (this.formItem) return this.formItem.validate();
|
|
2684
|
+
}, blurToValidateItem: function() {
|
|
2685
|
+
return o2.a.async(function(t3) {
|
|
2686
|
+
for (; ; ) switch (t3.prev = t3.next) {
|
|
2687
|
+
case 0:
|
|
2688
|
+
return t3.prev = 0, t3.next = 3, o2.a.awrap(this.validateCurrentFormItem());
|
|
2689
|
+
case 3:
|
|
2690
|
+
t3.next = 8;
|
|
2691
|
+
break;
|
|
2692
|
+
case 5:
|
|
2693
|
+
t3.prev = 5, t3.t0 = t3.catch(0), console.error("blur-validate", t3.t0.message);
|
|
2694
|
+
case 8:
|
|
2695
|
+
case "end":
|
|
2696
|
+
return t3.stop();
|
|
2697
|
+
}
|
|
2698
|
+
}, null, this, [[0, 5]]);
|
|
2699
|
+
}, focusToRemoveError: function() {
|
|
2700
|
+
this.formItem && this.formItem.removeErrorMessage();
|
|
2701
|
+
} } };
|
|
2702
|
+
}, 2: function(t2, e, r2) {
|
|
2703
|
+
t2.exports = r2(24);
|
|
2704
|
+
}, 24: function(t2, e, r2) {
|
|
2705
|
+
var n2 = function(t3) {
|
|
2706
|
+
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";
|
|
2707
|
+
function u2(t4, e3, r4) {
|
|
2708
|
+
return Object.defineProperty(t4, e3, { value: r4, enumerable: true, configurable: true, writable: true }), t4[e3];
|
|
2709
|
+
}
|
|
2710
|
+
try {
|
|
2711
|
+
u2({}, "");
|
|
2712
|
+
} catch (t4) {
|
|
2713
|
+
u2 = function(t5, e3, r4) {
|
|
2714
|
+
return t5[e3] = r4;
|
|
2715
|
+
};
|
|
2716
|
+
}
|
|
2717
|
+
function c2(t4, e3, r4, n4) {
|
|
2718
|
+
var o3 = e3 && e3.prototype instanceof y2 ? e3 : y2, i3 = Object.create(o3.prototype), a3 = new O2(n4 || []);
|
|
2719
|
+
return i3._invoke = /* @__PURE__ */ function(t5, e4, r5) {
|
|
2720
|
+
var n5 = f2;
|
|
2721
|
+
return function(o4, i4) {
|
|
2722
|
+
if (n5 === d2) throw new Error("Generator is already running");
|
|
2723
|
+
if (n5 === p2) {
|
|
2724
|
+
if ("throw" === o4) throw i4;
|
|
2725
|
+
return T2();
|
|
2726
|
+
}
|
|
2727
|
+
for (r5.method = o4, r5.arg = i4; ; ) {
|
|
2728
|
+
var a4 = r5.delegate;
|
|
2729
|
+
if (a4) {
|
|
2730
|
+
var s3 = k2(a4, r5);
|
|
2731
|
+
if (s3) {
|
|
2732
|
+
if (s3 === v2) continue;
|
|
2733
|
+
return s3;
|
|
2734
|
+
}
|
|
2735
|
+
}
|
|
2736
|
+
if ("next" === r5.method) r5.sent = r5._sent = r5.arg;
|
|
2737
|
+
else if ("throw" === r5.method) {
|
|
2738
|
+
if (n5 === f2) throw n5 = p2, r5.arg;
|
|
2739
|
+
r5.dispatchException(r5.arg);
|
|
2740
|
+
} else "return" === r5.method && r5.abrupt("return", r5.arg);
|
|
2741
|
+
n5 = d2;
|
|
2742
|
+
var u3 = l2(t5, e4, r5);
|
|
2743
|
+
if ("normal" === u3.type) {
|
|
2744
|
+
if (n5 = r5.done ? p2 : h2, u3.arg === v2) continue;
|
|
2745
|
+
return { value: u3.arg, done: r5.done };
|
|
2746
|
+
}
|
|
2747
|
+
"throw" === u3.type && (n5 = p2, r5.method = "throw", r5.arg = u3.arg);
|
|
2748
|
+
}
|
|
2749
|
+
};
|
|
2750
|
+
}(t4, r4, a3), i3;
|
|
2751
|
+
}
|
|
2752
|
+
function l2(t4, e3, r4) {
|
|
2753
|
+
try {
|
|
2754
|
+
return { type: "normal", arg: t4.call(e3, r4) };
|
|
2755
|
+
} catch (t5) {
|
|
2756
|
+
return { type: "throw", arg: t5 };
|
|
2757
|
+
}
|
|
2758
|
+
}
|
|
2759
|
+
t3.wrap = c2;
|
|
2760
|
+
var f2 = "suspendedStart", h2 = "suspendedYield", d2 = "executing", p2 = "completed", v2 = {};
|
|
2761
|
+
function y2() {
|
|
2762
|
+
}
|
|
2763
|
+
function m2() {
|
|
2764
|
+
}
|
|
2765
|
+
function g2() {
|
|
2766
|
+
}
|
|
2767
|
+
var b2 = {};
|
|
2768
|
+
u2(b2, i2, function() {
|
|
2769
|
+
return this;
|
|
2770
|
+
});
|
|
2771
|
+
var _2 = Object.getPrototypeOf, w2 = _2 && _2(_2(S2([])));
|
|
2772
|
+
w2 && w2 !== r3 && n3.call(w2, i2) && (b2 = w2);
|
|
2773
|
+
var L2 = g2.prototype = y2.prototype = Object.create(b2);
|
|
2774
|
+
function x2(t4) {
|
|
2775
|
+
["next", "throw", "return"].forEach(function(e3) {
|
|
2776
|
+
u2(t4, e3, function(t5) {
|
|
2777
|
+
return this._invoke(e3, t5);
|
|
2778
|
+
});
|
|
2779
|
+
});
|
|
2780
|
+
}
|
|
2781
|
+
function E2(t4, e3) {
|
|
2782
|
+
var r4;
|
|
2783
|
+
this._invoke = function(o3, i3) {
|
|
2784
|
+
function a3() {
|
|
2785
|
+
return new e3(function(r5, a4) {
|
|
2786
|
+
!function r6(o4, i4, a5, s3) {
|
|
2787
|
+
var u3 = l2(t4[o4], t4, i4);
|
|
2788
|
+
if ("throw" !== u3.type) {
|
|
2789
|
+
var c3 = u3.arg, f3 = c3.value;
|
|
2790
|
+
return f3 && "object" == typeof f3 && n3.call(f3, "__await") ? e3.resolve(f3.__await).then(function(t5) {
|
|
2791
|
+
r6("next", t5, a5, s3);
|
|
2792
|
+
}, function(t5) {
|
|
2793
|
+
r6("throw", t5, a5, s3);
|
|
2794
|
+
}) : e3.resolve(f3).then(function(t5) {
|
|
2795
|
+
c3.value = t5, a5(c3);
|
|
2796
|
+
}, function(t5) {
|
|
2797
|
+
return r6("throw", t5, a5, s3);
|
|
2798
|
+
});
|
|
2799
|
+
}
|
|
2800
|
+
s3(u3.arg);
|
|
2801
|
+
}(o3, i3, r5, a4);
|
|
2802
|
+
});
|
|
2803
|
+
}
|
|
2804
|
+
return r4 = r4 ? r4.then(a3, a3) : a3();
|
|
2805
|
+
};
|
|
2806
|
+
}
|
|
2807
|
+
function k2(t4, r4) {
|
|
2808
|
+
var n4 = t4.iterator[r4.method];
|
|
2809
|
+
if (n4 === e2) {
|
|
2810
|
+
if (r4.delegate = null, "throw" === r4.method) {
|
|
2811
|
+
if (t4.iterator.return && (r4.method = "return", r4.arg = e2, k2(t4, r4), "throw" === r4.method)) return v2;
|
|
2812
|
+
r4.method = "throw", r4.arg = new TypeError("The iterator does not provide a 'throw' method");
|
|
2813
|
+
}
|
|
2814
|
+
return v2;
|
|
2815
|
+
}
|
|
2816
|
+
var o3 = l2(n4, t4.iterator, r4.arg);
|
|
2817
|
+
if ("throw" === o3.type) return r4.method = "throw", r4.arg = o3.arg, r4.delegate = null, v2;
|
|
2818
|
+
var i3 = o3.arg;
|
|
2819
|
+
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);
|
|
2820
|
+
}
|
|
2821
|
+
function C(t4) {
|
|
2822
|
+
var e3 = { tryLoc: t4[0] };
|
|
2823
|
+
1 in t4 && (e3.catchLoc = t4[1]), 2 in t4 && (e3.finallyLoc = t4[2], e3.afterLoc = t4[3]), this.tryEntries.push(e3);
|
|
2824
|
+
}
|
|
2825
|
+
function j2(t4) {
|
|
2826
|
+
var e3 = t4.completion || {};
|
|
2827
|
+
e3.type = "normal", delete e3.arg, t4.completion = e3;
|
|
2828
|
+
}
|
|
2829
|
+
function O2(t4) {
|
|
2830
|
+
this.tryEntries = [{ tryLoc: "root" }], t4.forEach(C, this), this.reset(true);
|
|
2831
|
+
}
|
|
2832
|
+
function S2(t4) {
|
|
2833
|
+
if (t4) {
|
|
2834
|
+
var r4 = t4[i2];
|
|
2835
|
+
if (r4) return r4.call(t4);
|
|
2836
|
+
if ("function" == typeof t4.next) return t4;
|
|
2837
|
+
if (!isNaN(t4.length)) {
|
|
2838
|
+
var o3 = -1, a3 = function r5() {
|
|
2839
|
+
for (; ++o3 < t4.length; ) if (n3.call(t4, o3)) return r5.value = t4[o3], r5.done = false, r5;
|
|
2840
|
+
return r5.value = e2, r5.done = true, r5;
|
|
2841
|
+
};
|
|
2842
|
+
return a3.next = a3;
|
|
2843
|
+
}
|
|
2844
|
+
}
|
|
2845
|
+
return { next: T2 };
|
|
2846
|
+
}
|
|
2847
|
+
function T2() {
|
|
2848
|
+
return { value: e2, done: true };
|
|
2849
|
+
}
|
|
2850
|
+
return m2.prototype = g2, u2(L2, "constructor", g2), u2(g2, "constructor", m2), m2.displayName = u2(g2, s2, "GeneratorFunction"), t3.isGeneratorFunction = function(t4) {
|
|
2851
|
+
var e3 = "function" == typeof t4 && t4.constructor;
|
|
2852
|
+
return !!e3 && (e3 === m2 || "GeneratorFunction" === (e3.displayName || e3.name));
|
|
2853
|
+
}, t3.mark = function(t4) {
|
|
2854
|
+
return Object.setPrototypeOf ? Object.setPrototypeOf(t4, g2) : (t4.__proto__ = g2, u2(t4, s2, "GeneratorFunction")), t4.prototype = Object.create(L2), t4;
|
|
2855
|
+
}, t3.awrap = function(t4) {
|
|
2856
|
+
return { __await: t4 };
|
|
2857
|
+
}, x2(E2.prototype), u2(E2.prototype, a2, function() {
|
|
2858
|
+
return this;
|
|
2859
|
+
}), t3.AsyncIterator = E2, t3.async = function(e3, r4, n4, o3, i3) {
|
|
2860
|
+
void 0 === i3 && (i3 = Promise);
|
|
2861
|
+
var a3 = new E2(c2(e3, r4, n4, o3), i3);
|
|
2862
|
+
return t3.isGeneratorFunction(r4) ? a3 : a3.next().then(function(t4) {
|
|
2863
|
+
return t4.done ? t4.value : a3.next();
|
|
2864
|
+
});
|
|
2865
|
+
}, x2(L2), u2(L2, s2, "Generator"), u2(L2, i2, function() {
|
|
2866
|
+
return this;
|
|
2867
|
+
}), u2(L2, "toString", function() {
|
|
2868
|
+
return "[object Generator]";
|
|
2869
|
+
}), t3.keys = function(t4) {
|
|
2870
|
+
var e3 = [];
|
|
2871
|
+
for (var r4 in t4) e3.push(r4);
|
|
2872
|
+
return e3.reverse(), function r5() {
|
|
2873
|
+
for (; e3.length; ) {
|
|
2874
|
+
var n4 = e3.pop();
|
|
2875
|
+
if (n4 in t4) return r5.value = n4, r5.done = false, r5;
|
|
2876
|
+
}
|
|
2877
|
+
return r5.done = true, r5;
|
|
2878
|
+
};
|
|
2879
|
+
}, t3.values = S2, O2.prototype = { constructor: O2, reset: function(t4) {
|
|
2880
|
+
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);
|
|
2881
|
+
}, stop: function() {
|
|
2882
|
+
this.done = true;
|
|
2883
|
+
var t4 = this.tryEntries[0].completion;
|
|
2884
|
+
if ("throw" === t4.type) throw t4.arg;
|
|
2885
|
+
return this.rval;
|
|
2886
|
+
}, dispatchException: function(t4) {
|
|
2887
|
+
if (this.done) throw t4;
|
|
2888
|
+
var r4 = this;
|
|
2889
|
+
function o3(n4, o4) {
|
|
2890
|
+
return s3.type = "throw", s3.arg = t4, r4.next = n4, o4 && (r4.method = "next", r4.arg = e2), !!o4;
|
|
2891
|
+
}
|
|
2892
|
+
for (var i3 = this.tryEntries.length - 1; i3 >= 0; --i3) {
|
|
2893
|
+
var a3 = this.tryEntries[i3], s3 = a3.completion;
|
|
2894
|
+
if ("root" === a3.tryLoc) return o3("end");
|
|
2895
|
+
if (a3.tryLoc <= this.prev) {
|
|
2896
|
+
var u3 = n3.call(a3, "catchLoc"), c3 = n3.call(a3, "finallyLoc");
|
|
2897
|
+
if (u3 && c3) {
|
|
2898
|
+
if (this.prev < a3.catchLoc) return o3(a3.catchLoc, true);
|
|
2899
|
+
if (this.prev < a3.finallyLoc) return o3(a3.finallyLoc);
|
|
2900
|
+
} else if (u3) {
|
|
2901
|
+
if (this.prev < a3.catchLoc) return o3(a3.catchLoc, true);
|
|
2902
|
+
} else {
|
|
2903
|
+
if (!c3) throw new Error("try statement without catch or finally");
|
|
2904
|
+
if (this.prev < a3.finallyLoc) return o3(a3.finallyLoc);
|
|
2905
|
+
}
|
|
2906
|
+
}
|
|
2907
|
+
}
|
|
2908
|
+
}, abrupt: function(t4, e3) {
|
|
2909
|
+
for (var r4 = this.tryEntries.length - 1; r4 >= 0; --r4) {
|
|
2910
|
+
var o3 = this.tryEntries[r4];
|
|
2911
|
+
if (o3.tryLoc <= this.prev && n3.call(o3, "finallyLoc") && this.prev < o3.finallyLoc) {
|
|
2912
|
+
var i3 = o3;
|
|
2913
|
+
break;
|
|
2914
|
+
}
|
|
2915
|
+
}
|
|
2916
|
+
i3 && ("break" === t4 || "continue" === t4) && i3.tryLoc <= e3 && e3 <= i3.finallyLoc && (i3 = null);
|
|
2917
|
+
var a3 = i3 ? i3.completion : {};
|
|
2918
|
+
return a3.type = t4, a3.arg = e3, i3 ? (this.method = "next", this.next = i3.finallyLoc, v2) : this.complete(a3);
|
|
2919
|
+
}, complete: function(t4, e3) {
|
|
2920
|
+
if ("throw" === t4.type) throw t4.arg;
|
|
2921
|
+
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;
|
|
2922
|
+
}, finish: function(t4) {
|
|
2923
|
+
for (var e3 = this.tryEntries.length - 1; e3 >= 0; --e3) {
|
|
2924
|
+
var r4 = this.tryEntries[e3];
|
|
2925
|
+
if (r4.finallyLoc === t4) return this.complete(r4.completion, r4.afterLoc), j2(r4), v2;
|
|
2926
|
+
}
|
|
2927
|
+
}, catch: function(t4) {
|
|
2928
|
+
for (var e3 = this.tryEntries.length - 1; e3 >= 0; --e3) {
|
|
2929
|
+
var r4 = this.tryEntries[e3];
|
|
2930
|
+
if (r4.tryLoc === t4) {
|
|
2931
|
+
var n4 = r4.completion;
|
|
2932
|
+
if ("throw" === n4.type) {
|
|
2933
|
+
var o3 = n4.arg;
|
|
2934
|
+
j2(r4);
|
|
2935
|
+
}
|
|
2936
|
+
return o3;
|
|
2937
|
+
}
|
|
2938
|
+
}
|
|
2939
|
+
throw new Error("illegal catch attempt");
|
|
2940
|
+
}, delegateYield: function(t4, r4, n4) {
|
|
2941
|
+
return this.delegate = { iterator: S2(t4), resultName: r4, nextLoc: n4 }, "next" === this.method && (this.arg = e2), v2;
|
|
2942
|
+
} }, t3;
|
|
2943
|
+
}(t2.exports);
|
|
2944
|
+
try {
|
|
2945
|
+
regeneratorRuntime = n2;
|
|
2946
|
+
} catch (t3) {
|
|
2947
|
+
"object" == typeof globalThis ? globalThis.regeneratorRuntime = n2 : Function("r", "regeneratorRuntime = r")(n2);
|
|
2948
|
+
}
|
|
2949
|
+
}, 298: function(t2, e, r2) {
|
|
2950
|
+
r2.r(e);
|
|
2951
|
+
var n2 = r2(115);
|
|
2952
|
+
n2.a.install = function(t3) {
|
|
2953
|
+
t3.component(n2.a.name, n2.a);
|
|
2954
|
+
}, e.default = n2.a;
|
|
2955
|
+
}, 354: function(t2, e, r2) {
|
|
2956
|
+
var n2 = r2(147);
|
|
2957
|
+
r2.n(n2).a;
|
|
2958
|
+
}, 355: function(t2, e, r2) {
|
|
2959
|
+
var n2 = r2(148);
|
|
2960
|
+
r2.n(n2).a;
|
|
2961
|
+
} }).default;
|
|
2962
|
+
return radio;
|
|
2963
|
+
}
|
|
2964
|
+
requireRadio();
|
|
2965
|
+
const useAppendTo = (elemRef, parentRef) => {
|
|
2966
|
+
function getBodyElement() {
|
|
2967
|
+
return document.body;
|
|
2968
|
+
}
|
|
2969
|
+
const appendToParent = computed(() => {
|
|
2970
|
+
let _parentRef = getBodyElement();
|
|
2971
|
+
if (unref(parentRef)) {
|
|
2972
|
+
_parentRef = unref(parentRef);
|
|
2973
|
+
}
|
|
2974
|
+
return _parentRef;
|
|
2975
|
+
});
|
|
2976
|
+
function setAppend() {
|
|
2977
|
+
const elem = unref(elemRef);
|
|
2978
|
+
const parentElem = unref(appendToParent);
|
|
2979
|
+
if (!elem || !parentElem) {
|
|
2980
|
+
return;
|
|
2981
|
+
}
|
|
2982
|
+
parentElem.appendChild(elem);
|
|
2983
|
+
}
|
|
2984
|
+
watch(
|
|
2985
|
+
() => [unref(elemRef), unref(appendToParent)],
|
|
2986
|
+
() => {
|
|
2987
|
+
setAppend();
|
|
2988
|
+
},
|
|
2989
|
+
{
|
|
2990
|
+
immediate: true
|
|
2991
|
+
}
|
|
2992
|
+
);
|
|
2993
|
+
onBeforeUnmount(() => {
|
|
2994
|
+
const elem = unref(elemRef);
|
|
2995
|
+
if (elem && elem.parentNode) {
|
|
2996
|
+
elem.parentNode.removeChild(elem);
|
|
2997
|
+
}
|
|
2998
|
+
});
|
|
2999
|
+
};
|
|
3000
|
+
const useScreenOrientHook = (params = {}) => {
|
|
3001
|
+
const { autoListen = true, autoListenCb = () => {
|
|
3002
|
+
} } = params;
|
|
3003
|
+
const { injectData } = useGlobalInject();
|
|
3004
|
+
const screenOrientationMode = ref(
|
|
3005
|
+
"Vertical"
|
|
3006
|
+
/* Vertical */
|
|
3007
|
+
);
|
|
3008
|
+
const pageFullscreen = computed(() => {
|
|
3009
|
+
var _a;
|
|
3010
|
+
return (_a = injectData.pageFullscreen) != null ? _a : false;
|
|
3011
|
+
});
|
|
3012
|
+
const isVerticalScreenOrientation = computed(() => {
|
|
3013
|
+
if (!isMobile) {
|
|
3014
|
+
return false;
|
|
3015
|
+
}
|
|
3016
|
+
return screenOrientationMode.value === "Vertical";
|
|
3017
|
+
});
|
|
3018
|
+
const isHorizontalScreenOrientation = computed(() => {
|
|
3019
|
+
if (!isMobile) {
|
|
3020
|
+
return false;
|
|
3021
|
+
}
|
|
3022
|
+
if (pageFullscreen.value) {
|
|
3023
|
+
return true;
|
|
3024
|
+
}
|
|
3025
|
+
return screenOrientationMode.value === "Horizontal";
|
|
3026
|
+
});
|
|
3027
|
+
function resetScreenOrientationModeByWindow() {
|
|
3028
|
+
if (window.innerWidth < window.innerHeight) {
|
|
3029
|
+
screenOrientationMode.value = "Vertical";
|
|
3030
|
+
}
|
|
3031
|
+
}
|
|
3032
|
+
function updateScreenOrientationModeManually() {
|
|
3033
|
+
if (window.orientation === 180 || window.orientation === 0) {
|
|
3034
|
+
screenOrientationMode.value = "Vertical";
|
|
3035
|
+
}
|
|
3036
|
+
if (window.orientation === 90 || window.orientation === -90) {
|
|
3037
|
+
screenOrientationMode.value = "Horizontal";
|
|
3038
|
+
}
|
|
3039
|
+
resetScreenOrientationModeByWindow();
|
|
3040
|
+
}
|
|
3041
|
+
function onOrientationChange() {
|
|
3042
|
+
setTimeout(() => {
|
|
3043
|
+
const mql = window.matchMedia("(orientation: portrait)");
|
|
3044
|
+
if (mql == null ? void 0 : mql.matches) {
|
|
3045
|
+
screenOrientationMode.value = "Vertical";
|
|
3046
|
+
} else {
|
|
3047
|
+
screenOrientationMode.value = "Horizontal";
|
|
3048
|
+
}
|
|
3049
|
+
resetScreenOrientationModeByWindow();
|
|
3050
|
+
autoListenCb(screenOrientationMode.value);
|
|
3051
|
+
}, 200);
|
|
3052
|
+
}
|
|
3053
|
+
function listenOrientationEvent() {
|
|
3054
|
+
window.addEventListener(
|
|
3055
|
+
"onorientationchange" in window ? "orientationchange" : "resize",
|
|
3056
|
+
onOrientationChange,
|
|
3057
|
+
false
|
|
3058
|
+
);
|
|
3059
|
+
}
|
|
3060
|
+
function unlistenOrientationEvent() {
|
|
3061
|
+
window.removeEventListener(
|
|
3062
|
+
"onorientationchange" in window ? "orientationchange" : "resize",
|
|
3063
|
+
onOrientationChange,
|
|
3064
|
+
false
|
|
3065
|
+
);
|
|
3066
|
+
}
|
|
3067
|
+
onMounted(() => {
|
|
3068
|
+
if (autoListen) {
|
|
3069
|
+
listenOrientationEvent();
|
|
3070
|
+
onOrientationChange();
|
|
3071
|
+
}
|
|
3072
|
+
});
|
|
3073
|
+
onBeforeUnmount(() => {
|
|
3074
|
+
unlistenOrientationEvent();
|
|
3075
|
+
});
|
|
3076
|
+
return {
|
|
3077
|
+
screenOrientationMode,
|
|
3078
|
+
isVerticalScreenOrientation,
|
|
3079
|
+
isHorizontalScreenOrientation,
|
|
3080
|
+
pageFullscreen,
|
|
3081
|
+
listenOrientationEvent,
|
|
3082
|
+
updateScreenOrientationModeManually
|
|
3083
|
+
};
|
|
3084
|
+
};
|
|
3085
|
+
const useFullscreenApi = () => {
|
|
3086
|
+
const apis = [
|
|
3087
|
+
{
|
|
3088
|
+
enabledField: "fullscreenEnabled",
|
|
3089
|
+
elementField: "fullscreenElement",
|
|
3090
|
+
requestApiField: "requestFullscreen",
|
|
3091
|
+
exitApiField: "exitFullscreen",
|
|
3092
|
+
fullscreenChangeEvent: "fullscreenchange"
|
|
3093
|
+
},
|
|
3094
|
+
// New WebKit
|
|
3095
|
+
{
|
|
3096
|
+
enabledField: "webkitFullscreenEnabled",
|
|
3097
|
+
elementField: "webkitFullscreenElement",
|
|
3098
|
+
requestApiField: "webkitRequestFullscreen",
|
|
3099
|
+
exitApiField: "webkitExitFullscreen",
|
|
3100
|
+
fullscreenChangeEvent: "webkitfullscreenchange"
|
|
3101
|
+
},
|
|
3102
|
+
// Old WebKit
|
|
3103
|
+
{
|
|
3104
|
+
enabledField: "webkitCancelFullScreen",
|
|
3105
|
+
elementField: "webkitCurrentFullScreenElement",
|
|
3106
|
+
requestApiField: "webkitRequestFullScreen",
|
|
3107
|
+
exitApiField: "webkitCancelFullScreen",
|
|
3108
|
+
fullscreenChangeEvent: "webkitfullscreenchange"
|
|
3109
|
+
},
|
|
3110
|
+
{
|
|
3111
|
+
enabledField: "mozFullScreenEnabled",
|
|
3112
|
+
elementField: "mozFullScreenElement",
|
|
3113
|
+
requestApiField: "mozRequestFullScreen",
|
|
3114
|
+
exitApiField: "mozCancelFullScreen",
|
|
3115
|
+
fullscreenChangeEvent: "mozfullscreenchange"
|
|
3116
|
+
},
|
|
3117
|
+
{
|
|
3118
|
+
enabledField: "msFullscreenEnabled",
|
|
3119
|
+
elementField: "msFullscreenElement",
|
|
3120
|
+
requestApiField: "msRequestFullscreen",
|
|
3121
|
+
exitApiField: "msExitFullscreen",
|
|
3122
|
+
fullscreenChangeEvent: "MSFullscreenChange"
|
|
3123
|
+
}
|
|
3124
|
+
];
|
|
3125
|
+
let fieldData;
|
|
3126
|
+
for (let i2 = 0; i2 < apis.length; i2++) {
|
|
3127
|
+
const item = apis[i2];
|
|
3128
|
+
if (item.enabledField in document) {
|
|
3129
|
+
fieldData = item;
|
|
3130
|
+
break;
|
|
3131
|
+
}
|
|
3132
|
+
}
|
|
3133
|
+
return {
|
|
3134
|
+
fieldData
|
|
3135
|
+
};
|
|
3136
|
+
};
|
|
3137
|
+
const useFullscreen = (elementRef = document.documentElement) => {
|
|
3138
|
+
const { fieldData } = useFullscreenApi();
|
|
3139
|
+
const isFullscreen = ref(false);
|
|
3140
|
+
const fullscreenElement = ref(null);
|
|
3141
|
+
const supportFullscreen = computed(() => !!fieldData);
|
|
3142
|
+
const getFullscreenTargetElement = () => {
|
|
3143
|
+
if (typeof elementRef === "function") {
|
|
3144
|
+
const res = elementRef();
|
|
3145
|
+
return unref(res) || document.documentElement;
|
|
3146
|
+
}
|
|
3147
|
+
return unref(elementRef) || document.documentElement;
|
|
3148
|
+
};
|
|
3149
|
+
function requestFullscreen() {
|
|
3150
|
+
const element = getFullscreenTargetElement();
|
|
3151
|
+
if (!fieldData || !element[fieldData.requestApiField]) {
|
|
3152
|
+
return;
|
|
3153
|
+
}
|
|
3154
|
+
element[fieldData.requestApiField]();
|
|
3155
|
+
}
|
|
3156
|
+
function exitFullscreen() {
|
|
3157
|
+
if (!fieldData) {
|
|
3158
|
+
return;
|
|
3159
|
+
}
|
|
3160
|
+
document[fieldData.exitApiField]();
|
|
3161
|
+
}
|
|
3162
|
+
function toggleFullscreen() {
|
|
3163
|
+
if (!fieldData) {
|
|
3164
|
+
return;
|
|
3165
|
+
}
|
|
3166
|
+
if (!document[fieldData.elementField]) {
|
|
3167
|
+
requestFullscreen();
|
|
3168
|
+
} else {
|
|
3169
|
+
exitFullscreen();
|
|
3170
|
+
}
|
|
3171
|
+
}
|
|
3172
|
+
function onFullscreenChange() {
|
|
3173
|
+
if (!fieldData) {
|
|
3174
|
+
return;
|
|
3175
|
+
}
|
|
3176
|
+
if (document[fieldData.elementField]) {
|
|
3177
|
+
isFullscreen.value = true;
|
|
3178
|
+
} else {
|
|
3179
|
+
isFullscreen.value = false;
|
|
3180
|
+
}
|
|
3181
|
+
fullscreenElement.value = document[fieldData.elementField];
|
|
3182
|
+
}
|
|
3183
|
+
onMounted(() => {
|
|
3184
|
+
if (fieldData) {
|
|
3185
|
+
document.addEventListener(fieldData.fullscreenChangeEvent, onFullscreenChange);
|
|
3186
|
+
if (document[fieldData.elementField]) {
|
|
3187
|
+
onFullscreenChange();
|
|
3188
|
+
}
|
|
3189
|
+
}
|
|
3190
|
+
});
|
|
3191
|
+
onBeforeUnmount(() => {
|
|
3192
|
+
if (!fieldData) {
|
|
3193
|
+
return;
|
|
3194
|
+
}
|
|
3195
|
+
document.removeEventListener(fieldData.fullscreenChangeEvent, onFullscreenChange);
|
|
3196
|
+
});
|
|
3197
|
+
return {
|
|
3198
|
+
isFullscreen,
|
|
3199
|
+
supportFullscreen,
|
|
3200
|
+
requestFullscreen,
|
|
3201
|
+
exitFullscreen,
|
|
3202
|
+
toggleFullscreen
|
|
3203
|
+
};
|
|
3204
|
+
};
|
|
3205
|
+
const popupPositionList = ["bottom", "left", "right", "center"];
|
|
3206
|
+
const COMMON_POPUP_PROVIDE_KEY = Symbol("plv-product-common-popup");
|
|
3207
|
+
const useCommonPopupInject = () => {
|
|
3208
|
+
const injectData = inject(COMMON_POPUP_PROVIDE_KEY, {});
|
|
3209
|
+
return injectData;
|
|
3210
|
+
};
|
|
3211
|
+
const useDynamicHeight = (options) => {
|
|
3212
|
+
const { initHeightRatio = 0.7, maxHeightRatio = 0.85 } = options || {};
|
|
3213
|
+
const prevScrollTop = ref(0);
|
|
3214
|
+
const dynamicHeightIncrementRatio = ref(0);
|
|
3215
|
+
const rafId = ref(null);
|
|
3216
|
+
const dynamicContentHeightPercent = computed(() => {
|
|
3217
|
+
return Math.min(initHeightRatio + dynamicHeightIncrementRatio.value, maxHeightRatio);
|
|
3218
|
+
});
|
|
3219
|
+
const isReachMaxHeight = computed(() => {
|
|
3220
|
+
return dynamicHeightIncrementRatio.value + initHeightRatio >= maxHeightRatio;
|
|
3221
|
+
});
|
|
3222
|
+
function handleScroll(event) {
|
|
3223
|
+
if (rafId.value !== null) return;
|
|
3224
|
+
rafId.value = requestAnimationFrame(() => {
|
|
3225
|
+
const target = event.target;
|
|
3226
|
+
const scrollTop = target.scrollTop;
|
|
3227
|
+
const scrollHeight = target.scrollHeight;
|
|
3228
|
+
const clientHeight = target.clientHeight;
|
|
3229
|
+
if (!isReachMaxHeight.value && scrollTop > prevScrollTop.value) {
|
|
3230
|
+
dynamicHeightIncrementRatio.value += (scrollTop - prevScrollTop.value) / (scrollHeight - clientHeight);
|
|
3231
|
+
prevScrollTop.value = scrollTop;
|
|
3232
|
+
}
|
|
3233
|
+
rafId.value = null;
|
|
3234
|
+
});
|
|
3235
|
+
}
|
|
3236
|
+
function reset() {
|
|
3237
|
+
dynamicHeightIncrementRatio.value = 0;
|
|
3238
|
+
prevScrollTop.value = 0;
|
|
3239
|
+
if (rafId.value !== null) {
|
|
3240
|
+
cancelAnimationFrame(rafId.value);
|
|
3241
|
+
rafId.value = null;
|
|
3242
|
+
}
|
|
3243
|
+
}
|
|
3244
|
+
return {
|
|
3245
|
+
dynamicContentHeightPercent,
|
|
3246
|
+
handleScroll,
|
|
3247
|
+
reset
|
|
3248
|
+
};
|
|
3249
|
+
};
|
|
3250
|
+
/* @__PURE__ */ defineComponent({
|
|
3251
|
+
__name: "index",
|
|
3252
|
+
props: {
|
|
3253
|
+
value: PropUtils.bool.def(false),
|
|
3254
|
+
/** 标题 */
|
|
3255
|
+
title: PropUtils.string.def(""),
|
|
3256
|
+
/** 背景模式 */
|
|
3257
|
+
backgroundMode: PropUtils.oneOf(["bg1"]),
|
|
3258
|
+
/** 背景 */
|
|
3259
|
+
background: PropUtils.string,
|
|
3260
|
+
/** 显示关闭 */
|
|
3261
|
+
closeable: PropUtils.bool.def(true),
|
|
3262
|
+
/** 填充 */
|
|
3263
|
+
fillBody: PropUtils.bool.def(false),
|
|
3264
|
+
/** 是否显示返回按钮 */
|
|
3265
|
+
backable: PropUtils.bool.def(false),
|
|
3266
|
+
/** 头部高度 */
|
|
3267
|
+
headerHeight: PropUtils.string.def("52px"),
|
|
3268
|
+
/** 使用页面高度百分比,0 ~ 1,当 enableDynamicHeight 为 true 时,该配置无效 */
|
|
3269
|
+
contentHeightPercent: PropUtils.oneOfType([Boolean, Number]).def(0.7),
|
|
3270
|
+
/** 是否显示头部 */
|
|
3271
|
+
showHeader: PropUtils.bool.def(true),
|
|
3272
|
+
/** 打开事件 */
|
|
3273
|
+
openEvent: PropUtils.looseString,
|
|
3274
|
+
/** 位置 */
|
|
3275
|
+
position: PropUtils.oneOf(popupPositionList),
|
|
3276
|
+
/** 在屏幕横屏时,强制使用的位置 */
|
|
3277
|
+
horizontalScreenPosition: PropUtils.oneOf(popupPositionList).def("right"),
|
|
3278
|
+
/** 在屏幕横屏时,弹层 className */
|
|
3279
|
+
horizontalScreenClassName: PropUtils.string,
|
|
3280
|
+
/** 宽度 */
|
|
3281
|
+
width: PropUtils.looseString,
|
|
3282
|
+
/** 插入到的节点 */
|
|
3283
|
+
appendTo: PropUtils.looseElement,
|
|
3284
|
+
/** 是否显示遮罩层 */
|
|
3285
|
+
showModal: PropUtils.looseBool,
|
|
3286
|
+
/** 配置 */
|
|
3287
|
+
popupConfig: PropUtils.object(),
|
|
3288
|
+
/** 是否显示滚动条 */
|
|
3289
|
+
showScrollbar: PropUtils.bool.def(true),
|
|
3290
|
+
/** 点击遮罩是否关闭 */
|
|
3291
|
+
closeOnMask: PropUtils.bool.def(true),
|
|
3292
|
+
/** 自定义关闭弹层 */
|
|
3293
|
+
customClose: PropUtils.func(),
|
|
3294
|
+
/** 自定义返回 */
|
|
3295
|
+
customBack: PropUtils.func(),
|
|
3296
|
+
/** 开启后,滑动内容区域,弹层高度会逐渐增大 */
|
|
3297
|
+
enableDynamicHeight: PropUtils.bool.def(false),
|
|
3298
|
+
/** 动态高度配置 */
|
|
3299
|
+
dynamicHeightOptions: PropUtils.object()
|
|
3300
|
+
},
|
|
3301
|
+
emits: {
|
|
3302
|
+
input: emitFunc(),
|
|
3303
|
+
"after-leave": emitFunc()
|
|
3304
|
+
},
|
|
3305
|
+
setup(__props, { expose, emit }) {
|
|
3306
|
+
const props = __props;
|
|
3307
|
+
const { injectData: globalInjectData } = useGlobalInject();
|
|
3308
|
+
const popupInjectData = useCommonPopupInject();
|
|
3309
|
+
const { isHorizontalScreenOrientation, pageFullscreen } = useScreenOrientHook();
|
|
3310
|
+
const { isFullscreen } = useFullscreen();
|
|
3311
|
+
const { dynamicContentHeightPercent, handleScroll, reset: resetContentHeight } = useDynamicHeight(props.dynamicHeightOptions);
|
|
3312
|
+
function getOriginAppendTo() {
|
|
3313
|
+
var _a, _b, _c, _d;
|
|
3314
|
+
return (_d = (_b = props.appendTo) != null ? _b : (_a = props.popupConfig) == null ? void 0 : _a.appendTo) != null ? _d : (_c = unref(popupInjectData.popupConfig)) == null ? void 0 : _c.appendTo;
|
|
3315
|
+
}
|
|
3316
|
+
const popupAppendTo = computed(() => {
|
|
3317
|
+
let appendToElem = getOriginAppendTo();
|
|
3318
|
+
if (isFullscreen.value && unref(globalInjectData.fullscreenElement)) {
|
|
3319
|
+
let fullscreenElement = unref(globalInjectData.fullscreenElement);
|
|
3320
|
+
if (typeof fullscreenElement === "string") {
|
|
3321
|
+
fullscreenElement = document.querySelector(fullscreenElement) || void 0;
|
|
3322
|
+
} else {
|
|
3323
|
+
fullscreenElement = fullscreenElement;
|
|
3324
|
+
}
|
|
3325
|
+
if (fullscreenElement) {
|
|
3326
|
+
appendToElem = fullscreenElement;
|
|
3327
|
+
}
|
|
3328
|
+
}
|
|
3329
|
+
return appendToElem;
|
|
3330
|
+
});
|
|
3331
|
+
const popupShowModal = computed(() => {
|
|
3332
|
+
var _a, _b, _c, _d, _e;
|
|
3333
|
+
return (_e = (_d = (_b = props.showModal) != null ? _b : (_a = props.popupConfig) == null ? void 0 : _a.showModal) != null ? _d : (_c = unref(popupInjectData.popupConfig)) == null ? void 0 : _c.showModal) != null ? _e : true;
|
|
3334
|
+
});
|
|
3335
|
+
function getOriginPosition() {
|
|
3336
|
+
var _a, _b;
|
|
3337
|
+
let originPosition = props.position || ((_a = props.popupConfig) == null ? void 0 : _a.position) || ((_b = unref(popupInjectData.popupConfig)) == null ? void 0 : _b.position);
|
|
3338
|
+
if (originPosition) {
|
|
3339
|
+
return originPosition;
|
|
3340
|
+
}
|
|
3341
|
+
if (isMobile) {
|
|
3342
|
+
originPosition = "bottom";
|
|
3343
|
+
} else {
|
|
3344
|
+
originPosition = "center";
|
|
3345
|
+
}
|
|
3346
|
+
return originPosition;
|
|
3347
|
+
}
|
|
3348
|
+
const popupPosition = computed(() => {
|
|
3349
|
+
let originPosition = getOriginPosition();
|
|
3350
|
+
if (originPosition === "bottom" && isHorizontalScreenOrientation.value) {
|
|
3351
|
+
originPosition = props.horizontalScreenPosition;
|
|
3352
|
+
}
|
|
3353
|
+
return originPosition;
|
|
3354
|
+
});
|
|
3355
|
+
const wrapClass = computed(() => {
|
|
3356
|
+
const cls = [];
|
|
3357
|
+
if (props.fillBody) {
|
|
3358
|
+
cls.push("plv-product-common-popup--fill-body");
|
|
3359
|
+
}
|
|
3360
|
+
if (popupPosition.value) {
|
|
3361
|
+
cls.push(`plv-product-common-popup--position-${popupPosition.value}`);
|
|
3362
|
+
}
|
|
3363
|
+
if (isMobile) {
|
|
3364
|
+
cls.push("plv-product-common-popup--mobile");
|
|
3365
|
+
}
|
|
3366
|
+
if (!popupShowModal.value) {
|
|
3367
|
+
cls.push("plv-product-common-popup--hide-modal");
|
|
3368
|
+
}
|
|
3369
|
+
if (!props.showScrollbar) {
|
|
3370
|
+
cls.push("plv-product-common-popup--hide-scrollbar");
|
|
3371
|
+
}
|
|
3372
|
+
if (isHorizontalScreenOrientation.value) {
|
|
3373
|
+
cls.push("plv-product-common-popup--horizontal-screen");
|
|
3374
|
+
if (props.horizontalScreenClassName) {
|
|
3375
|
+
cls.push(props.horizontalScreenClassName);
|
|
3376
|
+
}
|
|
3377
|
+
}
|
|
3378
|
+
if (pageFullscreen.value) {
|
|
3379
|
+
cls.push("plv-product-common-popup--page-fullscreen");
|
|
3380
|
+
}
|
|
3381
|
+
return cls;
|
|
3382
|
+
});
|
|
3383
|
+
const wrapStyle = computed(() => {
|
|
3384
|
+
const styles = {};
|
|
3385
|
+
if (popupAppendTo.value && popupAppendTo.value !== document.body) {
|
|
3386
|
+
styles.position = "absolute";
|
|
3387
|
+
}
|
|
3388
|
+
return styles;
|
|
3389
|
+
});
|
|
3390
|
+
const headerStyle = computed(() => {
|
|
3391
|
+
const styles = {};
|
|
3392
|
+
if (props.headerHeight) {
|
|
3393
|
+
styles.height = props.headerHeight;
|
|
3394
|
+
}
|
|
3395
|
+
return styles;
|
|
3396
|
+
});
|
|
3397
|
+
const bodyWidth = computed(() => {
|
|
3398
|
+
var _a, _b;
|
|
3399
|
+
let width = props.width || ((_a = props.popupConfig) == null ? void 0 : _a.width) || ((_b = unref(popupInjectData.popupConfig)) == null ? void 0 : _b.width);
|
|
3400
|
+
if (width) {
|
|
3401
|
+
return width;
|
|
3402
|
+
}
|
|
3403
|
+
width = "100%";
|
|
3404
|
+
switch (popupPosition.value) {
|
|
3405
|
+
case "bottom":
|
|
3406
|
+
width = "100%";
|
|
3407
|
+
break;
|
|
3408
|
+
case "left":
|
|
3409
|
+
width = "375px";
|
|
3410
|
+
break;
|
|
3411
|
+
case "right":
|
|
3412
|
+
width = "375px";
|
|
3413
|
+
break;
|
|
3414
|
+
case "center":
|
|
3415
|
+
width = "375px";
|
|
3416
|
+
break;
|
|
3417
|
+
}
|
|
3418
|
+
return width;
|
|
3419
|
+
});
|
|
3420
|
+
const bodyHeight = computed(() => {
|
|
3421
|
+
if (props.fillBody) {
|
|
3422
|
+
return "90%";
|
|
3423
|
+
}
|
|
3424
|
+
if (props.enableDynamicHeight) {
|
|
3425
|
+
return document.documentElement.clientHeight * dynamicContentHeightPercent.value;
|
|
3426
|
+
}
|
|
3427
|
+
if (typeof props.contentHeightPercent === "number") {
|
|
3428
|
+
return document.documentElement.clientHeight * props.contentHeightPercent;
|
|
3429
|
+
}
|
|
3430
|
+
return null;
|
|
3431
|
+
});
|
|
3432
|
+
const bodyClass = computed(() => {
|
|
3433
|
+
const cls = [];
|
|
3434
|
+
if (props.backgroundMode) {
|
|
3435
|
+
cls.push(`plv-product-common-popup__body--${props.backgroundMode}`);
|
|
3436
|
+
}
|
|
3437
|
+
return cls;
|
|
3438
|
+
});
|
|
3439
|
+
const bodyStyle = computed(() => {
|
|
3440
|
+
const styles = {};
|
|
3441
|
+
if (props.background) {
|
|
3442
|
+
styles.background = props.background;
|
|
3443
|
+
}
|
|
3444
|
+
if (bodyWidth.value) {
|
|
3445
|
+
styles.width = bodyWidth.value;
|
|
3446
|
+
}
|
|
3447
|
+
if (bodyHeight.value) {
|
|
3448
|
+
styles.height = `${bodyHeight.value}px`;
|
|
3449
|
+
}
|
|
3450
|
+
return styles;
|
|
3451
|
+
});
|
|
3452
|
+
const wrapVisible = ref(false);
|
|
3453
|
+
const bodyVisible = ref(false);
|
|
3454
|
+
const wrapRef = ref();
|
|
3455
|
+
const innerRef = ref();
|
|
3456
|
+
useAppendTo(wrapRef, popupAppendTo);
|
|
3457
|
+
function topicPopup() {
|
|
3458
|
+
return __async(this, null, function* () {
|
|
3459
|
+
yield nextTick();
|
|
3460
|
+
if (wrapRef.value) {
|
|
3461
|
+
PlvPopperManager.openPopper(wrapRef.value);
|
|
3462
|
+
}
|
|
3463
|
+
});
|
|
3464
|
+
}
|
|
3465
|
+
if (props.openEvent) {
|
|
3466
|
+
useEventBusListener(props.openEvent, () => {
|
|
3467
|
+
topicPopup();
|
|
3468
|
+
});
|
|
3469
|
+
}
|
|
3470
|
+
function onBodyScroll(event) {
|
|
3471
|
+
if (props.enableDynamicHeight) {
|
|
3472
|
+
handleScroll(event);
|
|
3473
|
+
}
|
|
3474
|
+
}
|
|
3475
|
+
function open() {
|
|
3476
|
+
wrapVisible.value = true;
|
|
3477
|
+
bodyVisible.value = true;
|
|
3478
|
+
topicPopup();
|
|
3479
|
+
}
|
|
3480
|
+
function closeBody() {
|
|
3481
|
+
bodyVisible.value = false;
|
|
3482
|
+
emit("input", false);
|
|
3483
|
+
}
|
|
3484
|
+
function close() {
|
|
3485
|
+
if (props.customClose) {
|
|
3486
|
+
props.customClose({ closeBody });
|
|
3487
|
+
return;
|
|
3488
|
+
}
|
|
3489
|
+
closeBody();
|
|
3490
|
+
}
|
|
3491
|
+
function onClickMask() {
|
|
3492
|
+
if (!props.closeOnMask) {
|
|
3493
|
+
return;
|
|
3494
|
+
}
|
|
3495
|
+
close();
|
|
3496
|
+
}
|
|
3497
|
+
function back() {
|
|
3498
|
+
if (props.customBack) {
|
|
3499
|
+
props.customBack({ closeBody });
|
|
3500
|
+
return;
|
|
3501
|
+
}
|
|
3502
|
+
closeBody();
|
|
3503
|
+
}
|
|
3504
|
+
function onAfterLeave() {
|
|
3505
|
+
wrapVisible.value = false;
|
|
3506
|
+
emit("after-leave");
|
|
3507
|
+
if (props.enableDynamicHeight) {
|
|
3508
|
+
resetContentHeight();
|
|
3509
|
+
}
|
|
3510
|
+
}
|
|
3511
|
+
function resetScroll() {
|
|
3512
|
+
if (innerRef.value) {
|
|
3513
|
+
innerRef.value.scrollTop = 0;
|
|
3514
|
+
}
|
|
3515
|
+
}
|
|
3516
|
+
watch(
|
|
3517
|
+
() => props.value,
|
|
3518
|
+
() => {
|
|
3519
|
+
if (props.value) {
|
|
3520
|
+
open();
|
|
3521
|
+
} else {
|
|
3522
|
+
closeBody();
|
|
3523
|
+
}
|
|
3524
|
+
}
|
|
3525
|
+
);
|
|
3526
|
+
onMounted(() => {
|
|
3527
|
+
if (props.value) {
|
|
3528
|
+
open();
|
|
3529
|
+
}
|
|
3530
|
+
});
|
|
3531
|
+
expose({
|
|
3532
|
+
resetScroll
|
|
3533
|
+
});
|
|
3534
|
+
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 };
|
|
3535
|
+
}
|
|
3536
|
+
});
|
|
3537
|
+
const supportWebP = /* @__PURE__ */ (() => {
|
|
3538
|
+
let A2;
|
|
3539
|
+
return () => {
|
|
3540
|
+
if (null == A2) try {
|
|
3541
|
+
A2 = function() {
|
|
3542
|
+
const A3 = document.createElement("canvas");
|
|
3543
|
+
if (A3.getContext && A3.getContext("2d")) {
|
|
3544
|
+
const e = "image/webp";
|
|
3545
|
+
return 0 === A3.toDataURL(e).indexOf("data:" + e);
|
|
3546
|
+
}
|
|
3547
|
+
return false;
|
|
3548
|
+
}();
|
|
3549
|
+
} catch (e) {
|
|
3550
|
+
A2 = false;
|
|
3551
|
+
}
|
|
3552
|
+
return A2;
|
|
3553
|
+
};
|
|
3554
|
+
})();
|
|
3555
|
+
function getExtname(A2) {
|
|
3556
|
+
const e = (A2 || "").split("."), t2 = e[e.length - 1];
|
|
3557
|
+
return t2 ? t2.toLowerCase() : "";
|
|
3558
|
+
}
|
|
3559
|
+
function handleCompressOptions(A2) {
|
|
3560
|
+
var e, t2;
|
|
3561
|
+
const r2 = "number" == typeof A2 ? { width: A2 } : A2;
|
|
3562
|
+
return r2.allowJPG = null === (e = r2.allowJPG) || void 0 === e || e, r2.allowWebP = null !== (t2 = r2.allowWebP) && void 0 !== t2 ? t2 : "auto", r2;
|
|
3563
|
+
}
|
|
3564
|
+
function createURLObject(A2) {
|
|
3565
|
+
let e;
|
|
3566
|
+
if ("undefined" != typeof document) {
|
|
3567
|
+
const t2 = document.createElement("a");
|
|
3568
|
+
t2.href = A2, e = t2;
|
|
3569
|
+
} else if ("function" == typeof URL) try {
|
|
3570
|
+
e = new URL(/^\/\//.test(A2) ? "https:" + A2 : A2);
|
|
3571
|
+
} catch (A3) {
|
|
3572
|
+
}
|
|
3573
|
+
return e;
|
|
3574
|
+
}
|
|
3575
|
+
function genOSSCompressParams(A2, e) {
|
|
3576
|
+
let t2 = "";
|
|
3577
|
+
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;
|
|
3578
|
+
}
|
|
3579
|
+
function setOSSCompressParams(A2, e) {
|
|
3580
|
+
let t2 = false;
|
|
3581
|
+
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;
|
|
3582
|
+
}
|
|
3583
|
+
function ossCompress(A2, e) {
|
|
3584
|
+
const t2 = createURLObject(A2);
|
|
3585
|
+
if (!t2) return A2;
|
|
3586
|
+
if (!/\.videocc\.net$/i.test(t2.hostname)) return A2;
|
|
3587
|
+
const r2 = genOSSCompressParams(getExtname(t2.pathname.split("/").pop()), handleCompressOptions(e));
|
|
3588
|
+
return r2 && (t2.search = setOSSCompressParams(t2.search, r2)), t2.href;
|
|
3589
|
+
}
|
|
3590
|
+
const productItemProps = () => __spreadProps(__spreadValues({}, productProps()), {
|
|
3591
|
+
product: PropUtils.object().isRequired
|
|
3592
|
+
});
|
|
3593
|
+
const productItemEmits = () => ({
|
|
3594
|
+
"click-explain": emitFunc(),
|
|
3595
|
+
"click-product-item": emitFunc(),
|
|
3596
|
+
"direct-buy": emitFunc()
|
|
3597
|
+
});
|
|
3598
|
+
const useProductItem = (options) => {
|
|
3599
|
+
const { props, emit } = options;
|
|
3600
|
+
const { ProductType, ProductBuyType } = getProductTargetExport(props.productTarget);
|
|
3601
|
+
const { getEmitter } = useGlobalInject();
|
|
3602
|
+
const productExplainEnabled = ref(false);
|
|
3603
|
+
const isProductRedirectLinkDirectly = ref(false);
|
|
3604
|
+
const shouldEllipsisTitle = computed(() => {
|
|
3605
|
+
const { product } = props;
|
|
3606
|
+
return !!(product.name && product.featureTags.length && (product.description && product.productType !== ProductType.Position));
|
|
3607
|
+
});
|
|
3608
|
+
function setProductExplainEnabled() {
|
|
3609
|
+
return __async(this, null, function* () {
|
|
3610
|
+
if (!props.productTarget) return;
|
|
3611
|
+
const enabled = yield props.productTarget.getProductExplainEnabled();
|
|
3612
|
+
productExplainEnabled.value = enabled;
|
|
3613
|
+
});
|
|
3614
|
+
}
|
|
3615
|
+
function setIsProductRedirectLinkDirectly() {
|
|
3616
|
+
return __async(this, null, function* () {
|
|
3617
|
+
const { product, productTarget } = props;
|
|
3618
|
+
if (!product || !productTarget) return false;
|
|
3619
|
+
const enabled = yield productTarget.getOutLinkProductRedirectEnabled();
|
|
3620
|
+
isProductRedirectLinkDirectly.value = product.productType === ProductType.Normal && product.buyType === ProductBuyType.Link && enabled;
|
|
3621
|
+
});
|
|
3622
|
+
}
|
|
3623
|
+
function onClickExplain(product) {
|
|
3624
|
+
emit("click-explain", product);
|
|
3625
|
+
}
|
|
3626
|
+
function onClickProductItem() {
|
|
3627
|
+
emit("click-product-item", props.product);
|
|
3628
|
+
if (props.product.productType !== ProductType.Finance) {
|
|
3629
|
+
getEmitter().emit(productEvents.OpenProductDetailPopup, props.product);
|
|
3630
|
+
}
|
|
3631
|
+
}
|
|
3632
|
+
function onDirectBuy(product) {
|
|
3633
|
+
emit("direct-buy", product);
|
|
3634
|
+
}
|
|
3635
|
+
onMounted(() => {
|
|
3636
|
+
setProductExplainEnabled();
|
|
3637
|
+
});
|
|
3638
|
+
watchEffect(() => {
|
|
3639
|
+
setIsProductRedirectLinkDirectly();
|
|
3640
|
+
});
|
|
3641
|
+
return {
|
|
3642
|
+
productExplainEnabled,
|
|
3643
|
+
isProductRedirectLinkDirectly,
|
|
3644
|
+
shouldEllipsisTitle,
|
|
3645
|
+
onDirectBuy,
|
|
3646
|
+
onClickExplain,
|
|
3647
|
+
onClickProductItem
|
|
3648
|
+
};
|
|
3649
|
+
};
|
|
3650
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
3651
|
+
__name: "product-item",
|
|
3652
|
+
props: productItemProps(),
|
|
3653
|
+
emits: productItemEmits(),
|
|
3654
|
+
setup(__props, { emit }) {
|
|
3655
|
+
const props = __props;
|
|
3656
|
+
const { ProductExplainStatus } = getProductTargetExport(props.productTarget);
|
|
3657
|
+
const { $t } = useI18n();
|
|
3658
|
+
const { isSoldOut } = useProductStock({
|
|
3659
|
+
product: () => props.product
|
|
3660
|
+
});
|
|
3661
|
+
const {
|
|
3662
|
+
productExplainEnabled,
|
|
3663
|
+
isProductRedirectLinkDirectly,
|
|
3664
|
+
shouldEllipsisTitle,
|
|
3665
|
+
onDirectBuy,
|
|
3666
|
+
onClickExplain,
|
|
3667
|
+
onClickProductItem
|
|
3668
|
+
} = useProductItem({
|
|
3669
|
+
props,
|
|
3670
|
+
emit
|
|
3671
|
+
});
|
|
3672
|
+
return { __sfc: true, props, emit, ProductExplainStatus, $t, isSoldOut, productExplainEnabled, isProductRedirectLinkDirectly, shouldEllipsisTitle, onDirectBuy, onClickExplain, onClickProductItem, ProductExplain, ProductTitle, ProductFeatureTag, ProductPrice, ProductButton, ossCompress };
|
|
3673
|
+
}
|
|
3674
|
+
});
|
|
3675
|
+
var _sfc_render = function render6() {
|
|
3676
|
+
var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;
|
|
3677
|
+
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) {
|
|
3678
|
+
return _c(_setup.ProductFeatureTag, { key: index, attrs: { "tag": tag } });
|
|
3679
|
+
}), 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 }) {
|
|
3680
|
+
return [_c("button", { staticClass: "plv-product-item__buy-button", class: { "plv-product-item__buy-button--disabled": disabled } }, [_vm._v(" " + _vm._s(buttonText) + " ")])];
|
|
3681
|
+
} }]) })], 1)])])]);
|
|
3682
|
+
};
|
|
3683
|
+
var _sfc_staticRenderFns = [];
|
|
3684
|
+
var __component__ = /* @__PURE__ */ normalizeComponent(
|
|
3685
|
+
_sfc_main,
|
|
3686
|
+
_sfc_render,
|
|
3687
|
+
_sfc_staticRenderFns
|
|
3688
|
+
);
|
|
3689
|
+
const productItem = __component__.exports;
|
|
3690
|
+
;
|
|
3691
|
+
console.log(
|
|
3692
|
+
"%c@polyv/product-ui",
|
|
3693
|
+
"background:#409EFF;padding: 2px 6px;border-radius: 3px;color: #fff",
|
|
3694
|
+
"[component: product-item]",
|
|
3695
|
+
"[version: 1.0.0-rc-20250612.3]",
|
|
3696
|
+
"[buildTime: 2025-06-12 02:28:45]"
|
|
3697
|
+
);
|
|
3698
|
+
export {
|
|
3699
|
+
productItem as default
|
|
3700
|
+
};
|