y-design-ssr 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/libs/button/index.css +579 -1
- package/libs/button/index.mjs +111 -66
- package/libs/button/index.umd.js +203 -2
- package/libs/cell/index.css +1077 -1
- package/libs/cell/index.mjs +167 -104
- package/libs/cell/index.umd.js +300 -2
- package/libs/checkbox/index.css +1053 -1
- package/libs/checkbox/index.mjs +242 -127
- package/libs/checkbox/index.umd.js +369 -2
- package/libs/checkboxGroup/index.css +422 -1
- package/libs/checkboxGroup/index.mjs +173 -87
- package/libs/checkboxGroup/index.umd.js +265 -2
- package/libs/col/index.css +615 -1
- package/libs/col/index.mjs +246 -81
- package/libs/col/index.umd.js +305 -2
- package/libs/countdown/index.css +417 -1
- package/libs/countdown/index.mjs +179 -71
- package/libs/countdown/index.umd.js +231 -2
- package/libs/dialog/index.css +1405 -1
- package/libs/dialog/index.mjs +646 -476
- package/libs/dialog/index.umd.js +1128 -2
- package/libs/empty/index.css +457 -1
- package/libs/empty/index.mjs +91 -44
- package/libs/empty/index.umd.js +139 -2
- package/libs/form/index.css +477 -1
- package/libs/form/index.mjs +226 -126
- package/libs/form/index.umd.js +319 -2
- package/libs/formItem/index.css +477 -1
- package/libs/formItem/index.mjs +276 -126
- package/libs/formItem/index.umd.js +372 -2
- package/libs/icon/index.css +982 -1
- package/libs/icon/index.mjs +107 -58
- package/libs/icon/index.umd.js +186 -2
- package/libs/index.css +2902 -1
- package/libs/index.mjs +3785 -2344
- package/libs/index.umd.js +5509 -2
- package/libs/input/index.css +483 -1
- package/libs/input/index.mjs +183 -92
- package/libs/input/index.umd.js +274 -2
- package/libs/layout/index.css +684 -1
- package/libs/layout/index.mjs +230 -130
- package/libs/layout/index.umd.js +318 -2
- package/libs/list/index.css +440 -1
- package/libs/list/index.mjs +388 -207
- package/libs/list/index.umd.js +571 -2
- package/libs/loading/index.css +548 -1
- package/libs/loading/index.mjs +196 -118
- package/libs/loading/index.umd.js +321 -2
- package/libs/mask/index.css +426 -1
- package/libs/mask/index.mjs +131 -70
- package/libs/mask/index.umd.js +201 -2
- package/libs/popup/index.css +465 -1
- package/libs/popup/index.mjs +210 -134
- package/libs/popup/index.umd.js +358 -2
- package/libs/progress/index.css +488 -1
- package/libs/progress/index.mjs +200 -128
- package/libs/progress/index.umd.js +322 -2
- package/libs/pullrefresh/index.css +441 -1
- package/libs/pullrefresh/index.mjs +241 -111
- package/libs/pullrefresh/index.umd.js +302 -2
- package/libs/row/index.css +485 -1
- package/libs/row/index.mjs +181 -89
- package/libs/row/index.umd.js +237 -2
- package/libs/slider/index.css +558 -1
- package/libs/slider/index.mjs +356 -160
- package/libs/slider/index.umd.js +453 -2
- package/libs/stepper/index.css +489 -1
- package/libs/stepper/index.mjs +181 -101
- package/libs/stepper/index.umd.js +269 -2
- package/libs/swipe/index.css +506 -1
- package/libs/swipe/index.mjs +542 -259
- package/libs/swipe/index.umd.js +703 -2
- package/libs/swipeItem/index.css +424 -1
- package/libs/swipeItem/index.mjs +111 -52
- package/libs/swipeItem/index.umd.js +154 -2
- package/libs/switch/index.css +472 -1
- package/libs/switch/index.mjs +121 -62
- package/libs/switch/index.umd.js +200 -2
- package/libs/tab/index.mjs +131 -68
- package/libs/tab/index.umd.js +190 -1
- package/libs/tabs/index.css +514 -1
- package/libs/tabs/index.mjs +751 -410
- package/libs/tabs/index.umd.js +1020 -2
- package/libs/toast/index.css +1050 -1
- package/libs/toast/index.mjs +183 -114
- package/libs/toast/index.umd.js +306 -2
- package/libs/tooltip/index.css +514 -1
- package/libs/tooltip/index.mjs +293 -155
- package/libs/tooltip/index.umd.js +416 -2
- package/package.json +5 -4
- package/libs/button/package.json +0 -5
- package/libs/cell/package.json +0 -5
- package/libs/checkbox/package.json +0 -5
- package/libs/checkboxGroup/package.json +0 -5
- package/libs/col/package.json +0 -5
- package/libs/countdown/package.json +0 -5
- package/libs/dialog/package.json +0 -5
- package/libs/empty/package.json +0 -5
- package/libs/form/package.json +0 -5
- package/libs/formItem/package.json +0 -5
- package/libs/icon/package.json +0 -5
- package/libs/input/package.json +0 -5
- package/libs/layout/package.json +0 -5
- package/libs/list/package.json +0 -5
- package/libs/loading/package.json +0 -5
- package/libs/mask/package.json +0 -5
- package/libs/popup/package.json +0 -5
- package/libs/progress/package.json +0 -5
- package/libs/pullrefresh/package.json +0 -5
- package/libs/row/package.json +0 -5
- package/libs/slider/package.json +0 -5
- package/libs/stepper/package.json +0 -5
- package/libs/swipe/package.json +0 -5
- package/libs/swipeItem/package.json +0 -5
- package/libs/switch/package.json +0 -5
- package/libs/tab/package.json +0 -5
- package/libs/tabs/package.json +0 -5
- package/libs/toast/package.json +0 -5
- package/libs/tooltip/package.json +0 -5
package/libs/tabs/index.umd.js
CHANGED
|
@@ -1,2 +1,1020 @@
|
|
|
1
|
-
(function(I,A){typeof exports=="object"&&typeof module<"u"?A(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],A):(I=typeof globalThis<"u"?globalThis:I||self,A(I.tabs={},I.Vue))})(this,function(I,A){"use strict";var q=document.createElement("style");q.textContent=`@charset "UTF-8";body,p,h1,h2,h3,h4,h5,h6,ul,dl,ol,dd,form,figure,blockquote{margin:0}ul,ol{list-style:none;padding:0}a{color:inherit;text-decoration:none;outline:none}em,cite,i{font-style:normal}input,textarea,select{font-family:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;outline:none}img{display:inline-block}p{word-break:break-all}main{display:block}table{border-spacing:0;border-collapse:collapse}body{color:#191919;fill:currentColor;font-size:14px;line-height:1.5715;line-height:calc(1em + 8px);font-family:PingFang SC,sans-serif;-webkit-tap-highlight-color:rgba(0,0,0,.05);-webkit-font-smoothing:antialiased}button{line-height:inherit}button:focus{outline:none}.y-el--clickable{cursor:pointer}.y-el--clickable:active{opacity:.85}.y-el--hairline,.y-el--hairline-top,.y-el--hairline-right,.y-el--hairline-bottom,.y-el--hairline-left{position:relative}.y-el--hairline:after,.y-el--hairline-top:after,.y-el--hairline-right:after,.y-el--hairline-bottom:after,.y-el--hairline-left:after{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid rgba(0,0,0,.08);-webkit-transform:scale(.5);transform:scale(.5)}.y-el--hairline-top:after{border-top-width:1px}.y-el--hairline-right:after{border-right-width:1px}.y-el--hairline-bottom:after{border-bottom-width:1px}.y-el--hairline-left:after{border-left-width:1px}.y-el--hairline:after{border-width:1px}.y-el--ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.y-el--ellipsis-l2{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.y-el--ellipsis-l3{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.y-el--unclickable{overflow:hidden}.y-el--unclickable *{pointer-events:none}@font-face{font-family:Yuewen Font;font-style:normal;font-weight:400;src:url(data:application/octet-stream;base64,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YhshWWO4BABiILAAUFiwQGBZZrABY2AjLiMgIDyKOCMhWS2wPSywABawESNCILAIQyAuRyNHI2EgYLAgYGawAmIgsABQWLBAYFlmsAFjIyAgPIo4LbA+LCMgLkawAiVGsBFDWFAbUllYIDxZLrEuARQrLbA/LCMgLkawAiVGsBFDWFIbUFlYIDxZLrEuARQrLbBALCMgLkawAiVGsBFDWFAbUllYIDxZIyAuRrACJUawEUNYUhtQWVggPFkusS4BFCstsEEssDgrIyAuRrACJUawEUNYUBtSWVggPFkusS4BFCstsEIssDkriiAgPLAEI0KKOCMgLkawAiVGsBFDWFAbUllYIDxZLrEuARQrsARDLrAuKy2wQyywABawBCWwBCYgICBGI0dhsAojQi5HI0cjYbAJQysjIDwgLiM4sS4BFCstsEQssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KxCgBCsAlDKyCwYFBYILBAUVizAiADIBuzAiYDGllCQiMgR7AEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYbACJUZhOCMgPCM4GyEgIEYjR7ABKyNhOCFZsS4BFCstsEUssQA4Ky6xLgEUKy2wRiyxADkrISMgIDywBCNCIzixLgEUK7AEQy6wListsEcssAAVIEewACNCsgABARUUEy6wNCotsEgssAAVIEewACNCsgABARUUEy6wNCotsEkssQABFBOwNSotsEossDcqLbBLLLAAFkUjIC4gRoojYTixLgEUKy2wTCywCCNCsEsrLbBNLLIAAEQrLbBOLLIAAUQrLbBPLLIBAEQrLbBQLLIBAUQrLbBRLLIAAEUrLbBSLLIAAUUrLbBTLLIBAEUrLbBULLIBAUUrLbBVLLMAAABBKy2wViyzAAEAQSstsFcsswEAAEErLbBYLLMBAQBBKy2wWSyzAAABQSstsFosswABAUErLbBbLLMBAAFBKy2wXCyzAQEBQSstsF0ssgAAQystsF4ssgABQystsF8ssgEAQystsGAssgEBQystsGEssgAARistsGIssgABRistsGMssgEARistsGQssgEBRistsGUsswAAAEIrLbBmLLMAAQBCKy2wZyyzAQAAQistsGgsswEBAEIrLbBpLLMAAAFCKy2waiyzAAEBQistsGssswEAAUIrLbBsLLMBAQFCKy2wbSyxADorLrEuARQrLbBuLLEAOiuwPistsG8ssQA6K7A/Ky2wcCywABaxADorsEArLbBxLLEBOiuwPistsHIssQE6K7A/Ky2wcyywABaxATorsEArLbB0LLEAOysusS4BFCstsHUssQA7K7A+Ky2wdiyxADsrsD8rLbB3LLEAOyuwQCstsHgssQE7K7A+Ky2weSyxATsrsD8rLbB6LLEBOyuwQCstsHsssQA8Ky6xLgEUKy2wfCyxADwrsD4rLbB9LLEAPCuwPystsH4ssQA8K7BAKy2wfyyxATwrsD4rLbCALLEBPCuwPystsIEssQE8K7BAKy2wgiyxAD0rLrEuARQrLbCDLLEAPSuwPistsIQssQA9K7A/Ky2whSyxAD0rsEArLbCGLLEBPSuwPistsIcssQE9K7A/Ky2wiCyxAT0rsEArLbCJLLMJBAIDRVghGyMhWUIrsAhlsAMkUHixBQEVRVgwWS0AAAAAS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAdCswAAAgAqsQAHQrUVAg8CAggqsQAHQrUXABIAAggqsQAJQrsFgAQAAAIACSqxAAtCuwBAAEAAAgAJKrEDAESxJAGIUViwQIhYsQNkRLEmAYhRWLoIgAABBECIY1RYsQMARFlZWVm1FwARAQIMKrgB/4WwBI2xAgBEswVkBgBERAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwA3ADcANz/5v/mADIAMgAyADIAAAAAAOYBEgFYAXYBzAImAloCsALUA0wDmgPoAAAACgC7/lsDNgYxAAMADwAVABkAIwApADUAOQA9AEgA+kD3QQEhAUkAFhgVFRZwAAEkAQcCAQdlBgECBQEDBAIDZQAEJQEKDAQKZQAMCwEJCAwJZQAIJgERDQgRZScBFA4NFFUQAQ0ADg8NDmUADwASEw8SZQATKBoCGBYTGGUAFQAXGRUXZgAZKQEcHhkcZQAeAB0bHh1lABsqASMfGyNlIgEfACEgHyFlACAAACBVACAgAF0AACAATT4+NjYqKiQkGhoQEAQEPkg+SEdGRURDQkA/PTw7OjY5Njk4Nyo1KjU0MzIxMC8uLSwrJCkkKSgnJiUaIxojIiEgHx4dHBsZGBcWEBUQFRQTEhEEDwQPERERERIRECsIGysBIREhBRUzFSMVITUjNTM1ARUhNSM1ByM1MwcVMxUjFTM1MzUHFSEVITUHFTM1MxUjNSMVITUBFSE1ByM1MwUVMwcVITUjNzM1Azb9hQJ7/huChAFNhIT+swFNhEVCQoSEhMmEQv71AU3JRULJQgFN/rMBTULJyf71jIwBTc2NQP5bB9aGQ0pCQkpD/v3RRI2NScNCSkONQniFRMn1cC5foePj/qXj46Ffz0JeQ0NeQgAAAAEAsAEaBCAEigALACZAIwAAAQMAVQUBAQQBAgMBAmUAAAADXQADAANNEREREREQBgcaKwEjESEVIREzESE1IQLW3P62AUrcAUr+tgSK/rbc/rYBStwAAAACAFj/5gPIBb4AEQAfACVAIgQBAQACAwECZwADAwBfAAAAEQBMAAAdGxYUABEAECcFBxUrAAYGFREUFhYzMjY2NRE0JiYjAzQ2MzIWFREUBiMiJjUBi8hra8iFhchra8iF3HNpaXNzaWlzBb5wv3P9bHO/cHC/cwKUc79w/l5Xb29X/WxXb29XAAAAAAEAWP/mAeQFvgAGABtAGAIBAAMAAQFKAAEBAF0AAAARAEwREwIHFisTFTcRMxEjWLDc3AWS3Cz7BAXYAAEAWP/mA8gFvgAkADdANCEBAwQBShcBAQFJAAECBAIBBH4AAAACAQACZwUBBAQDXQADAxEDTAAAACQAJB0iEysGBxgrJTYSFTY2NzY1NCYmIyIGBhUzNDYzMhYVFAcGBgcGBgIHBxUhNQGHhehjWw8HasiGhshq3G9tbW8DCEhQD5zuQRcDcMKmARsBfJ1NIydwtGhotHBRX19REBEsdmMRvv7bVB7A3AAAAAABAFj/5gPIBb4AKAA/QDwoAQMEAUoABgUEBQYEfgABAwIDAQJ+AAcABQYHBWcABAADAQQDZwACAgBfAAAAEQBMIxIkERQiEyQIBxwrABUUBgYjIiYmNTMUFjMyNjU0JiM1MjY1NCYjIgYVIzQ2NjMyFhYVFAcDyGrIhobIatxubm5ugIiIgG5ubm7casiGhshqiwJY5nC0aGi0cFFfX1GCcNxwglFfX1FwtGhotHDmegAAAAABAFj/5gPIBb4ADgAtQCoKAQIBAUoABQAFgwYBAQQBAgMBAmYAAAADXQADAxEDTBESERERERAHBxsrATMRMxUjFSM1ITUBMwEhAmjchITc/fABye7+SQEQAyr+dNzc3LAETPvgAAAAAAEAWP/mA8gFvgAgAEFAPgEBAgYHBgIEAgJKAAQCAwIEA34AAQAABgEAZQcBBgACBAYCZwADAwVfAAUFEQVMAAAAIAAfIxImJBESCAcaKwAHEyE1IQMXNjYzMhYWFRQGBiMiJjUjFBYWMzISNTQCIwG3UBoCG/0fTdoIalZQYCwsYFBubtxqyIba3t7aA9oYASDc/PMdMDo5fWhofTlfUXC0aAEI8vIBCAAAAAABAFj/5gPIBb4ABgAjQCAFAQABAUoAAQAAAgEAZQMBAgIRAkwAAAAGAAYREQQHFisXASE1IRUB+wHS/YsDcP4dGgT83K361QADAFj/5gPIBb4AGwArAD0AO0A4Gw0CBAMBSgABAAIDAQJnBgEDAAQFAwRnBwEFBQBfAAAAEQBMLCwcHCw9LDw1MxwrHCotLCUIBxcrEgYVFBYWMzI2NjU0Jic2NjU0JiYjIgYGFRQWFzYmJjU0NjYzMhYWFRQGBiMCJiY1NDY3NjMyFxYWFRQGBiOpUXfKd3fKd1FJPkZwwHJywHBGPuhbNTVbNjZbNTVbNjtmO0U4LTI4MjQ+O2Y7Aq+uY3fKd3fKd2KtPzmfWHLAcHDAclifOWo1WzY2WzU1WzY2WzX9bDtmO0BrGxYaHGk9O2Y7AAACAFj/5gPIBb4AEgAkAClAJg8BAwEBSgACAQKDAAEAAwQBA2gABAQAXwAAABEATCYkEiYkBQcZKxIVFBYWMzI2NjU0JiYjIgcBIwEXNjYzMhYWFRQGBiMiJiY1NDdYdsp4eMp2dsp4GxsBB+/+jcgbbEI8ZTs7ZTw8ZTsRAf1feMp2dsp4eMp2AwJr/JVbO0c7ZTw8ZTs7ZTwuKAACAFj/5gPIBb4AEgAkACdAJA8BAQMBSgAAAAQDAARnAAMAAQIDAWcAAgIRAkwmJBImJAUHGSsANTQmJiMiBgYVFBYWMzI3ATMBJwYGIyImJjU0NjYzMhYWFRQHA8h2ynh4ynZ2yngbG/757wFzyBtsQjxlOztlPDxlOxEDp194ynZ2ynh4ynYD/ZUDa1s7RztlPDxlOztlPC4oAAAAABEA0gABAAAAAAAAAC0AAAABAAAAAAABAAsALQABAAAAAAACAAcAOAABAAAAAAADAB0APwABAAAAAAAEABMAXAABAAAAAAAFAA0AbwABAAAAAAAGABIAfAABAAAAAAAJAAMAjgADAAEECQAAAFoAkQADAAEECQABABYA6wADAAEECQACAAgBAQADAAEECQADADoBCQADAAEECQAEACYBQwADAAEECQAFABoBaQADAAEECQAGACQBgwADAAEECQAJAAYBpwADAAEECQARAA4BrUNvcHlyaWdodCCpIDIwMTcgYnkgWVVYLiBBbGwgcmlnaHRzIHJlc2VydmVkLll1ZXdlbiBGb250UmVndWxhcjIuMDAwO1VLV047WXVld2VuRm9udC1SZWd1bGFyWXVld2VuIEZvbnQgUmVndWxhclZlcnNpb24gMi4wMDBZdWV3ZW5Gb250LVJlZ3VsYXJZVVgAQwBvAHAAeQByAGkAZwBoAHQAIACpACAAMgAwADEANwAgAGIAeQAgAFkAVQBYAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAcgBlAHMAZQByAHYAZQBkAC4AWQB1AGUAdwBlAG4AIABGAG8AbgB0AEIAbwBsAGQAMgAuADAAMAAwADsAVQBLAFcATgA7AFkAdQBlAHcAZQBuAEYAbwBuAHQALQBSAGUAZwB1AGwAYQByAFkAdQBlAHcAZQBuACAARgBvAG4AdAAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADIALgAwADAAMABZAHUAZQB3AGUAbgBGAG8AbgB0AC0AUgBlAGcAdQBsAGEAcgBZAFUAWABSAGUAZwB1AGwAYQByAAAAAAIAAAAAAAD/MwBmAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAA4AEwAUABUAFgAXABgAGgAbABkAHAAAAAEAAf//AA8=) format("truetype")}.y-font--number{font-family:Yuewen Font;speak:none;font-style:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@-webkit-keyframes y-keyframes--slide-bottom-enter{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes y-keyframes--slide-bottom-enter{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes y-keyframes--slide-bottom-leave{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes y-keyframes--slide-bottom-leave{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes y-keyframes--slide-top-enter{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes y-keyframes--slide-top-enter{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@-webkit-keyframes y-keyframes--slide-top-leave{to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes y-keyframes--slide-top-leave{to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@-webkit-keyframes y-keyframes--slide-left-enter{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes y-keyframes--slide-left-enter{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes y-keyframes--slide-left-leave{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes y-keyframes--slide-left-leave{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes y-keyframes--slide-right-enter{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes y-keyframes--slide-right-enter{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes y-keyframes--slide-right-leave{to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes y-keyframes--slide-right-leave{to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes y-keyframes--fade-enter{0%{opacity:0}to{opacity:1}}@keyframes y-keyframes--fade-enter{0%{opacity:0}to{opacity:1}}@-webkit-keyframes y-keyframes--fade-leave{0%{opacity:1}to{opacity:0}}@keyframes y-keyframes--fade-leave{0%{opacity:1}to{opacity:0}}@-webkit-keyframes y-keyframes--rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes y-keyframes--rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.y-animation--fade-enter-active{-webkit-animation:.3s y-keyframes--fade-enter both ease-out;animation:.3s y-keyframes--fade-enter both ease-out}.y-animation--fade-leave-active{-webkit-animation:.3s y-keyframes--fade-leave both ease-in;animation:.3s y-keyframes--fade-leave both ease-in}.y-animation--slide-bottom-enter-active{-webkit-animation:.3s y-keyframes--slide-bottom-enter both ease-out;animation:.3s y-keyframes--slide-bottom-enter both ease-out}.y-animation--slide-bottom-leave-active{-webkit-animation:.3s y-keyframes--slide-bottom-leave both ease-in;animation:.3s y-keyframes--slide-bottom-leave both ease-in}.y-animation--slide-top-enter-active{-webkit-animation:.3s y-keyframes--slide-top-enter both ease-out;animation:.3s y-keyframes--slide-top-enter both ease-out}.y-animation--slide-top-leave-active{-webkit-animation:.3s y-keyframes--slide-top-leave both ease-in;animation:.3s y-keyframes--slide-top-leave both ease-in}.y-animation--slide-left-enter-active{-webkit-animation:.3s y-keyframes--slide-left-enter both ease-out;animation:.3s y-keyframes--slide-left-enter both ease-out}.y-animation--slide-left-leave-active{-webkit-animation:.3s y-keyframes--slide-left-leave both ease-in;animation:.3s y-keyframes--slide-left-leave both ease-in}.y-animation--slide-right-enter-active{-webkit-animation:.3s y-keyframes--slide-right-enter both ease-out;animation:.3s y-keyframes--slide-right-enter both ease-out}.y-animation--slide-right-leave-active{-webkit-animation:.3s y-keyframes--slide-right-leave both ease-in;animation:.3s y-keyframes--slide-right-leave both ease-in}:root{--Primary: #68e38b;--Primary_1: #95f0ab;--Primary_2: #f0fff2;--Secondary: #5790df;--Secondary_1: #84b4f5;--Secondary_2: #edf1fc;--Surface: #191919;--Surface_1: #4c4c4c;--Surface_2: #808080;--Surface_3: #adadad;--Surface_4: #ccc;--Surface_5: #e0e0e0;--Surface_6: #ebebeb;--Surface_7: #f5f5f5;--Surface_8: #fff;--Background: #f5f5f5;--Background_1: #fff;--SheetBackground: #f5f5f5;--SheetBackground_1: #fff;--Outline: rgba(0, 0, 0, .08);--Segmentation: rgba(0, 0, 0, .04);--Overlay: rgba(0, 0, 0, .9);--Overlay_1: rgba(0, 0, 0, .6);--Overlay_2: rgba(0, 0, 0, .36);--Success: #40d76f;--Error: #e5353e;--Warn: #ff5e1a;--Warn_1: #ffe1d5;--Click_Active: rgba(0, 0, 0, .05);--Font_Family: PingFang SC, sans-serif;--Font_Family_Number: Yuewen Font}.y-tabs__list{background-color:#fff}.y-tabs__list-child-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.y-tabs__list-child-wrapper--left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.y-tabs__list-child-wrapper--center{-ms-flex-pack:distribute;justify-content:space-around}.y-tabs__list-child-wrapper--large{height:56px}.y-tabs__list-child-wrapper--middle{height:44px}.y-tabs__list-child-wrapper--small{height:40px}.y-tabs__list-child-wrapper--scrollable{overflow-x:auto;overflow-y:hidden;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.y-tabs__list-child-wrapper--scrollable::-webkit-scrollbar{display:none}.y-tabs-title{color:#4c4c4c;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.4;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0 16px}.y-tabs-title__large,.y-tabs-title__middle{font-size:16px}.y-tabs-title__large--active,.y-tabs-title__middle--active{color:#68e38b;font-size:18px;font-weight:700}.y-tabs-title__small{font-size:14px}.y-tabs-title__small--active{color:#68e38b;font-size:14px;font-weight:500}.y-tabs-title--scrollable{min-width:60px;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;padding:16px}.y-tabs-title--disabled{color:#ccc}.y-tabs__line{position:absolute;background-color:#68e38b;width:12px;height:3px;border-radius:20px;bottom:0;left:0}
|
|
2
|
-
`,document.head.appendChild(q);const M=(e,s)=>s?typeof s=="string"?` ${e}--${s}`:Array.isArray(s)?s.reduce((r,i)=>r+M(e,i),""):Object.keys(s).reduce((r,i)=>r+(s[i]?M(e,i):""),""):"",oe=e=>(s,r)=>{let i=s,g=r;return i&&typeof i!="string"&&(g=i,i=""),i=i?`${e}__${i}`:e,`${i}${M(i,g)}`},ce=()=>(e,s)=>s?`${M(`y-${e}`,s)}`:`y-${e}`,fe={"pull-refresh":{pulling:"下拉刷新...",loosing:"释放刷新...",loading:"数据加载中...",success:"数据已更新",failed:"数据跟新失败,请稍后再试"},"form-item":{validateMessage:"请输入正确内容"}};A.ref("zh-CN"),A.reactive({"zh-CN":fe});const G=e=>{const s=`y-${e}`;return[s,oe(s),ce()]},ee=(e,s)=>typeof e=="string"&&e.includes("%")&&e.includes("%")?s*Number(e.replace(/%/g,""))/100:Number(e),de=e=>{const s=[],r=i=>{Array.isArray(i)&&i.forEach(g=>{var f;A.isVNode(g)&&(s.push(g),(f=g.component)!=null&&f.subTree&&r(g.component.subTree.children),g.children&&r(g.children))})};return r(e),s},Be=(e,s)=>{const r=de(s.subTree.children);e.sort((i,g)=>r.indexOf(i.vnode)-r.indexOf(g.vnode))},te=e=>{const s=A.getCurrentInstance(),r=A.reactive([]);return{childrens:r,initProvide:g=>{const f=o=>{o.proxy&&(r.push(o),s&&Be(r,s))},l=o=>{const d=r.indexOf(o);r.splice(d,1)};A.provide(e,{addChild:f,removeChild:l,childrens:r,...g})}}},Ae=e=>{const s=A.inject(e,null),r=A.getCurrentInstance();if(s&&r){const{childrens:i,addChild:g,removeChild:f}=s;return g(r),A.onUnmounted(()=>f(r)),{index:A.computed(()=>i.indexOf(r)),parent:s}}return{parent:null,index:A.ref(-1)}},[ge,ye]=G("swipe-item"),H=A.defineComponent({name:ge,props:{clonenNode:{type:Object,default:null},index:{type:Number,default:-1}},setup(e,{slots:s}){const r=A.getCurrentInstance(),{parent:i}=Ae(ie);!e.clonenNode&&r&&(i==null||i.children.push(r));const g=A.computed(()=>e.clonenNode?e.index:i==null?void 0:i.children.findIndex(l=>l.proxy===(r==null?void 0:r.proxy))),f=A.computed(()=>{const l=`${(i==null?void 0:i.itemDetail.size)||0}px`;let o="auto";const d=`${(i==null?void 0:i.itemDetail.space)||0}px`;return i!=null&&i.props.autoHeight&&(i==null?void 0:i.activeIndex)!==g.value&&(o="0"),i!=null&&i.props.vertical?{height:l,width:o,marginBottom:d}:{width:l,height:o,marginRight:d}});return()=>{var o,d;const l=((o=i==null?void 0:i.itemShowedList)==null?void 0:o.list[g.value||0])||!1;return A.createVNode("div",{class:ye(),style:f.value},[l?e.clonenNode||((d=s.default)==null?void 0:d.call(s)):null])}}});var O=(e=>(e.left="left",e.top="top",e.bottom="bottom",e.right="right",e))(O||{}),R=(e=>(e.start="start",e.center="center",e.end="end",e))(R||{});const we={autoplayTime:{type:Number,default:0},duration:{type:Number,default:300},initIndex:{type:Number,default:0},loop:{type:Boolean,default:!0},dots:{type:Boolean,default:!0},dotsPosition:{type:String,default:null},dotsColor:{type:String,default:""},lazy:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},autoHeight:{type:Boolean,default:!1},itemSize:{type:[Number,String],default:""},itemSpace:{type:[Number,String],default:0},minSwipeDistance:{type:[Number,String],default:"50%"},touchable:{type:Boolean,default:!0},isFollowHand:{type:Boolean,default:!0},align:{type:String,default:"center"}},[se,_]=G("swipe"),ie=se,be=A.defineComponent({name:se,components:{YSwipeItem:H},props:we,setup(e,{slots:s,emit:r,expose:i}){const{initProvide:g}=te(ie),f=A.reactive([]),l=A.ref(Number(e.initIndex)),o=A.reactive({size:0,space:0,isFillViewport:!1}),d=A.reactive({offset:0,viewportSize:0,cloneNodeCount:0}),C=A.ref(),b=A.ref(),p=()=>{const t=f.length,n=[];for(let y=0;y<t;y++)n.push(!e.lazy);return n},z=()=>{if(!e.lazy)return;const t=o.size+o.space,n=f.length*t;let y=-(d.offset+c.offset)-d.cloneNodeCount*t;y<0&&(y+=n);const m=y+d.viewportSize;for(let u=0;u<f.length;u++)if(!N.list[u]){const h=t*u,Q=h+o.size;(h>=y&&h<m||Q>y&&Q<m||h<y&&Q>m)&&(N.list[u]=!0)}},N=A.reactive({list:p()}),E=()=>{N.list=p(),z()};A.watch(()=>[...f],E);const D=(t,n)=>{t?o.size=ee(t,n):o.size=n,o.space=Number(e.itemSpace)||0,o.isFillViewport=o.size>=n,d.viewportSize=n,d.cloneNodeCount=$()},$=()=>{if(F.value){const t=o.size+o.space;if(t===0)return 0;const n=d.viewportSize*2-t,y=Math.ceil(n/t);return Math.min(y,f.length-1)}return 0},L=()=>{if(!C.value)return;const{width:t,height:n}=C.value.getBoundingClientRect();e.vertical?D(e.itemSize,n):D(e.itemSize,t),l.value=l.value>=f.length?f.length-1:l.value,l.value<0&&(l.value=0),Y(l.value),E(),w()};A.onMounted(()=>{if(A.nextTick(L).catch(()=>{}),e.touchable&&C.value){const t=C.value;t.addEventListener("touchstart",Z,!1),t.addEventListener("mousedown",Z,!1),t.addEventListener("touchmove",J,!1),t.addEventListener("mousemove",J,!1),t.addEventListener("touchend",k,!1),t.addEventListener("mouseup",k,!1),t.addEventListener("mouseleave",k,!1),t.addEventListener("touchcancel",k,!1)}window.addEventListener("resize",L,!1),window.addEventListener("orientationchange",L,!1)}),A.onBeforeUnmount(()=>{if(B(),e.touchable&&C.value){const t=C.value;t.removeEventListener("touchstart",Z,!1),t.removeEventListener("mousedown",Z,!1),t.removeEventListener("mousemove",J,!1),t.removeEventListener("touchmove",J,!1),t.removeEventListener("mouseup",k,!1),t.removeEventListener("touchend",k,!1),t.removeEventListener("mouseleave",k,!1),t.removeEventListener("touchcancel",k,!1)}window.removeEventListener("resize",L,!1),window.removeEventListener("orientationchange",L,!1)});const T=A.computed(()=>{let t=0;switch(e.align){case R.start:t=0;break;case R.center:t=(d.viewportSize-o.size)/2;break;case R.end:t=d.viewportSize-o.size;break;default:t=0}return t}),F=A.computed(()=>e.loop&&f.length>1),Y=t=>{const n=o.size+o.space;F.value?d.offset=-n*(t+d.cloneNodeCount)+T.value:(d.offset=-n*t+T.value,e.align!=="center"&&(t===0&&(d.offset=0),t===f.length-1&&(d.offset=-n*t+d.viewportSize-o.size)))},K=()=>{Y(l.value),r("afterChange",l.value)},S=t=>(f.length+t)%f.length,x=(t,n=!0)=>{l.value=S(t),Y(t),z(),r("change",l.value),n?(c.transitionEnabled=!0,b.value&&b.value.addEventListener("transitionend",()=>{c.transitionEnabled=!1,K()},{once:!0})):K()},v=(t=!0)=>{x(l.value-1,t)},U=(t=!0)=>{x(l.value+1,t)};let a=null;const B=()=>{e.autoplayTime&&a&&clearInterval(a)},w=()=>{e.autoplayTime&&f.length>1&&(a&&clearInterval(a),a=setInterval(()=>{U()},Number(e.autoplayTime)))},c=A.reactive({isDragging:!1,isFirstTouch:!0,startX:0,startY:0,offset:0,startTime:new Date,transitionEnabled:!1}),Z=t=>{if(c.transitionEnabled)return;let n=0,y=0;"touches"in t?(n=t.touches[0].clientX,y=t.touches[0].clientY):(n=t.clientX,y=t.clientY),c.startX=n,c.startY=y,c.isDragging=!0,c.isFirstTouch=!0,c.startTime=new Date},J=t=>{if(!c.isDragging)return;let n=0,y=0;"touches"in t?(n=t.touches[0].clientX,y=t.touches[0].clientY):(n=t.clientX,y=t.clientY);const m=n-c.startX,u=y-c.startY;if(c.isFirstTouch&&(c.isFirstTouch=!1,Math.abs(m)<Math.abs(u)!==e.vertical)){c.isDragging=!1;return}t.preventDefault(),c.offset=e.vertical?u:m,z(),r("dragging",{percent:c.offset/(o.size+o.space),offset:c.offset})},k=()=>{if(!c.isDragging)return;c.isDragging=!1;const n=new Date().getTime()-c.startTime.getTime();he()&&(Math.abs(c.offset)>Ee.value||Math.abs(c.offset)/n>.5)&&(c.offset>0?v():U()),c.offset=0,w()},Ee=A.computed(()=>ee(e.minSwipeDistance,o.size+o.space)),he=()=>{if(F.value)return!0;const t=c.offset>0?l.value-1:l.value+1;return t>=0&&t<f.length},Ce=A.computed(()=>{const t=c.isDragging&&!e.isFollowHand?d.offset:d.offset+c.offset,n={};return e.vertical?(n.transform=`translate3d(0, ${t}px, 0)`,n.transitionDuration=c.transitionEnabled?`${e.duration}ms`:"0ms"):(n.transform=`translate3d(${t}px, 0, 0)`,n.transitionDuration=c.transitionEnabled?`${e.duration}ms`:"0ms"),c.isDragging&&(n.transition="none"),e.vertical&&(n.flexDirection="column"),e.autoHeight&&(n.display="block",n.whiteSpace="nowrap"),n}),Ie=A.computed(()=>["y-swipe__dots",`y-swipe__dots--${e.dotsPosition||(e.vertical?O.left:O.bottom)}`]);i({moveTo:x,next:U,prev:v,resize:L});const Qe=A.reactive({children:f,activeIndex:l,props:e,itemDetail:o,itemShowedList:N});g(Qe);const Le=()=>e.dots?A.createVNode("div",{class:Ie.value},[f.map((t,n)=>{const y=_("dot",{active:n===l.value});return A.createVNode("div",{class:y,style:{backgroundColor:e.dotsColor},key:n},null)})]):null;return()=>{var t;return A.createVNode("div",{class:_(),ref:C},[A.createVNode("div",{class:_("track"),style:Ce.value,ref:b},[Array(d.cloneNodeCount).fill("").map((n,y)=>{var h,Q,W;const m=S(y-d.cloneNodeCount),u=(W=(h=f[m])==null?void 0:(Q=h.slots).default)==null?void 0:W.call(Q);return u?A.createVNode(H,{clonenNode:u,index:m},null):null}),(t=s.default)==null?void 0:t.call(s),Array(d.cloneNodeCount).fill("").map((n,y)=>{var h,Q,W;const m=S(y),u=(W=(h=f[m])==null?void 0:(Q=h.slots).default)==null?void 0:W.call(Q);return u?A.createVNode(H,{clonenNode:u,index:m},null):null})]),s.dots?s.dots():Le()])}}}),[ue,ae]=G("tabs-title"),ne=A.defineComponent({name:ue,props:{active:{type:Boolean,default:!1},scrollable:{type:Boolean,default:!1},title:{type:String,default:null},titleSlot:{type:Function,default:null},disabled:{type:Boolean,default:!1}},setup(e){const{parent:s}=Ae(le),r=A.computed(()=>[{"y-el--clickable":!e.disabled},ae({scrollable:e.scrollable,disabled:e.disabled}),ae(`${(s==null?void 0:s.props.size)||"middle"}`,{active:e.active}),s==null?void 0:s.props.titleClass,e.active?s==null?void 0:s.props.titleActiveClass:""]),i=A.computed(()=>({...s==null?void 0:s.props.titleStyle,...e.active?{...s==null?void 0:s.props.titleActiveStyle}:{}}));return()=>{const{title:g,titleSlot:f}=e;return A.createVNode("div",{class:r.value,title:g,style:i.value,role:"presentation"},[f?f():g])}}}),j=null,re={initIndex:{type:Number,default:0},initName:{type:[Number,String],default:null},duration:{type:Number,default:300},lazy:{type:Boolean,default:!1},lineColor:{type:String,default:""},lineWidth:{type:[Number,String],default:"12px"},lineHeight:{type:[Number,String],default:"3px"},titleWrapperClass:j,titleScrollThreshold:{type:Number,default:5},titleStyle:{type:[Object],default:null},titleClass:{type:j,default:null},titleActiveStyle:{type:[Object],default:null},titleActiveClass:{type:j,default:null},touchable:{type:Boolean,default:!0},changeWithAnimation:{type:Boolean,default:!1},size:{type:String,default:"large"},align:{type:String,default:"center"}};function me(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!A.isVNode(e)}const[P,X]=G("tabs"),le=P,V=A.defineComponent({name:P,components:{YTabTitle:ne},props:re,setup(e,{slots:s,emit:r,expose:i}){const{initProvide:g}=te(le),f=A.ref(!1),l=A.reactive([]),o=A.ref(),d=A.computed(()=>l.length>e.titleScrollThreshold),C=a=>l.findIndex(B=>(B.$props?B.$props.name:"")===a),b=A.ref(e.initName?C(e.initName):e.initIndex),p=a=>{b.value=a;const B=o.value;B&&(B==null||B.moveTo(a,e.changeWithAnimation))};i({scrollToByIndex:a=>{p(a)},scrollToByName:a=>{const B=C(a);p(B)}});const E=A.ref([]),D=A.ref(),$=a=>B=>{E.value[a]=B},L=a=>{const{title:B,name:w,disabled:c}=l[a].$props||{};b.value!==a&&(r(c?"disabledClick":"click",a,B,w),!c&&p(a))},T=async()=>{await A.nextTick(()=>{if(!d.value||!D.value)return;const a=D.value;if(!a||!E.value[b.value])return;const B=E.value[b.value].$el,w=B.offsetLeft-(a.offsetWidth-B.offsetWidth)/2-a.scrollLeft;a.scrollBy({left:w,behavior:"smooth"})})};A.onBeforeUpdate(()=>{E.value=[]});const F=A.reactive({transform:"translateX(50%)",transition:"all 0ms ease-out"}),Y=async()=>{await A.nextTick(()=>{if(!E.value||E.value.length===0)return;const a=b.value>=E.value.length?0:b.value,B=E.value[a].$el,w=B.offsetLeft+B.offsetWidth/2;F.transform=`translateX(${w}px) translateX(-50%)`,f.value&&(F.transition=`all ${e.duration}ms ease-out`),f.value=!0})},K=a=>{const{title:B,name:w}=l[a].$props||{};r("change",a,B,w),b.value=a},S=a=>{const{title:B,name:w}=l[a].$props||{};r("afterChange",a,B,w),b.value=a},x=A.reactive({children:l,activeIndex:b,props:e});g(x);const v=a=>U(a)&&/^\d+(\.\d+)?$/.test(a)?`${a}px`:a,U=a=>Object.prototype.toString.call(a)==="[object String]";return A.onMounted(async()=>{await Y()}),A.watch(()=>b.value,async()=>{await Y(),await T()}),A.watch(()=>{var a;return(a=s.default)==null?void 0:a.length},async()=>{await Y()}),()=>{let a;return A.createVNode("div",{class:P},[A.createVNode("div",{class:X("list")},[A.createVNode("div",{ref:D,class:X("list-child-wrapper",{scrollable:d.value,[e.size]:e.size,[e.align]:e.align})},[l.length>0&&l.map((B,w)=>A.createVNode(ne,{title:B.title,disabled:B.disabled,"title-slot":B.$slots.title,key:w,ref:$(w),active:b.value===w,scrollable:d.value,onClick:()=>L(w)},null)),A.createVNode("div",{class:X("line"),style:{...F,width:v(e.lineWidth),height:v(e.lineHeight),backgroundColor:e.lineColor}},null)])]),s.default?A.createVNode(be,{ref:o,dots:!1,loop:!1,initIndex:b.value,lazy:e.lazy,touchable:e.touchable,duration:e.duration,"is-follow-hand":e.changeWithAnimation,onChange:K,onAfterChange:S},me(a=s.default())?a:{default:()=>[a]}):null])}}}),ke="",Fe="",Ye="",pe="",De="",Ne="";V.install=e=>{const{name:s}=V;e.component(s,V)},I.acceptProps=re,I.default=V,I.unknownProp=j,Object.defineProperties(I,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(global, factory) {
|
|
2
|
+
typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("vue")) : typeof define === "function" && define.amd ? define(["exports", "vue"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.tabs = {}, global.Vue));
|
|
3
|
+
})(this, function(exports2, vue) {
|
|
4
|
+
"use strict";
|
|
5
|
+
var __vite_style__ = document.createElement("style");
|
|
6
|
+
__vite_style__.textContent = '@charset "UTF-8";\n/**\n* sass 基础颜色变量\n*/ /* 原始颜色 sass 变量 */\n/* 不折行截字 */\n/* 折行截字 @param 传入想要截到第几行 */\nbody,\np,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nul,\ndl,\nol,\ndd,\nform,\nfigure,\nblockquote {\n margin: 0;\n}\n\nul,\nol {\n list-style: none;\n padding: 0;\n}\n\na {\n color: inherit;\n text-decoration: none;\n outline: none;\n}\n\nem,\ncite,\ni {\n font-style: normal;\n}\n\ninput,\ntextarea,\nselect {\n font-family: inherit;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n outline: none;\n}\n\nimg {\n display: inline-block;\n}\n\np {\n word-break: break-all;\n}\n\nmain {\n display: block;\n}\n\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\n\nbody {\n color: #191919;\n fill: currentColor;\n font-size: 14px;\n line-height: 1.5715;\n line-height: calc(1em + 8px);\n font-family: "PingFang SC", sans-serif;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0.05);\n -webkit-font-smoothing: antialiased;\n}\n\nbutton {\n line-height: inherit;\n}\nbutton:focus {\n outline: none;\n}\n/**\n* sass 基础颜色变量\n*/\n/* 原始颜色 sass 变量 */\n/* 不折行截字 */\n/* 折行截字 @param 传入想要截到第几行 */\n/* 不折行截字 */\n/* 折行截字 @param 传入想要截到第几行 */\n.y-el--clickable {\n cursor: pointer;\n}\n.y-el--clickable:active {\n opacity: 0.85;\n}\n.y-el--hairline, .y-el--hairline-top, .y-el--hairline-right, .y-el--hairline-bottom, .y-el--hairline-left {\n position: relative;\n}\n.y-el--hairline::after, .y-el--hairline-top::after, .y-el--hairline-right::after, .y-el--hairline-bottom::after, .y-el--hairline-left::after {\n position: absolute;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n content: " ";\n pointer-events: none;\n top: -50%;\n right: -50%;\n bottom: -50%;\n left: -50%;\n border: 0 solid rgba(0, 0, 0, 0.08);\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n}\n.y-el--hairline-top::after {\n border-top-width: 1px;\n}\n.y-el--hairline-right::after {\n border-right-width: 1px;\n}\n.y-el--hairline-bottom::after {\n border-bottom-width: 1px;\n}\n.y-el--hairline-left::after {\n border-left-width: 1px;\n}\n.y-el--hairline::after {\n border-width: 1px;\n}\n.y-el--ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.y-el--ellipsis-l2 {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.y-el--ellipsis-l3 {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n.y-el--unclickable {\n overflow: hidden;\n}\n.y-el--unclickable * {\n pointer-events: none;\n}\n/**\n* sass 基础颜色变量\n*/ /* 原始颜色 sass 变量 */\n/* 不折行截字 */\n/* 折行截字 @param 传入想要截到第几行 */\n@font-face {\n font-family: "Yuewen Font";\n font-style: normal;\n font-weight: normal;\n src: url("data:application/octet-stream;base64,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YhshWWO4BABiILAAUFiwQGBZZrABY2AjLiMgIDyKOCMhWS2wPSywABawESNCILAIQyAuRyNHI2EgYLAgYGawAmIgsABQWLBAYFlmsAFjIyAgPIo4LbA+LCMgLkawAiVGsBFDWFAbUllYIDxZLrEuARQrLbA/LCMgLkawAiVGsBFDWFIbUFlYIDxZLrEuARQrLbBALCMgLkawAiVGsBFDWFAbUllYIDxZIyAuRrACJUawEUNYUhtQWVggPFkusS4BFCstsEEssDgrIyAuRrACJUawEUNYUBtSWVggPFkusS4BFCstsEIssDkriiAgPLAEI0KKOCMgLkawAiVGsBFDWFAbUllYIDxZLrEuARQrsARDLrAuKy2wQyywABawBCWwBCYgICBGI0dhsAojQi5HI0cjYbAJQysjIDwgLiM4sS4BFCstsEQssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KxCgBCsAlDKyCwYFBYILBAUVizAiADIBuzAiYDGllCQiMgR7AEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYbACJUZhOCMgPCM4GyEgIEYjR7ABKyNhOCFZsS4BFCstsEUssQA4Ky6xLgEUKy2wRiyxADkrISMgIDywBCNCIzixLgEUK7AEQy6wListsEcssAAVIEewACNCsgABARUUEy6wNCotsEgssAAVIEewACNCsgABARUUEy6wNCotsEkssQABFBOwNSotsEossDcqLbBLLLAAFkUjIC4gRoojYTixLgEUKy2wTCywCCNCsEsrLbBNLLIAAEQrLbBOLLIAAUQrLbBPLLIBAEQrLbBQLLIBAUQrLbBRLLIAAEUrLbBSLLIAAUUrLbBTLLIBAEUrLbBULLIBAUUrLbBVLLMAAABBKy2wViyzAAEAQSstsFcsswEAAEErLbBYLLMBAQBBKy2wWSyzAAABQSstsFosswABAUErLbBbLLMBAAFBKy2wXCyzAQEBQSstsF0ssgAAQystsF4ssgABQystsF8ssgEAQystsGAssgEBQystsGEssgAARistsGIssgABRistsGMssgEARistsGQssgEBRistsGUsswAAAEIrLbBmLLMAAQBCKy2wZyyzAQAAQistsGgsswEBAEIr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") format("truetype");\n}\n.y-font--number {\n font-family: "Yuewen Font";\n speak: none;\n font-style: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n/**\n* sass 基础颜色变量\n*/ /* 原始颜色 sass 变量 */\n/* 不折行截字 */\n/* 折行截字 @param 传入想要截到第几行 */\n/* CSS3 Animation */\n@-webkit-keyframes y-keyframes--slide-bottom-enter {\n from {\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}\n@keyframes y-keyframes--slide-bottom-enter {\n from {\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}\n@-webkit-keyframes y-keyframes--slide-bottom-leave {\n to {\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}\n@keyframes y-keyframes--slide-bottom-leave {\n to {\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}\n@-webkit-keyframes y-keyframes--slide-top-enter {\n from {\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}\n@keyframes y-keyframes--slide-top-enter {\n from {\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}\n@-webkit-keyframes y-keyframes--slide-top-leave {\n to {\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}\n@keyframes y-keyframes--slide-top-leave {\n to {\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}\n@-webkit-keyframes y-keyframes--slide-left-enter {\n from {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n@keyframes y-keyframes--slide-left-enter {\n from {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n@-webkit-keyframes y-keyframes--slide-left-leave {\n to {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n@keyframes y-keyframes--slide-left-leave {\n to {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n@-webkit-keyframes y-keyframes--slide-right-enter {\n from {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n@keyframes y-keyframes--slide-right-enter {\n from {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n@-webkit-keyframes y-keyframes--slide-right-leave {\n to {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n@keyframes y-keyframes--slide-right-leave {\n to {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n@-webkit-keyframes y-keyframes--fade-enter {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes y-keyframes--fade-enter {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@-webkit-keyframes y-keyframes--fade-leave {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes y-keyframes--fade-leave {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@-webkit-keyframes y-keyframes--rotate {\n from {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes y-keyframes--rotate {\n from {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n }\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.y-animation--fade-enter-active {\n -webkit-animation: 0.3s y-keyframes--fade-enter both ease-out;\n animation: 0.3s y-keyframes--fade-enter both ease-out;\n}\n.y-animation--fade-leave-active {\n -webkit-animation: 0.3s y-keyframes--fade-leave both ease-in;\n animation: 0.3s y-keyframes--fade-leave both ease-in;\n}\n\n.y-animation--slide-bottom-enter-active {\n -webkit-animation: 0.3s y-keyframes--slide-bottom-enter both ease-out;\n animation: 0.3s y-keyframes--slide-bottom-enter both ease-out;\n}\n.y-animation--slide-bottom-leave-active {\n -webkit-animation: 0.3s y-keyframes--slide-bottom-leave both ease-in;\n animation: 0.3s y-keyframes--slide-bottom-leave both ease-in;\n}\n\n.y-animation--slide-top-enter-active {\n -webkit-animation: 0.3s y-keyframes--slide-top-enter both ease-out;\n animation: 0.3s y-keyframes--slide-top-enter both ease-out;\n}\n.y-animation--slide-top-leave-active {\n -webkit-animation: 0.3s y-keyframes--slide-top-leave both ease-in;\n animation: 0.3s y-keyframes--slide-top-leave both ease-in;\n}\n\n.y-animation--slide-left-enter-active {\n -webkit-animation: 0.3s y-keyframes--slide-left-enter both ease-out;\n animation: 0.3s y-keyframes--slide-left-enter both ease-out;\n}\n.y-animation--slide-left-leave-active {\n -webkit-animation: 0.3s y-keyframes--slide-left-leave both ease-in;\n animation: 0.3s y-keyframes--slide-left-leave both ease-in;\n}\n\n.y-animation--slide-right-enter-active {\n -webkit-animation: 0.3s y-keyframes--slide-right-enter both ease-out;\n animation: 0.3s y-keyframes--slide-right-enter both ease-out;\n}\n.y-animation--slide-right-leave-active {\n -webkit-animation: 0.3s y-keyframes--slide-right-leave both ease-in;\n animation: 0.3s y-keyframes--slide-right-leave both ease-in;\n}\n/**\n* sass 基础颜色变量\n*/ /* 原始颜色 sass 变量 */\n/* 不折行截字 */\n/* 折行截字 @param 传入想要截到第几行 */\n:root {\n --Primary: #68e38b;\n --Primary_1: #95f0ab;\n --Primary_2: #f0fff2;\n --Secondary: #5790df;\n --Secondary_1: #84b4f5;\n --Secondary_2: #edf1fc;\n --Surface: #191919;\n --Surface_1: #4c4c4c;\n --Surface_2: #808080;\n --Surface_3: #adadad;\n --Surface_4: #ccc;\n --Surface_5: #e0e0e0;\n --Surface_6: #ebebeb;\n --Surface_7: #f5f5f5;\n --Surface_8: #fff;\n --Background: #f5f5f5;\n --Background_1: #fff;\n --SheetBackground: #f5f5f5;\n --SheetBackground_1: #fff;\n --Outline: rgba(0, 0, 0, 0.08);\n --Segmentation: rgba(0, 0, 0, 0.04);\n --Overlay: rgba(0, 0, 0, 0.9);\n --Overlay_1: rgba(0, 0, 0, 0.6);\n --Overlay_2: rgba(0, 0, 0, 0.36);\n --Success: #40d76f;\n --Error: #e5353e;\n --Warn: #ff5e1a;\n --Warn_1: #ffe1d5;\n --Click_Active: rgba(0, 0, 0, 0.05);\n --Font_Family: PingFang SC, sans-serif;\n --Font_Family_Number: Yuewen Font;\n}\n/**\n* sass 基础颜色变量\n*/ /* 原始颜色 sass 变量 */\n/* 不折行截字 */\n/* 折行截字 @param 传入想要截到第几行 */\n/* eslint-disable */\n.y-tabs__list {\n background-color: #fff;\n}\n\n.y-tabs__list-child-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n position: relative;\n}\n.y-tabs__list-child-wrapper--left {\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n.y-tabs__list-child-wrapper--center {\n -ms-flex-pack: distribute;\n justify-content: space-around;\n}\n.y-tabs__list-child-wrapper--large {\n height: 56px;\n}\n.y-tabs__list-child-wrapper--middle {\n height: 44px;\n}\n.y-tabs__list-child-wrapper--small {\n height: 40px;\n}\n.y-tabs__list-child-wrapper--scrollable {\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n.y-tabs__list-child-wrapper--scrollable::-webkit-scrollbar {\n display: none;\n}\n\n.y-tabs-title {\n color: #4c4c4c;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n line-height: 1.4;\n height: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0 16px;\n}\n.y-tabs-title__large, .y-tabs-title__middle {\n font-size: 16px;\n}\n.y-tabs-title__large--active, .y-tabs-title__middle--active {\n color: #68e38b;\n font-size: 18px;\n font-weight: 700;\n}\n.y-tabs-title__small {\n font-size: 14px;\n}\n.y-tabs-title__small--active {\n color: #68e38b;\n font-size: 14px;\n font-weight: 500;\n}\n.y-tabs-title--scrollable {\n min-width: 60px;\n -webkit-box-flex: 1;\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n padding: 16px;\n}\n.y-tabs-title--disabled {\n color: #ccc;\n}\n\n.y-tabs__line {\n position: absolute;\n background-color: #68e38b;\n width: 12px;\n height: 3px;\n border-radius: 20px;\n bottom: 0;\n left: 0;\n}';
|
|
7
|
+
document.head.appendChild(__vite_style__);
|
|
8
|
+
const getMods = (el, mods) => {
|
|
9
|
+
if (!mods) {
|
|
10
|
+
return "";
|
|
11
|
+
}
|
|
12
|
+
if (typeof mods === "string") {
|
|
13
|
+
return ` ${el}--${mods}`;
|
|
14
|
+
}
|
|
15
|
+
if (Array.isArray(mods)) {
|
|
16
|
+
return mods.reduce((acc, cur) => acc + getMods(el, cur), "");
|
|
17
|
+
}
|
|
18
|
+
return Object.keys(mods).reduce(
|
|
19
|
+
(acc, cur) => acc + (mods[cur] ? getMods(el, cur) : ""),
|
|
20
|
+
""
|
|
21
|
+
);
|
|
22
|
+
};
|
|
23
|
+
const createBEM = (block) => {
|
|
24
|
+
return (el, mods) => {
|
|
25
|
+
let _el = el;
|
|
26
|
+
let _mods = mods;
|
|
27
|
+
if (_el && typeof _el !== "string") {
|
|
28
|
+
_mods = _el;
|
|
29
|
+
_el = "";
|
|
30
|
+
}
|
|
31
|
+
_el = _el ? `${block}__${_el}` : block;
|
|
32
|
+
return `${_el}${getMods(_el, _mods)}`;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
const createGlobalBem = () => {
|
|
36
|
+
return (el, mods) => {
|
|
37
|
+
if (!mods) {
|
|
38
|
+
return `y-${el}`;
|
|
39
|
+
}
|
|
40
|
+
return `${getMods(`y-${el}`, mods)}`;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
const defaultLang = {
|
|
44
|
+
"pull-refresh": {
|
|
45
|
+
pulling: "下拉刷新...",
|
|
46
|
+
loosing: "释放刷新...",
|
|
47
|
+
loading: "数据加载中...",
|
|
48
|
+
success: "数据已更新",
|
|
49
|
+
failed: "数据跟新失败,请稍后再试"
|
|
50
|
+
},
|
|
51
|
+
"form-item": {
|
|
52
|
+
validateMessage: "请输入正确内容"
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
vue.ref("zh-CN");
|
|
56
|
+
vue.reactive({
|
|
57
|
+
"zh-CN": defaultLang
|
|
58
|
+
});
|
|
59
|
+
const createNamespace = (name2) => {
|
|
60
|
+
const prefixedName = `y-${name2}`;
|
|
61
|
+
return [prefixedName, createBEM(prefixedName), createGlobalBem()];
|
|
62
|
+
};
|
|
63
|
+
const parsePercent = (val, baseNumber) => {
|
|
64
|
+
if (typeof val === "string" && val.includes("%")) {
|
|
65
|
+
if (!val.includes("%"))
|
|
66
|
+
return Number(val);
|
|
67
|
+
return baseNumber * Number(val.replace(/%/g, "")) / 100;
|
|
68
|
+
}
|
|
69
|
+
return Number(val);
|
|
70
|
+
};
|
|
71
|
+
const filterChildren = (children) => {
|
|
72
|
+
const vnodes = [];
|
|
73
|
+
const _filterChildren = (childrens) => {
|
|
74
|
+
if (Array.isArray(childrens)) {
|
|
75
|
+
childrens.forEach((child) => {
|
|
76
|
+
var _a;
|
|
77
|
+
if (vue.isVNode(child)) {
|
|
78
|
+
vnodes.push(child);
|
|
79
|
+
if ((_a = child.component) == null ? void 0 : _a.subTree) {
|
|
80
|
+
_filterChildren(child.component.subTree.children);
|
|
81
|
+
}
|
|
82
|
+
if (child.children) {
|
|
83
|
+
_filterChildren(child.children);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
_filterChildren(children);
|
|
90
|
+
return vnodes;
|
|
91
|
+
};
|
|
92
|
+
const sortChildren = (childrens, instance) => {
|
|
93
|
+
const vnodes = filterChildren(instance.subTree.children);
|
|
94
|
+
childrens.sort((a, b) => vnodes.indexOf(a.vnode) - vnodes.indexOf(b.vnode));
|
|
95
|
+
};
|
|
96
|
+
const setRelation = (key) => {
|
|
97
|
+
const instance = vue.getCurrentInstance();
|
|
98
|
+
const childrens = vue.reactive([]);
|
|
99
|
+
const initProvide = (value) => {
|
|
100
|
+
const addChild = (child) => {
|
|
101
|
+
if (child.proxy) {
|
|
102
|
+
childrens.push(child);
|
|
103
|
+
instance && sortChildren(childrens, instance);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const removeChild = (child) => {
|
|
107
|
+
const index = childrens.indexOf(child);
|
|
108
|
+
childrens.splice(index, 1);
|
|
109
|
+
};
|
|
110
|
+
vue.provide(key, {
|
|
111
|
+
addChild,
|
|
112
|
+
removeChild,
|
|
113
|
+
childrens,
|
|
114
|
+
...value
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
return {
|
|
118
|
+
childrens,
|
|
119
|
+
initProvide
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
const useRelation = (key) => {
|
|
123
|
+
const parent = vue.inject(key, null);
|
|
124
|
+
const currentInstance = vue.getCurrentInstance();
|
|
125
|
+
if (parent && currentInstance) {
|
|
126
|
+
const { childrens, addChild, removeChild } = parent;
|
|
127
|
+
addChild(currentInstance);
|
|
128
|
+
vue.onUnmounted(() => removeChild(currentInstance));
|
|
129
|
+
const index = vue.computed(() => childrens.indexOf(currentInstance));
|
|
130
|
+
return {
|
|
131
|
+
index,
|
|
132
|
+
parent
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
parent: null,
|
|
137
|
+
index: vue.ref(-1)
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
const [name$3, bem$3] = createNamespace("swipe-item");
|
|
141
|
+
const YSwipeItem = /* @__PURE__ */ vue.defineComponent({
|
|
142
|
+
name: name$3,
|
|
143
|
+
props: {
|
|
144
|
+
clonenNode: {
|
|
145
|
+
type: Object,
|
|
146
|
+
default: null
|
|
147
|
+
},
|
|
148
|
+
index: {
|
|
149
|
+
type: Number,
|
|
150
|
+
default: -1
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
setup(props, {
|
|
154
|
+
slots
|
|
155
|
+
}) {
|
|
156
|
+
const instance = vue.getCurrentInstance();
|
|
157
|
+
const {
|
|
158
|
+
parent
|
|
159
|
+
} = useRelation(SWIPE_PROVIDE_KEY);
|
|
160
|
+
if (!props.clonenNode && instance) {
|
|
161
|
+
parent == null ? void 0 : parent.children.push(instance);
|
|
162
|
+
}
|
|
163
|
+
const index = vue.computed(() => {
|
|
164
|
+
if (props.clonenNode) {
|
|
165
|
+
return props.index;
|
|
166
|
+
}
|
|
167
|
+
return parent == null ? void 0 : parent.children.findIndex((item) => item.proxy === (instance == null ? void 0 : instance.proxy));
|
|
168
|
+
});
|
|
169
|
+
const style2 = vue.computed(() => {
|
|
170
|
+
const width = `${(parent == null ? void 0 : parent.itemDetail.size) || 0}px`;
|
|
171
|
+
let height = "auto";
|
|
172
|
+
const spacing = `${(parent == null ? void 0 : parent.itemDetail.space) || 0}px`;
|
|
173
|
+
if ((parent == null ? void 0 : parent.props.autoHeight) && (parent == null ? void 0 : parent.activeIndex) !== index.value) {
|
|
174
|
+
height = "0";
|
|
175
|
+
}
|
|
176
|
+
if (parent == null ? void 0 : parent.props.vertical) {
|
|
177
|
+
return {
|
|
178
|
+
height: width,
|
|
179
|
+
width: height,
|
|
180
|
+
marginBottom: spacing
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return {
|
|
184
|
+
width,
|
|
185
|
+
height,
|
|
186
|
+
marginRight: spacing
|
|
187
|
+
};
|
|
188
|
+
});
|
|
189
|
+
return () => {
|
|
190
|
+
var _a, _b;
|
|
191
|
+
const isShow = ((_a = parent == null ? void 0 : parent.itemShowedList) == null ? void 0 : _a.list[index.value || 0]) || false;
|
|
192
|
+
return vue.createVNode("div", {
|
|
193
|
+
"class": bem$3(),
|
|
194
|
+
"style": style2.value
|
|
195
|
+
}, [isShow ? props.clonenNode || ((_b = slots.default) == null ? void 0 : _b.call(slots)) : null]);
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
var Position = /* @__PURE__ */ ((Position2) => {
|
|
200
|
+
Position2["left"] = "left";
|
|
201
|
+
Position2["top"] = "top";
|
|
202
|
+
Position2["bottom"] = "bottom";
|
|
203
|
+
Position2["right"] = "right";
|
|
204
|
+
return Position2;
|
|
205
|
+
})(Position || {});
|
|
206
|
+
var Align = /* @__PURE__ */ ((Align2) => {
|
|
207
|
+
Align2["start"] = "start";
|
|
208
|
+
Align2["center"] = "center";
|
|
209
|
+
Align2["end"] = "end";
|
|
210
|
+
return Align2;
|
|
211
|
+
})(Align || {});
|
|
212
|
+
const swipeProps = {
|
|
213
|
+
autoplayTime: {
|
|
214
|
+
type: Number,
|
|
215
|
+
default: 0
|
|
216
|
+
},
|
|
217
|
+
duration: {
|
|
218
|
+
type: Number,
|
|
219
|
+
default: 300
|
|
220
|
+
},
|
|
221
|
+
initIndex: {
|
|
222
|
+
type: Number,
|
|
223
|
+
default: 0
|
|
224
|
+
},
|
|
225
|
+
loop: {
|
|
226
|
+
type: Boolean,
|
|
227
|
+
default: true
|
|
228
|
+
},
|
|
229
|
+
dots: {
|
|
230
|
+
type: Boolean,
|
|
231
|
+
default: true
|
|
232
|
+
},
|
|
233
|
+
dotsPosition: {
|
|
234
|
+
type: String,
|
|
235
|
+
default: null
|
|
236
|
+
},
|
|
237
|
+
dotsColor: {
|
|
238
|
+
type: String,
|
|
239
|
+
default: ""
|
|
240
|
+
},
|
|
241
|
+
lazy: {
|
|
242
|
+
type: Boolean,
|
|
243
|
+
default: false
|
|
244
|
+
},
|
|
245
|
+
vertical: {
|
|
246
|
+
type: Boolean,
|
|
247
|
+
default: false
|
|
248
|
+
},
|
|
249
|
+
autoHeight: {
|
|
250
|
+
type: Boolean,
|
|
251
|
+
default: false
|
|
252
|
+
},
|
|
253
|
+
itemSize: {
|
|
254
|
+
type: [Number, String],
|
|
255
|
+
default: ""
|
|
256
|
+
},
|
|
257
|
+
itemSpace: {
|
|
258
|
+
type: [Number, String],
|
|
259
|
+
default: 0
|
|
260
|
+
},
|
|
261
|
+
minSwipeDistance: {
|
|
262
|
+
type: [Number, String],
|
|
263
|
+
default: "50%"
|
|
264
|
+
},
|
|
265
|
+
touchable: {
|
|
266
|
+
type: Boolean,
|
|
267
|
+
default: true
|
|
268
|
+
},
|
|
269
|
+
isFollowHand: {
|
|
270
|
+
type: Boolean,
|
|
271
|
+
default: true
|
|
272
|
+
},
|
|
273
|
+
align: {
|
|
274
|
+
type: String,
|
|
275
|
+
default: "center"
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
const [name$2, bem$2] = createNamespace("swipe");
|
|
279
|
+
const SWIPE_PROVIDE_KEY = name$2;
|
|
280
|
+
const Swipe = /* @__PURE__ */ vue.defineComponent({
|
|
281
|
+
name: name$2,
|
|
282
|
+
components: {
|
|
283
|
+
YSwipeItem
|
|
284
|
+
},
|
|
285
|
+
props: swipeProps,
|
|
286
|
+
setup(props, {
|
|
287
|
+
slots,
|
|
288
|
+
emit,
|
|
289
|
+
expose
|
|
290
|
+
}) {
|
|
291
|
+
const {
|
|
292
|
+
initProvide
|
|
293
|
+
} = setRelation(SWIPE_PROVIDE_KEY);
|
|
294
|
+
const itemList = vue.reactive([]);
|
|
295
|
+
const activeIndex = vue.ref(Number(props.initIndex));
|
|
296
|
+
const itemDetail = vue.reactive({
|
|
297
|
+
// 元素尺寸
|
|
298
|
+
size: 0,
|
|
299
|
+
// 间距
|
|
300
|
+
space: 0,
|
|
301
|
+
// 元素宽度比swipe小,占满整个视窗
|
|
302
|
+
isFillViewport: false
|
|
303
|
+
});
|
|
304
|
+
const trackDetail = vue.reactive({
|
|
305
|
+
// 偏移量
|
|
306
|
+
offset: 0,
|
|
307
|
+
// 视窗大小
|
|
308
|
+
viewportSize: 0,
|
|
309
|
+
// 重复节点个数
|
|
310
|
+
cloneNodeCount: 0
|
|
311
|
+
});
|
|
312
|
+
const swipeRef = vue.ref();
|
|
313
|
+
const swipeTrackRef = vue.ref();
|
|
314
|
+
const getBooleanList = () => {
|
|
315
|
+
const l = itemList.length;
|
|
316
|
+
const result = [];
|
|
317
|
+
for (let i = 0; i < l; i++) {
|
|
318
|
+
result.push(!props.lazy);
|
|
319
|
+
}
|
|
320
|
+
return result;
|
|
321
|
+
};
|
|
322
|
+
const checkItemShowed = () => {
|
|
323
|
+
if (!props.lazy)
|
|
324
|
+
return;
|
|
325
|
+
const itemSizeSpace = itemDetail.size + itemDetail.space;
|
|
326
|
+
const trackSize = itemList.length * itemSizeSpace;
|
|
327
|
+
let viewportLeft = -(trackDetail.offset + dragDetail.offset) - trackDetail.cloneNodeCount * itemSizeSpace;
|
|
328
|
+
if (viewportLeft < 0) {
|
|
329
|
+
viewportLeft += trackSize;
|
|
330
|
+
}
|
|
331
|
+
const viewportRight = viewportLeft + trackDetail.viewportSize;
|
|
332
|
+
for (let i = 0; i < itemList.length; i++) {
|
|
333
|
+
if (!itemShowedList.list[i]) {
|
|
334
|
+
const left = itemSizeSpace * i;
|
|
335
|
+
const right = left + itemDetail.size;
|
|
336
|
+
if (left >= viewportLeft && left < viewportRight || right > viewportLeft && right < viewportRight || left < viewportLeft && right > viewportRight) {
|
|
337
|
+
itemShowedList.list[i] = true;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
};
|
|
342
|
+
const itemShowedList = vue.reactive({
|
|
343
|
+
list: getBooleanList()
|
|
344
|
+
});
|
|
345
|
+
const initItemShowList = () => {
|
|
346
|
+
itemShowedList.list = getBooleanList();
|
|
347
|
+
checkItemShowed();
|
|
348
|
+
};
|
|
349
|
+
vue.watch(() => [...itemList], initItemShowList);
|
|
350
|
+
const setItemSize = (itemSize, viewportSize) => {
|
|
351
|
+
if (itemSize) {
|
|
352
|
+
itemDetail.size = parsePercent(itemSize, viewportSize);
|
|
353
|
+
} else {
|
|
354
|
+
itemDetail.size = viewportSize;
|
|
355
|
+
}
|
|
356
|
+
itemDetail.space = Number(props.itemSpace) || 0;
|
|
357
|
+
itemDetail.isFillViewport = itemDetail.size >= viewportSize;
|
|
358
|
+
trackDetail.viewportSize = viewportSize;
|
|
359
|
+
trackDetail.cloneNodeCount = getCloneNodeCount();
|
|
360
|
+
};
|
|
361
|
+
const getCloneNodeCount = () => {
|
|
362
|
+
if (needLoop.value) {
|
|
363
|
+
const sizeSpace = itemDetail.size + itemDetail.space;
|
|
364
|
+
if (sizeSpace === 0)
|
|
365
|
+
return 0;
|
|
366
|
+
const freeSize = trackDetail.viewportSize * 2 - sizeSpace;
|
|
367
|
+
const count = Math.ceil(freeSize / sizeSpace);
|
|
368
|
+
return Math.min(count, itemList.length - 1);
|
|
369
|
+
}
|
|
370
|
+
return 0;
|
|
371
|
+
};
|
|
372
|
+
const resize = () => {
|
|
373
|
+
if (!swipeRef.value)
|
|
374
|
+
return;
|
|
375
|
+
const {
|
|
376
|
+
width,
|
|
377
|
+
height
|
|
378
|
+
} = swipeRef.value.getBoundingClientRect();
|
|
379
|
+
if (props.vertical) {
|
|
380
|
+
setItemSize(props.itemSize, height);
|
|
381
|
+
} else {
|
|
382
|
+
setItemSize(props.itemSize, width);
|
|
383
|
+
}
|
|
384
|
+
activeIndex.value = activeIndex.value >= itemList.length ? itemList.length - 1 : activeIndex.value;
|
|
385
|
+
if (activeIndex.value < 0) {
|
|
386
|
+
activeIndex.value = 0;
|
|
387
|
+
}
|
|
388
|
+
updateTransform(activeIndex.value);
|
|
389
|
+
initItemShowList();
|
|
390
|
+
startAutoplay();
|
|
391
|
+
};
|
|
392
|
+
vue.onMounted(() => {
|
|
393
|
+
vue.nextTick(resize).catch(() => {
|
|
394
|
+
});
|
|
395
|
+
if (props.touchable && swipeRef.value) {
|
|
396
|
+
const swipeEl = swipeRef.value;
|
|
397
|
+
swipeEl.addEventListener("touchstart", onTouchStart, false);
|
|
398
|
+
swipeEl.addEventListener("mousedown", onTouchStart, false);
|
|
399
|
+
swipeEl.addEventListener("touchmove", onTouch, false);
|
|
400
|
+
swipeEl.addEventListener("mousemove", onTouch, false);
|
|
401
|
+
swipeEl.addEventListener("touchend", onTouchEnd, false);
|
|
402
|
+
swipeEl.addEventListener("mouseup", onTouchEnd, false);
|
|
403
|
+
swipeEl.addEventListener("mouseleave", onTouchEnd, false);
|
|
404
|
+
swipeEl.addEventListener("touchcancel", onTouchEnd, false);
|
|
405
|
+
}
|
|
406
|
+
window.addEventListener("resize", resize, false);
|
|
407
|
+
window.addEventListener("orientationchange", resize, false);
|
|
408
|
+
});
|
|
409
|
+
vue.onBeforeUnmount(() => {
|
|
410
|
+
stopAutoPlay();
|
|
411
|
+
if (props.touchable && swipeRef.value) {
|
|
412
|
+
const swipeEl = swipeRef.value;
|
|
413
|
+
swipeEl.removeEventListener("touchstart", onTouchStart, false);
|
|
414
|
+
swipeEl.removeEventListener("mousedown", onTouchStart, false);
|
|
415
|
+
swipeEl.removeEventListener("mousemove", onTouch, false);
|
|
416
|
+
swipeEl.removeEventListener("touchmove", onTouch, false);
|
|
417
|
+
swipeEl.removeEventListener("mouseup", onTouchEnd, false);
|
|
418
|
+
swipeEl.removeEventListener("touchend", onTouchEnd, false);
|
|
419
|
+
swipeEl.removeEventListener("mouseleave", onTouchEnd, false);
|
|
420
|
+
swipeEl.removeEventListener("touchcancel", onTouchEnd, false);
|
|
421
|
+
}
|
|
422
|
+
window.removeEventListener("resize", resize, false);
|
|
423
|
+
window.removeEventListener("orientationchange", resize, false);
|
|
424
|
+
});
|
|
425
|
+
const positionOffset = vue.computed(() => {
|
|
426
|
+
let offset = 0;
|
|
427
|
+
switch (props.align) {
|
|
428
|
+
case Align.start:
|
|
429
|
+
offset = 0;
|
|
430
|
+
break;
|
|
431
|
+
case Align.center:
|
|
432
|
+
offset = (trackDetail.viewportSize - itemDetail.size) / 2;
|
|
433
|
+
break;
|
|
434
|
+
case Align.end:
|
|
435
|
+
offset = trackDetail.viewportSize - itemDetail.size;
|
|
436
|
+
break;
|
|
437
|
+
default:
|
|
438
|
+
offset = 0;
|
|
439
|
+
}
|
|
440
|
+
return offset;
|
|
441
|
+
});
|
|
442
|
+
const needLoop = vue.computed(() => {
|
|
443
|
+
return props.loop && itemList.length > 1;
|
|
444
|
+
});
|
|
445
|
+
const updateTransform = (index) => {
|
|
446
|
+
const itemSizeSpace = itemDetail.size + itemDetail.space;
|
|
447
|
+
if (needLoop.value) {
|
|
448
|
+
trackDetail.offset = -itemSizeSpace * (index + trackDetail.cloneNodeCount) + positionOffset.value;
|
|
449
|
+
} else {
|
|
450
|
+
trackDetail.offset = -itemSizeSpace * index + positionOffset.value;
|
|
451
|
+
if (props.align !== "center") {
|
|
452
|
+
if (index === 0) {
|
|
453
|
+
trackDetail.offset = 0;
|
|
454
|
+
}
|
|
455
|
+
if (index === itemList.length - 1) {
|
|
456
|
+
trackDetail.offset = -itemSizeSpace * index + trackDetail.viewportSize - itemDetail.size;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
};
|
|
461
|
+
const afterChange = () => {
|
|
462
|
+
updateTransform(activeIndex.value);
|
|
463
|
+
emit("afterChange", activeIndex.value);
|
|
464
|
+
};
|
|
465
|
+
const getIndex = (index) => {
|
|
466
|
+
return (itemList.length + index) % itemList.length;
|
|
467
|
+
};
|
|
468
|
+
const moveTo = (index, withAnimation = true) => {
|
|
469
|
+
activeIndex.value = getIndex(index);
|
|
470
|
+
updateTransform(index);
|
|
471
|
+
checkItemShowed();
|
|
472
|
+
emit("change", activeIndex.value);
|
|
473
|
+
if (withAnimation) {
|
|
474
|
+
dragDetail.transitionEnabled = true;
|
|
475
|
+
if (swipeTrackRef.value) {
|
|
476
|
+
swipeTrackRef.value.addEventListener("transitionend", () => {
|
|
477
|
+
dragDetail.transitionEnabled = false;
|
|
478
|
+
afterChange();
|
|
479
|
+
}, {
|
|
480
|
+
once: true
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
} else {
|
|
484
|
+
afterChange();
|
|
485
|
+
}
|
|
486
|
+
};
|
|
487
|
+
const prev = (withAnimation = true) => {
|
|
488
|
+
moveTo(activeIndex.value - 1, withAnimation);
|
|
489
|
+
};
|
|
490
|
+
const next = (withAnimation = true) => {
|
|
491
|
+
moveTo(activeIndex.value + 1, withAnimation);
|
|
492
|
+
};
|
|
493
|
+
let timer = null;
|
|
494
|
+
const stopAutoPlay = () => {
|
|
495
|
+
if (props.autoplayTime && timer) {
|
|
496
|
+
clearInterval(timer);
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
const startAutoplay = () => {
|
|
500
|
+
if (props.autoplayTime && itemList.length > 1) {
|
|
501
|
+
if (timer) {
|
|
502
|
+
clearInterval(timer);
|
|
503
|
+
}
|
|
504
|
+
timer = setInterval(() => {
|
|
505
|
+
next();
|
|
506
|
+
}, Number(props.autoplayTime));
|
|
507
|
+
}
|
|
508
|
+
};
|
|
509
|
+
const dragDetail = vue.reactive({
|
|
510
|
+
// 拖拽中
|
|
511
|
+
isDragging: false,
|
|
512
|
+
// 是否首次拖动
|
|
513
|
+
isFirstTouch: true,
|
|
514
|
+
// 拖拽起始位置X
|
|
515
|
+
startX: 0,
|
|
516
|
+
// 拖拽起始位置Y
|
|
517
|
+
startY: 0,
|
|
518
|
+
// 拖拽距离
|
|
519
|
+
offset: 0,
|
|
520
|
+
// 开始拖动时间
|
|
521
|
+
startTime: /* @__PURE__ */ new Date(),
|
|
522
|
+
// 是否在执行动画
|
|
523
|
+
transitionEnabled: false
|
|
524
|
+
});
|
|
525
|
+
const onTouchStart = (e) => {
|
|
526
|
+
if (dragDetail.transitionEnabled) {
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
let clientX = 0;
|
|
530
|
+
let clientY = 0;
|
|
531
|
+
if ("touches" in e) {
|
|
532
|
+
clientX = e.touches[0].clientX;
|
|
533
|
+
clientY = e.touches[0].clientY;
|
|
534
|
+
} else {
|
|
535
|
+
clientX = e.clientX;
|
|
536
|
+
clientY = e.clientY;
|
|
537
|
+
}
|
|
538
|
+
dragDetail.startX = clientX;
|
|
539
|
+
dragDetail.startY = clientY;
|
|
540
|
+
dragDetail.isDragging = true;
|
|
541
|
+
dragDetail.isFirstTouch = true;
|
|
542
|
+
dragDetail.startTime = /* @__PURE__ */ new Date();
|
|
543
|
+
};
|
|
544
|
+
const onTouch = (e) => {
|
|
545
|
+
if (!dragDetail.isDragging) {
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
let clientX = 0;
|
|
549
|
+
let clientY = 0;
|
|
550
|
+
if ("touches" in e) {
|
|
551
|
+
clientX = e.touches[0].clientX;
|
|
552
|
+
clientY = e.touches[0].clientY;
|
|
553
|
+
} else {
|
|
554
|
+
clientX = e.clientX;
|
|
555
|
+
clientY = e.clientY;
|
|
556
|
+
}
|
|
557
|
+
const offsetX = clientX - dragDetail.startX;
|
|
558
|
+
const offsetY = clientY - dragDetail.startY;
|
|
559
|
+
if (dragDetail.isFirstTouch) {
|
|
560
|
+
dragDetail.isFirstTouch = false;
|
|
561
|
+
const isVerticalTouch = Math.abs(offsetX) < Math.abs(offsetY);
|
|
562
|
+
if (isVerticalTouch !== props.vertical) {
|
|
563
|
+
dragDetail.isDragging = false;
|
|
564
|
+
return;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
e.preventDefault();
|
|
568
|
+
dragDetail.offset = props.vertical ? offsetY : offsetX;
|
|
569
|
+
checkItemShowed();
|
|
570
|
+
emit("dragging", {
|
|
571
|
+
percent: dragDetail.offset / (itemDetail.size + itemDetail.space),
|
|
572
|
+
offset: dragDetail.offset
|
|
573
|
+
});
|
|
574
|
+
};
|
|
575
|
+
const onTouchEnd = () => {
|
|
576
|
+
if (!dragDetail.isDragging) {
|
|
577
|
+
return;
|
|
578
|
+
}
|
|
579
|
+
dragDetail.isDragging = false;
|
|
580
|
+
const now = /* @__PURE__ */ new Date();
|
|
581
|
+
const dragTime = now.getTime() - dragDetail.startTime.getTime();
|
|
582
|
+
if (canGoForward() && (Math.abs(dragDetail.offset) > minSwipeDistance.value || Math.abs(dragDetail.offset) / dragTime > 0.5)) {
|
|
583
|
+
dragDetail.offset > 0 ? prev() : next();
|
|
584
|
+
dragDetail.offset = 0;
|
|
585
|
+
} else {
|
|
586
|
+
dragDetail.offset = 0;
|
|
587
|
+
}
|
|
588
|
+
startAutoplay();
|
|
589
|
+
};
|
|
590
|
+
const minSwipeDistance = vue.computed(() => {
|
|
591
|
+
return parsePercent(props.minSwipeDistance, itemDetail.size + itemDetail.space);
|
|
592
|
+
});
|
|
593
|
+
const canGoForward = () => {
|
|
594
|
+
if (needLoop.value) {
|
|
595
|
+
return true;
|
|
596
|
+
}
|
|
597
|
+
const nextIndex = dragDetail.offset > 0 ? activeIndex.value - 1 : activeIndex.value + 1;
|
|
598
|
+
return nextIndex >= 0 && nextIndex < itemList.length;
|
|
599
|
+
};
|
|
600
|
+
const trackStyle = vue.computed(() => {
|
|
601
|
+
const offset = dragDetail.isDragging && !props.isFollowHand ? trackDetail.offset : trackDetail.offset + dragDetail.offset;
|
|
602
|
+
const style2 = {};
|
|
603
|
+
if (props.vertical) {
|
|
604
|
+
style2.transform = `translate3d(0, ${offset}px, 0)`;
|
|
605
|
+
style2.transitionDuration = dragDetail.transitionEnabled ? `${props.duration}ms` : "0ms";
|
|
606
|
+
} else {
|
|
607
|
+
style2.transform = `translate3d(${offset}px, 0, 0)`;
|
|
608
|
+
style2.transitionDuration = dragDetail.transitionEnabled ? `${props.duration}ms` : "0ms";
|
|
609
|
+
}
|
|
610
|
+
if (dragDetail.isDragging) {
|
|
611
|
+
style2.transition = "none";
|
|
612
|
+
}
|
|
613
|
+
if (props.vertical) {
|
|
614
|
+
style2.flexDirection = "column";
|
|
615
|
+
}
|
|
616
|
+
if (props.autoHeight) {
|
|
617
|
+
style2.display = "block";
|
|
618
|
+
style2.whiteSpace = "nowrap";
|
|
619
|
+
}
|
|
620
|
+
return style2;
|
|
621
|
+
});
|
|
622
|
+
const dotsClass = vue.computed(() => {
|
|
623
|
+
const position = props.dotsPosition || (props.vertical ? Position.left : Position.bottom);
|
|
624
|
+
return ["y-swipe__dots", `y-swipe__dots--${position}`];
|
|
625
|
+
});
|
|
626
|
+
expose({
|
|
627
|
+
moveTo,
|
|
628
|
+
next,
|
|
629
|
+
prev,
|
|
630
|
+
resize
|
|
631
|
+
});
|
|
632
|
+
const tabs = vue.reactive({
|
|
633
|
+
children: itemList,
|
|
634
|
+
activeIndex,
|
|
635
|
+
props,
|
|
636
|
+
itemDetail,
|
|
637
|
+
itemShowedList
|
|
638
|
+
});
|
|
639
|
+
initProvide(tabs);
|
|
640
|
+
const renderDots = () => {
|
|
641
|
+
if (props.dots) {
|
|
642
|
+
return vue.createVNode("div", {
|
|
643
|
+
"class": dotsClass.value
|
|
644
|
+
}, [itemList.map((_, index) => {
|
|
645
|
+
const className = bem$2("dot", {
|
|
646
|
+
active: index === activeIndex.value
|
|
647
|
+
});
|
|
648
|
+
return vue.createVNode("div", {
|
|
649
|
+
"class": className,
|
|
650
|
+
"style": {
|
|
651
|
+
backgroundColor: props.dotsColor
|
|
652
|
+
},
|
|
653
|
+
"key": index
|
|
654
|
+
}, null);
|
|
655
|
+
})]);
|
|
656
|
+
}
|
|
657
|
+
return null;
|
|
658
|
+
};
|
|
659
|
+
return () => {
|
|
660
|
+
var _a;
|
|
661
|
+
return vue.createVNode("div", {
|
|
662
|
+
"class": bem$2(),
|
|
663
|
+
"ref": swipeRef
|
|
664
|
+
}, [vue.createVNode("div", {
|
|
665
|
+
"class": bem$2("track"),
|
|
666
|
+
"style": trackStyle.value,
|
|
667
|
+
"ref": swipeTrackRef
|
|
668
|
+
}, [Array(trackDetail.cloneNodeCount).fill("").map((_, index) => {
|
|
669
|
+
var _a2, _b, _c;
|
|
670
|
+
const nodeIndex = getIndex(index - trackDetail.cloneNodeCount);
|
|
671
|
+
const item = (_c = (_a2 = itemList[nodeIndex]) == null ? void 0 : (_b = _a2.slots).default) == null ? void 0 : _c.call(_b);
|
|
672
|
+
return item ? vue.createVNode(YSwipeItem, {
|
|
673
|
+
"clonenNode": item,
|
|
674
|
+
"index": nodeIndex
|
|
675
|
+
}, null) : null;
|
|
676
|
+
}), (_a = slots.default) == null ? void 0 : _a.call(slots), Array(trackDetail.cloneNodeCount).fill("").map((_, index) => {
|
|
677
|
+
var _a2, _b, _c;
|
|
678
|
+
const nodeIndex = getIndex(index);
|
|
679
|
+
const item = (_c = (_a2 = itemList[nodeIndex]) == null ? void 0 : (_b = _a2.slots).default) == null ? void 0 : _c.call(_b);
|
|
680
|
+
return item ? vue.createVNode(YSwipeItem, {
|
|
681
|
+
"clonenNode": item,
|
|
682
|
+
"index": nodeIndex
|
|
683
|
+
}, null) : null;
|
|
684
|
+
})]), slots.dots ? slots.dots() : renderDots()]);
|
|
685
|
+
};
|
|
686
|
+
}
|
|
687
|
+
});
|
|
688
|
+
const [name$1, bem$1] = createNamespace("tabs-title");
|
|
689
|
+
const YTabTitle = /* @__PURE__ */ vue.defineComponent({
|
|
690
|
+
name: name$1,
|
|
691
|
+
props: {
|
|
692
|
+
active: {
|
|
693
|
+
type: Boolean,
|
|
694
|
+
default: false
|
|
695
|
+
},
|
|
696
|
+
scrollable: {
|
|
697
|
+
type: Boolean,
|
|
698
|
+
default: false
|
|
699
|
+
},
|
|
700
|
+
title: {
|
|
701
|
+
type: String,
|
|
702
|
+
default: null
|
|
703
|
+
},
|
|
704
|
+
titleSlot: {
|
|
705
|
+
type: Function,
|
|
706
|
+
default: null
|
|
707
|
+
},
|
|
708
|
+
disabled: {
|
|
709
|
+
type: Boolean,
|
|
710
|
+
default: false
|
|
711
|
+
}
|
|
712
|
+
},
|
|
713
|
+
setup(props) {
|
|
714
|
+
const {
|
|
715
|
+
parent
|
|
716
|
+
} = useRelation(TABS_KEY);
|
|
717
|
+
const titleClass = vue.computed(() => {
|
|
718
|
+
return [{
|
|
719
|
+
"y-el--clickable": !props.disabled
|
|
720
|
+
}, bem$1({
|
|
721
|
+
scrollable: props.scrollable,
|
|
722
|
+
disabled: props.disabled
|
|
723
|
+
}), bem$1(`${(parent == null ? void 0 : parent.props.size) || "middle"}`, {
|
|
724
|
+
active: props.active
|
|
725
|
+
}), parent == null ? void 0 : parent.props.titleClass, props.active ? parent == null ? void 0 : parent.props.titleActiveClass : ""];
|
|
726
|
+
});
|
|
727
|
+
const titleStyle = vue.computed(() => {
|
|
728
|
+
return {
|
|
729
|
+
...parent == null ? void 0 : parent.props.titleStyle,
|
|
730
|
+
...props.active ? {
|
|
731
|
+
...parent == null ? void 0 : parent.props.titleActiveStyle
|
|
732
|
+
} : {}
|
|
733
|
+
};
|
|
734
|
+
});
|
|
735
|
+
return () => {
|
|
736
|
+
const {
|
|
737
|
+
title,
|
|
738
|
+
titleSlot
|
|
739
|
+
} = props;
|
|
740
|
+
return vue.createVNode("div", {
|
|
741
|
+
"class": titleClass.value,
|
|
742
|
+
"title": title,
|
|
743
|
+
"style": titleStyle.value,
|
|
744
|
+
"role": "presentation"
|
|
745
|
+
}, [titleSlot ? titleSlot() : title]);
|
|
746
|
+
};
|
|
747
|
+
}
|
|
748
|
+
});
|
|
749
|
+
const unknownProp = null;
|
|
750
|
+
const acceptProps = {
|
|
751
|
+
initIndex: {
|
|
752
|
+
type: Number,
|
|
753
|
+
default: 0
|
|
754
|
+
},
|
|
755
|
+
initName: {
|
|
756
|
+
type: [Number, String],
|
|
757
|
+
default: null
|
|
758
|
+
},
|
|
759
|
+
duration: {
|
|
760
|
+
type: Number,
|
|
761
|
+
default: 300
|
|
762
|
+
},
|
|
763
|
+
lazy: {
|
|
764
|
+
type: Boolean,
|
|
765
|
+
default: false
|
|
766
|
+
},
|
|
767
|
+
lineColor: {
|
|
768
|
+
type: String,
|
|
769
|
+
default: ""
|
|
770
|
+
},
|
|
771
|
+
lineWidth: {
|
|
772
|
+
type: [Number, String],
|
|
773
|
+
default: "12px"
|
|
774
|
+
},
|
|
775
|
+
lineHeight: {
|
|
776
|
+
type: [Number, String],
|
|
777
|
+
default: "3px"
|
|
778
|
+
},
|
|
779
|
+
titleWrapperClass: unknownProp,
|
|
780
|
+
titleScrollThreshold: {
|
|
781
|
+
type: Number,
|
|
782
|
+
default: 5
|
|
783
|
+
},
|
|
784
|
+
titleStyle: {
|
|
785
|
+
type: [Object],
|
|
786
|
+
default: null
|
|
787
|
+
},
|
|
788
|
+
titleClass: {
|
|
789
|
+
type: unknownProp,
|
|
790
|
+
default: null
|
|
791
|
+
},
|
|
792
|
+
titleActiveStyle: {
|
|
793
|
+
type: [Object],
|
|
794
|
+
default: null
|
|
795
|
+
},
|
|
796
|
+
titleActiveClass: {
|
|
797
|
+
type: unknownProp,
|
|
798
|
+
default: null
|
|
799
|
+
},
|
|
800
|
+
touchable: {
|
|
801
|
+
type: Boolean,
|
|
802
|
+
default: true
|
|
803
|
+
},
|
|
804
|
+
changeWithAnimation: {
|
|
805
|
+
type: Boolean,
|
|
806
|
+
default: false
|
|
807
|
+
},
|
|
808
|
+
size: {
|
|
809
|
+
type: String,
|
|
810
|
+
default: "large"
|
|
811
|
+
},
|
|
812
|
+
align: {
|
|
813
|
+
type: String,
|
|
814
|
+
default: "center"
|
|
815
|
+
}
|
|
816
|
+
};
|
|
817
|
+
function _isSlot(s) {
|
|
818
|
+
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
|
|
819
|
+
}
|
|
820
|
+
const [name, bem] = createNamespace("tabs");
|
|
821
|
+
const TABS_KEY = name;
|
|
822
|
+
const Tabs = /* @__PURE__ */ vue.defineComponent({
|
|
823
|
+
name,
|
|
824
|
+
components: {
|
|
825
|
+
YTabTitle
|
|
826
|
+
},
|
|
827
|
+
props: acceptProps,
|
|
828
|
+
setup(props, {
|
|
829
|
+
slots,
|
|
830
|
+
emit,
|
|
831
|
+
expose
|
|
832
|
+
}) {
|
|
833
|
+
const {
|
|
834
|
+
initProvide
|
|
835
|
+
} = setRelation(TABS_KEY);
|
|
836
|
+
const inited = vue.ref(false);
|
|
837
|
+
const childrenList = vue.reactive([]);
|
|
838
|
+
const swiperRef = vue.ref();
|
|
839
|
+
const isTabScrollable = vue.computed(() => childrenList.length > props.titleScrollThreshold);
|
|
840
|
+
const getCurIndexByName = (titleName) => {
|
|
841
|
+
return childrenList.findIndex((node) => (node.$props ? node.$props.name : "") === titleName);
|
|
842
|
+
};
|
|
843
|
+
const activeIndex = vue.ref(props.initName ? getCurIndexByName(props.initName) : props.initIndex);
|
|
844
|
+
const scrollTo = (index) => {
|
|
845
|
+
activeIndex.value = index;
|
|
846
|
+
const swiper = swiperRef.value;
|
|
847
|
+
Boolean(swiper) && (swiper == null ? void 0 : swiper.moveTo(index, props.changeWithAnimation));
|
|
848
|
+
};
|
|
849
|
+
const scrollToByIndex = (index) => {
|
|
850
|
+
scrollTo(index);
|
|
851
|
+
};
|
|
852
|
+
const scrollToByName = (tabName) => {
|
|
853
|
+
const curIndex = getCurIndexByName(tabName);
|
|
854
|
+
scrollTo(curIndex);
|
|
855
|
+
};
|
|
856
|
+
expose({
|
|
857
|
+
scrollToByIndex,
|
|
858
|
+
scrollToByName
|
|
859
|
+
});
|
|
860
|
+
const titlesRef = vue.ref([]);
|
|
861
|
+
const tabListRef = vue.ref();
|
|
862
|
+
const getTitlesRef = (index) => (titleRef) => {
|
|
863
|
+
titlesRef.value[index] = titleRef;
|
|
864
|
+
};
|
|
865
|
+
const clickTitle = (index) => {
|
|
866
|
+
const {
|
|
867
|
+
title,
|
|
868
|
+
name: clickedName,
|
|
869
|
+
disabled
|
|
870
|
+
} = childrenList[index].$props || {};
|
|
871
|
+
if (activeIndex.value === index)
|
|
872
|
+
return;
|
|
873
|
+
emit(disabled ? "disabledClick" : "click", index, title, clickedName);
|
|
874
|
+
if (disabled)
|
|
875
|
+
return;
|
|
876
|
+
scrollTo(index);
|
|
877
|
+
};
|
|
878
|
+
const titleScrollToView = async () => {
|
|
879
|
+
await vue.nextTick(() => {
|
|
880
|
+
if (!isTabScrollable.value || !tabListRef.value)
|
|
881
|
+
return;
|
|
882
|
+
const tabListEl = tabListRef.value;
|
|
883
|
+
if (!tabListEl || !titlesRef.value[activeIndex.value])
|
|
884
|
+
return;
|
|
885
|
+
const curTitleEl = titlesRef.value[activeIndex.value].$el;
|
|
886
|
+
const scrollDistance = curTitleEl.offsetLeft - (tabListEl.offsetWidth - curTitleEl.offsetWidth) / 2 - tabListEl.scrollLeft;
|
|
887
|
+
tabListEl.scrollBy({
|
|
888
|
+
left: scrollDistance,
|
|
889
|
+
behavior: "smooth"
|
|
890
|
+
});
|
|
891
|
+
});
|
|
892
|
+
};
|
|
893
|
+
vue.onBeforeUpdate(() => {
|
|
894
|
+
titlesRef.value = [];
|
|
895
|
+
});
|
|
896
|
+
const lintState = vue.reactive({
|
|
897
|
+
transform: "translateX(50%)",
|
|
898
|
+
transition: "all 0ms ease-out"
|
|
899
|
+
});
|
|
900
|
+
const updateLineStyle = async () => {
|
|
901
|
+
await vue.nextTick(() => {
|
|
902
|
+
if (!titlesRef.value || titlesRef.value.length === 0)
|
|
903
|
+
return;
|
|
904
|
+
const curIndex = activeIndex.value >= titlesRef.value.length ? 0 : activeIndex.value;
|
|
905
|
+
const curTitle = titlesRef.value[curIndex].$el;
|
|
906
|
+
const left = curTitle.offsetLeft + curTitle.offsetWidth / 2;
|
|
907
|
+
lintState.transform = `translateX(${left}px) translateX(-50%)`;
|
|
908
|
+
if (inited.value) {
|
|
909
|
+
lintState.transition = `all ${props.duration}ms ease-out`;
|
|
910
|
+
}
|
|
911
|
+
inited.value = true;
|
|
912
|
+
});
|
|
913
|
+
};
|
|
914
|
+
const swipeChange = (index) => {
|
|
915
|
+
const {
|
|
916
|
+
title,
|
|
917
|
+
name: swiperedName
|
|
918
|
+
} = childrenList[index].$props || {};
|
|
919
|
+
emit("change", index, title, swiperedName);
|
|
920
|
+
activeIndex.value = index;
|
|
921
|
+
};
|
|
922
|
+
const swipeAfterChange = (index) => {
|
|
923
|
+
const {
|
|
924
|
+
title,
|
|
925
|
+
name: afterSwiperedName
|
|
926
|
+
} = childrenList[index].$props || {};
|
|
927
|
+
emit("afterChange", index, title, afterSwiperedName);
|
|
928
|
+
activeIndex.value = index;
|
|
929
|
+
};
|
|
930
|
+
const tabs = vue.reactive({
|
|
931
|
+
children: childrenList,
|
|
932
|
+
activeIndex,
|
|
933
|
+
props
|
|
934
|
+
});
|
|
935
|
+
initProvide(tabs);
|
|
936
|
+
const getSize = (value) => {
|
|
937
|
+
if (isString(value))
|
|
938
|
+
return /^\d+(\.\d+)?$/.test(value) ? `${value}px` : value;
|
|
939
|
+
return value;
|
|
940
|
+
};
|
|
941
|
+
const isString = (value) => {
|
|
942
|
+
return Object.prototype.toString.call(value) === `[object String]`;
|
|
943
|
+
};
|
|
944
|
+
vue.onMounted(async () => {
|
|
945
|
+
await updateLineStyle();
|
|
946
|
+
});
|
|
947
|
+
vue.watch(() => activeIndex.value, async () => {
|
|
948
|
+
await updateLineStyle();
|
|
949
|
+
await titleScrollToView();
|
|
950
|
+
});
|
|
951
|
+
vue.watch(() => {
|
|
952
|
+
var _a;
|
|
953
|
+
return (_a = slots.default) == null ? void 0 : _a.length;
|
|
954
|
+
}, async () => {
|
|
955
|
+
await updateLineStyle();
|
|
956
|
+
});
|
|
957
|
+
return () => {
|
|
958
|
+
let _slot;
|
|
959
|
+
return vue.createVNode("div", {
|
|
960
|
+
"class": name
|
|
961
|
+
}, [vue.createVNode("div", {
|
|
962
|
+
"class": bem("list")
|
|
963
|
+
}, [vue.createVNode("div", {
|
|
964
|
+
"ref": tabListRef,
|
|
965
|
+
"class": bem("list-child-wrapper", {
|
|
966
|
+
scrollable: isTabScrollable.value,
|
|
967
|
+
[props.size]: props.size,
|
|
968
|
+
[props.align]: props.align
|
|
969
|
+
})
|
|
970
|
+
}, [childrenList.length > 0 && childrenList.map((node, index) => {
|
|
971
|
+
return vue.createVNode(YTabTitle, {
|
|
972
|
+
"title": node.title,
|
|
973
|
+
"disabled": node.disabled,
|
|
974
|
+
"title-slot": node.$slots.title,
|
|
975
|
+
"key": index,
|
|
976
|
+
"ref": getTitlesRef(index),
|
|
977
|
+
"active": activeIndex.value === index,
|
|
978
|
+
"scrollable": isTabScrollable.value,
|
|
979
|
+
"onClick": () => clickTitle(index)
|
|
980
|
+
}, null);
|
|
981
|
+
}), vue.createVNode("div", {
|
|
982
|
+
"class": bem("line"),
|
|
983
|
+
"style": {
|
|
984
|
+
...lintState,
|
|
985
|
+
width: getSize(props.lineWidth),
|
|
986
|
+
height: getSize(props.lineHeight),
|
|
987
|
+
backgroundColor: props.lineColor
|
|
988
|
+
}
|
|
989
|
+
}, null)])]), slots.default ? vue.createVNode(Swipe, {
|
|
990
|
+
"ref": swiperRef,
|
|
991
|
+
"dots": false,
|
|
992
|
+
"loop": false,
|
|
993
|
+
"initIndex": activeIndex.value,
|
|
994
|
+
"lazy": props.lazy,
|
|
995
|
+
"touchable": props.touchable,
|
|
996
|
+
"duration": props.duration,
|
|
997
|
+
"is-follow-hand": props.changeWithAnimation,
|
|
998
|
+
"onChange": swipeChange,
|
|
999
|
+
"onAfterChange": swipeAfterChange
|
|
1000
|
+
}, _isSlot(_slot = slots.default()) ? _slot : {
|
|
1001
|
+
default: () => [_slot]
|
|
1002
|
+
}) : null]);
|
|
1003
|
+
};
|
|
1004
|
+
}
|
|
1005
|
+
});
|
|
1006
|
+
const reset = "";
|
|
1007
|
+
const libs = "";
|
|
1008
|
+
const font = "";
|
|
1009
|
+
const animation = "";
|
|
1010
|
+
const theme = "";
|
|
1011
|
+
const style = "";
|
|
1012
|
+
Tabs.install = (Vue) => {
|
|
1013
|
+
const { name: name2 } = Tabs;
|
|
1014
|
+
Vue.component(name2, Tabs);
|
|
1015
|
+
};
|
|
1016
|
+
exports2.acceptProps = acceptProps;
|
|
1017
|
+
exports2.default = Tabs;
|
|
1018
|
+
exports2.unknownProp = unknownProp;
|
|
1019
|
+
Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
1020
|
+
});
|