y-design-ssr 0.2.6 → 0.2.7
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/README.md +1 -1
- package/libs/button/index.css +1 -579
- package/libs/button/index.mjs +66 -111
- package/libs/button/index.umd.js +2 -203
- package/libs/cell/index.css +1 -1077
- package/libs/cell/index.mjs +105 -168
- package/libs/cell/index.umd.js +2 -301
- package/libs/checkbox/index.css +1 -1053
- package/libs/checkbox/index.mjs +128 -243
- package/libs/checkbox/index.umd.js +2 -370
- package/libs/checkboxGroup/index.css +1 -422
- package/libs/checkboxGroup/index.mjs +88 -174
- package/libs/checkboxGroup/index.umd.js +2 -266
- package/libs/col/index.css +1 -615
- package/libs/col/index.mjs +82 -247
- package/libs/col/index.umd.js +2 -306
- package/libs/countdown/index.css +1 -417
- package/libs/countdown/index.mjs +72 -180
- package/libs/countdown/index.umd.js +2 -232
- package/libs/dialog/index.css +1 -1405
- package/libs/dialog/index.mjs +477 -647
- package/libs/dialog/index.umd.js +2 -1129
- package/libs/empty/index.css +1 -457
- package/libs/empty/index.mjs +45 -92
- package/libs/empty/index.umd.js +2 -140
- package/libs/form/index.css +1 -477
- package/libs/form/index.mjs +127 -227
- package/libs/form/index.umd.js +2 -320
- package/libs/formItem/index.css +1 -477
- package/libs/formItem/index.mjs +127 -277
- package/libs/formItem/index.umd.js +2 -373
- package/libs/icon/index.css +1 -982
- package/libs/icon/index.mjs +59 -108
- package/libs/icon/index.umd.js +2 -187
- package/libs/index.css +1 -2902
- package/libs/index.mjs +2348 -3789
- package/libs/index.umd.js +2 -5509
- package/libs/input/index.css +1 -483
- package/libs/input/index.mjs +93 -184
- package/libs/input/index.umd.js +2 -275
- package/libs/layout/index.css +1 -684
- package/libs/layout/index.mjs +130 -230
- package/libs/layout/index.umd.js +2 -318
- package/libs/list/index.css +1 -440
- package/libs/list/index.mjs +208 -389
- package/libs/list/index.umd.js +2 -572
- package/libs/loading/index.css +1 -548
- package/libs/loading/index.mjs +119 -197
- package/libs/loading/index.umd.js +2 -322
- package/libs/locale/index.mjs +28 -0
- package/libs/locale/index.umd.js +1 -0
- package/libs/locale/package.json +6 -0
- package/libs/mask/index.css +1 -426
- package/libs/mask/index.mjs +71 -132
- package/libs/mask/index.umd.js +2 -202
- package/libs/popup/index.css +1 -465
- package/libs/popup/index.mjs +135 -211
- package/libs/popup/index.umd.js +2 -359
- package/libs/progress/index.css +1 -488
- package/libs/progress/index.mjs +129 -201
- package/libs/progress/index.umd.js +2 -323
- package/libs/pullrefresh/index.css +1 -441
- package/libs/pullrefresh/index.mjs +112 -242
- package/libs/pullrefresh/index.umd.js +2 -303
- package/libs/row/index.css +1 -485
- package/libs/row/index.mjs +90 -182
- package/libs/row/index.umd.js +2 -238
- package/libs/slider/index.css +1 -558
- package/libs/slider/index.mjs +161 -357
- package/libs/slider/index.umd.js +2 -454
- package/libs/stepper/index.css +1 -489
- package/libs/stepper/index.mjs +102 -182
- package/libs/stepper/index.umd.js +2 -270
- package/libs/style/index.css +1 -0
- package/libs/style/index.mjs +1 -0
- package/libs/style/index.umd.js +2 -0
- package/libs/style/package.json +6 -0
- package/libs/swipe/index.css +1 -506
- package/libs/swipe/index.mjs +260 -543
- package/libs/swipe/index.umd.js +2 -704
- package/libs/swipeItem/index.css +1 -424
- package/libs/swipeItem/index.mjs +53 -112
- package/libs/swipeItem/index.umd.js +2 -155
- package/libs/switch/index.css +1 -472
- package/libs/switch/index.mjs +63 -122
- package/libs/switch/index.umd.js +2 -201
- package/libs/tab/index.mjs +69 -132
- package/libs/tab/index.umd.js +1 -191
- package/libs/tabs/index.css +1 -514
- package/libs/tabs/index.mjs +411 -752
- package/libs/tabs/index.umd.js +2 -1021
- package/libs/toast/index.css +1 -1050
- package/libs/toast/index.mjs +115 -184
- package/libs/toast/index.umd.js +2 -307
- package/libs/tooltip/index.css +1 -514
- package/libs/tooltip/index.mjs +156 -294
- package/libs/tooltip/index.umd.js +2 -417
- package/libs/utils/index.mjs +76 -0
- package/libs/utils/index.umd.js +1 -0
- package/libs/utils/package.json +6 -0
- package/package.json +1 -4
package/libs/list/index.umd.js
CHANGED
|
@@ -1,572 +1,2 @@
|
|
|
1
|
-
(function(global, factory) {
|
|
2
|
-
|
|
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.y-list {\n overflow: auto;\n position: relative;\n}\n.y-list__item {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.y-list--loading, .y-list--finished, .y-list--error {\n font-size: 14px;\n text-align: center;\n padding: 8px 0;\n}\n.y-list--error {\n cursor: pointer;\n}\n\n.y-list--virtual .y-list__content {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n}';
|
|
7
|
-
document.head.appendChild(__vite_style__);
|
|
8
|
-
const tagTester = (name2) => {
|
|
9
|
-
return (obj) => {
|
|
10
|
-
return Object.prototype.toString.call(obj) === `[object ${name2}]`;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
const isNumber = tagTester("Number");
|
|
14
|
-
const getMods = (el, mods) => {
|
|
15
|
-
if (!mods) {
|
|
16
|
-
return "";
|
|
17
|
-
}
|
|
18
|
-
if (typeof mods === "string") {
|
|
19
|
-
return ` ${el}--${mods}`;
|
|
20
|
-
}
|
|
21
|
-
if (Array.isArray(mods)) {
|
|
22
|
-
return mods.reduce((acc, cur) => acc + getMods(el, cur), "");
|
|
23
|
-
}
|
|
24
|
-
return Object.keys(mods).reduce(
|
|
25
|
-
(acc, cur) => acc + (mods[cur] ? getMods(el, cur) : ""),
|
|
26
|
-
""
|
|
27
|
-
);
|
|
28
|
-
};
|
|
29
|
-
const createBEM = (block) => {
|
|
30
|
-
return (el, mods) => {
|
|
31
|
-
let _el = el;
|
|
32
|
-
let _mods = mods;
|
|
33
|
-
if (_el && typeof _el !== "string") {
|
|
34
|
-
_mods = _el;
|
|
35
|
-
_el = "";
|
|
36
|
-
}
|
|
37
|
-
_el = _el ? `${block}__${_el}` : block;
|
|
38
|
-
return `${_el}${getMods(_el, _mods)}`;
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
const createGlobalBem = () => {
|
|
42
|
-
return (el, mods) => {
|
|
43
|
-
if (!mods) {
|
|
44
|
-
return `y-${el}`;
|
|
45
|
-
}
|
|
46
|
-
return `${getMods(`y-${el}`, mods)}`;
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
const defaultLang = {
|
|
50
|
-
"pull-refresh": {
|
|
51
|
-
pulling: "下拉刷新...",
|
|
52
|
-
loosing: "释放刷新...",
|
|
53
|
-
loading: "数据加载中...",
|
|
54
|
-
success: "数据已更新",
|
|
55
|
-
failed: "数据跟新失败,请稍后再试"
|
|
56
|
-
},
|
|
57
|
-
"form-item": {
|
|
58
|
-
validateMessage: "请输入正确内容"
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
vue.ref("zh-CN");
|
|
62
|
-
vue.reactive({
|
|
63
|
-
"zh-CN": defaultLang
|
|
64
|
-
});
|
|
65
|
-
const createNamespace = (name2) => {
|
|
66
|
-
const prefixedName = `y-${name2}`;
|
|
67
|
-
return [prefixedName, createBEM(prefixedName), createGlobalBem()];
|
|
68
|
-
};
|
|
69
|
-
const parseUnit = (val) => {
|
|
70
|
-
if (isNaN(Number(val)) && typeof val === "string") {
|
|
71
|
-
return val;
|
|
72
|
-
}
|
|
73
|
-
return `${val}px`;
|
|
74
|
-
};
|
|
75
|
-
const parseFlexDirection = (location) => {
|
|
76
|
-
switch (location) {
|
|
77
|
-
case "top":
|
|
78
|
-
return "column-reverse";
|
|
79
|
-
case "bottom":
|
|
80
|
-
return "column";
|
|
81
|
-
case "left":
|
|
82
|
-
return "row-reverse";
|
|
83
|
-
case "right":
|
|
84
|
-
return "row";
|
|
85
|
-
default:
|
|
86
|
-
return "column";
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
const [name, bem$1] = createNamespace("loading");
|
|
90
|
-
const _props = {
|
|
91
|
-
// Loading icon 的颜色
|
|
92
|
-
color: {
|
|
93
|
-
type: String,
|
|
94
|
-
default: ""
|
|
95
|
-
},
|
|
96
|
-
// 背景色
|
|
97
|
-
bgColor: {
|
|
98
|
-
type: String,
|
|
99
|
-
default: ""
|
|
100
|
-
},
|
|
101
|
-
bgBorderRadius: {
|
|
102
|
-
type: [Number, String],
|
|
103
|
-
default: "16px"
|
|
104
|
-
},
|
|
105
|
-
// 粗细
|
|
106
|
-
thick: {
|
|
107
|
-
type: [Number, String],
|
|
108
|
-
default: 8
|
|
109
|
-
},
|
|
110
|
-
// 方向
|
|
111
|
-
direction: {
|
|
112
|
-
type: String,
|
|
113
|
-
default: "forward"
|
|
114
|
-
},
|
|
115
|
-
// 大小
|
|
116
|
-
size: {
|
|
117
|
-
type: [Number, String],
|
|
118
|
-
default: "24px"
|
|
119
|
-
},
|
|
120
|
-
padding: {
|
|
121
|
-
type: [Number, String],
|
|
122
|
-
default: ""
|
|
123
|
-
},
|
|
124
|
-
// 文案
|
|
125
|
-
text: {
|
|
126
|
-
type: String,
|
|
127
|
-
default: ""
|
|
128
|
-
},
|
|
129
|
-
// 文案位置
|
|
130
|
-
textLocation: {
|
|
131
|
-
type: String,
|
|
132
|
-
default: "bottom"
|
|
133
|
-
},
|
|
134
|
-
// 文案大小
|
|
135
|
-
textSize: {
|
|
136
|
-
type: [Number, String],
|
|
137
|
-
default: ""
|
|
138
|
-
},
|
|
139
|
-
// 文案颜色
|
|
140
|
-
textColor: {
|
|
141
|
-
type: String,
|
|
142
|
-
default: ""
|
|
143
|
-
},
|
|
144
|
-
// 布局位置
|
|
145
|
-
position: {
|
|
146
|
-
type: String,
|
|
147
|
-
default: "relative"
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
const YLoading = /* @__PURE__ */ vue.defineComponent({
|
|
151
|
-
name,
|
|
152
|
-
props: _props,
|
|
153
|
-
setup(props, {
|
|
154
|
-
slots
|
|
155
|
-
}) {
|
|
156
|
-
return () => {
|
|
157
|
-
var _a, _b;
|
|
158
|
-
const {
|
|
159
|
-
position,
|
|
160
|
-
textLocation,
|
|
161
|
-
bgColor,
|
|
162
|
-
bgBorderRadius,
|
|
163
|
-
size,
|
|
164
|
-
padding,
|
|
165
|
-
color,
|
|
166
|
-
thick,
|
|
167
|
-
direction,
|
|
168
|
-
text,
|
|
169
|
-
textColor,
|
|
170
|
-
textSize
|
|
171
|
-
} = props;
|
|
172
|
-
const showText = ((_a = slots.default) == null ? void 0 : _a.call(slots)) || text;
|
|
173
|
-
return vue.createVNode("div", {
|
|
174
|
-
"class": bem$1({
|
|
175
|
-
[position]: position !== "relative"
|
|
176
|
-
})
|
|
177
|
-
}, [vue.createVNode("div", {
|
|
178
|
-
"class": bem$1("bg", {
|
|
179
|
-
[position]: position !== "relative"
|
|
180
|
-
}),
|
|
181
|
-
"style": {
|
|
182
|
-
flexDirection: parseFlexDirection(textLocation),
|
|
183
|
-
backgroundColor: bgColor,
|
|
184
|
-
borderRadius: parseUnit(bgBorderRadius),
|
|
185
|
-
padding: parseUnit(padding)
|
|
186
|
-
}
|
|
187
|
-
}, [vue.createVNode("span", {
|
|
188
|
-
"class": bem$1("icon-wrapper"),
|
|
189
|
-
"style": {
|
|
190
|
-
width: parseUnit(size),
|
|
191
|
-
height: parseUnit(size)
|
|
192
|
-
}
|
|
193
|
-
}, [((_b = slots.icon) == null ? void 0 : _b.call(slots)) || vue.createVNode("svg", {
|
|
194
|
-
"class": bem$1("icon", {
|
|
195
|
-
[direction]: direction
|
|
196
|
-
}),
|
|
197
|
-
"viewBox": "25 25 50 50"
|
|
198
|
-
}, [vue.createVNode("circle", {
|
|
199
|
-
"class": bem$1("icon-circle"),
|
|
200
|
-
"style": {
|
|
201
|
-
stroke: color,
|
|
202
|
-
strokeWidth: parseUnit(thick)
|
|
203
|
-
},
|
|
204
|
-
"cx": "50",
|
|
205
|
-
"cy": "50",
|
|
206
|
-
"r": "20",
|
|
207
|
-
"fill": "none"
|
|
208
|
-
}, null)])]), showText && vue.createVNode("span", {
|
|
209
|
-
"class": bem$1("text", {
|
|
210
|
-
[textLocation]: textLocation
|
|
211
|
-
}),
|
|
212
|
-
"style": {
|
|
213
|
-
color: textColor,
|
|
214
|
-
fontSize: parseUnit(textSize)
|
|
215
|
-
}
|
|
216
|
-
}, [showText])])]);
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
const [cname, bem] = createNamespace("list");
|
|
221
|
-
const List = /* @__PURE__ */ vue.defineComponent({
|
|
222
|
-
name: cname,
|
|
223
|
-
props: {
|
|
224
|
-
// 加载中 文案
|
|
225
|
-
loadingText: {
|
|
226
|
-
type: String,
|
|
227
|
-
default: "加载中..."
|
|
228
|
-
},
|
|
229
|
-
// 加载完成 文案
|
|
230
|
-
finishedText: {
|
|
231
|
-
type: String,
|
|
232
|
-
default: "没有更多了~"
|
|
233
|
-
},
|
|
234
|
-
// 加载失败 文案
|
|
235
|
-
errorText: {
|
|
236
|
-
type: String,
|
|
237
|
-
default: "请求失败,点击重新加载"
|
|
238
|
-
},
|
|
239
|
-
// 容器高度
|
|
240
|
-
height: {
|
|
241
|
-
type: [Number, String],
|
|
242
|
-
default: "auto"
|
|
243
|
-
},
|
|
244
|
-
// 唯一键名称
|
|
245
|
-
keyName: {
|
|
246
|
-
type: String,
|
|
247
|
-
default: "_index"
|
|
248
|
-
},
|
|
249
|
-
// 列表数组
|
|
250
|
-
dataSource: {
|
|
251
|
-
type: Array,
|
|
252
|
-
default: () => []
|
|
253
|
-
},
|
|
254
|
-
// 是否在初始化时立即执行滚动位置检查
|
|
255
|
-
immediateCheck: {
|
|
256
|
-
type: Boolean,
|
|
257
|
-
default: true
|
|
258
|
-
},
|
|
259
|
-
// 滚动条与底部距离小于多少时触发加载
|
|
260
|
-
loadOffset: {
|
|
261
|
-
type: Number,
|
|
262
|
-
default: 300
|
|
263
|
-
},
|
|
264
|
-
// 是否使用虚拟列表
|
|
265
|
-
virtual: {
|
|
266
|
-
type: Boolean,
|
|
267
|
-
default: false
|
|
268
|
-
},
|
|
269
|
-
// 缓冲区比例
|
|
270
|
-
bufferScale: {
|
|
271
|
-
type: Number,
|
|
272
|
-
default: 1
|
|
273
|
-
},
|
|
274
|
-
// 列表子项预估高度
|
|
275
|
-
itemHeight: {
|
|
276
|
-
type: [String, Number],
|
|
277
|
-
default: "80"
|
|
278
|
-
},
|
|
279
|
-
// 是否是不定高度子项
|
|
280
|
-
dynamicItemHeight: {
|
|
281
|
-
type: Boolean,
|
|
282
|
-
default: false
|
|
283
|
-
}
|
|
284
|
-
},
|
|
285
|
-
emits: ["load"],
|
|
286
|
-
setup(props, {
|
|
287
|
-
slots,
|
|
288
|
-
emit,
|
|
289
|
-
expose
|
|
290
|
-
}) {
|
|
291
|
-
const visibleHeightRef = vue.ref(0);
|
|
292
|
-
const pageModeRef = vue.ref(false);
|
|
293
|
-
const stateRef = vue.ref("normal");
|
|
294
|
-
const listRef = vue.ref();
|
|
295
|
-
const contentRef = vue.ref();
|
|
296
|
-
const scrollBarRef = vue.ref();
|
|
297
|
-
const itemsRef = vue.ref([]);
|
|
298
|
-
const startIndexRef = vue.ref(0);
|
|
299
|
-
const endIndexRef = vue.ref(0);
|
|
300
|
-
const positionsRef = vue.ref([]);
|
|
301
|
-
const listContainerRef = vue.computed(() => {
|
|
302
|
-
return isNumber(props.height) ? `${props.height}px` : props.height;
|
|
303
|
-
});
|
|
304
|
-
const listHeightRef = vue.computed(() => {
|
|
305
|
-
const listHeight = positionsRef.value.length ? positionsRef.value[positionsRef.value.length - 1].bottom : 0;
|
|
306
|
-
return listHeight;
|
|
307
|
-
});
|
|
308
|
-
const realRenderListRef = vue.computed(() => {
|
|
309
|
-
if (props.virtual) {
|
|
310
|
-
const start = startIndexRef.value - aboveCountRef.value;
|
|
311
|
-
const end = endIndexRef.value + belowCountRef.value;
|
|
312
|
-
return _dataSourceRef.value.slice(start, end);
|
|
313
|
-
}
|
|
314
|
-
return _dataSourceRef.value;
|
|
315
|
-
});
|
|
316
|
-
const aboveCountRef = vue.computed(() => {
|
|
317
|
-
const above = Math.min(startIndexRef.value, props.bufferScale * visibleCountRef.value);
|
|
318
|
-
return above;
|
|
319
|
-
});
|
|
320
|
-
const belowCountRef = vue.computed(() => {
|
|
321
|
-
const below = Math.min(props.dataSource.length - endIndexRef.value, props.bufferScale * visibleCountRef.value);
|
|
322
|
-
return below;
|
|
323
|
-
});
|
|
324
|
-
const visibleCountRef = vue.computed(() => {
|
|
325
|
-
const count = Math.ceil(visibleHeightRef.value / parseInt(String(props.itemHeight)));
|
|
326
|
-
return count;
|
|
327
|
-
});
|
|
328
|
-
const _dataSourceRef = vue.computed(() => {
|
|
329
|
-
return props.dataSource.map((item, index) => {
|
|
330
|
-
item[props.keyName] = index;
|
|
331
|
-
return item;
|
|
332
|
-
});
|
|
333
|
-
});
|
|
334
|
-
const getScrollTop = () => {
|
|
335
|
-
if (pageModeRef.value) {
|
|
336
|
-
return document.documentElement.scrollTop || document.body.scrollTop;
|
|
337
|
-
}
|
|
338
|
-
return listRef.value.scrollTop;
|
|
339
|
-
};
|
|
340
|
-
const getScrollHeight = () => {
|
|
341
|
-
if (pageModeRef.value) {
|
|
342
|
-
return document.documentElement.scrollHeight;
|
|
343
|
-
}
|
|
344
|
-
return listRef.value.scrollHeight;
|
|
345
|
-
};
|
|
346
|
-
const loadData = () => {
|
|
347
|
-
if (stateRef.value === "loading")
|
|
348
|
-
return;
|
|
349
|
-
stateRef.value = "loading";
|
|
350
|
-
emit("load", (state) => {
|
|
351
|
-
if (stateRef.value !== "loading")
|
|
352
|
-
return;
|
|
353
|
-
switch (state) {
|
|
354
|
-
case "error":
|
|
355
|
-
stateRef.value = "error";
|
|
356
|
-
break;
|
|
357
|
-
case "finished":
|
|
358
|
-
stateRef.value = "finished";
|
|
359
|
-
if (props.virtual) {
|
|
360
|
-
initPositions();
|
|
361
|
-
}
|
|
362
|
-
if (props.virtual && props.dynamicItemHeight) {
|
|
363
|
-
updatePositions();
|
|
364
|
-
}
|
|
365
|
-
break;
|
|
366
|
-
default:
|
|
367
|
-
stateRef.value = "normal";
|
|
368
|
-
if (props.virtual) {
|
|
369
|
-
updatePositions();
|
|
370
|
-
if (props.dataSource.length < visibleCountRef.value + belowCountRef.value) {
|
|
371
|
-
loadData();
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
});
|
|
376
|
-
};
|
|
377
|
-
const checkIsScrollToBottom = () => {
|
|
378
|
-
if (stateRef.value !== "normal")
|
|
379
|
-
return;
|
|
380
|
-
if (getScrollHeight() - getScrollTop() - visibleHeightRef.value <= props.loadOffset) {
|
|
381
|
-
loadData();
|
|
382
|
-
}
|
|
383
|
-
};
|
|
384
|
-
const initPositions = () => {
|
|
385
|
-
positionsRef.value = _dataSourceRef.value.map((_, index) => {
|
|
386
|
-
const height = parseInt(String(props.itemHeight));
|
|
387
|
-
return {
|
|
388
|
-
index,
|
|
389
|
-
height,
|
|
390
|
-
top: index * height,
|
|
391
|
-
bottom: (index + 1) * height
|
|
392
|
-
};
|
|
393
|
-
});
|
|
394
|
-
};
|
|
395
|
-
const updatePositions = () => {
|
|
396
|
-
initPositions();
|
|
397
|
-
for (let i = 1; i < positionsRef.value.length; i++) {
|
|
398
|
-
positionsRef.value[i].top = positionsRef.value[i - 1].bottom;
|
|
399
|
-
positionsRef.value[i].bottom = positionsRef.value[i].top + positionsRef.value[i].height;
|
|
400
|
-
}
|
|
401
|
-
};
|
|
402
|
-
const binarySearch = (list, value) => {
|
|
403
|
-
let start = 0;
|
|
404
|
-
let end = list.length - 1;
|
|
405
|
-
let tempIndex = -1;
|
|
406
|
-
while (start <= end) {
|
|
407
|
-
const midIndex = Math.floor((start + end) / 2);
|
|
408
|
-
const midValue = list[midIndex].bottom;
|
|
409
|
-
if (midValue === value) {
|
|
410
|
-
return midIndex + 1;
|
|
411
|
-
} else if (midValue < value) {
|
|
412
|
-
start = midIndex + 1;
|
|
413
|
-
} else if (midValue > value) {
|
|
414
|
-
if (tempIndex === -1 || tempIndex > midIndex) {
|
|
415
|
-
tempIndex = midIndex;
|
|
416
|
-
}
|
|
417
|
-
end = midIndex - 1;
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
return tempIndex;
|
|
421
|
-
};
|
|
422
|
-
const getStartIndex = (scrollTop) => {
|
|
423
|
-
return binarySearch(positionsRef.value, scrollTop);
|
|
424
|
-
};
|
|
425
|
-
const handleScroll = () => {
|
|
426
|
-
checkIsScrollToBottom();
|
|
427
|
-
if (props.virtual) {
|
|
428
|
-
const scrollTop = getScrollTop();
|
|
429
|
-
updateVisibleData(scrollTop);
|
|
430
|
-
}
|
|
431
|
-
};
|
|
432
|
-
const updateVisibleData = (scrollTopParam) => {
|
|
433
|
-
if (!contentRef.value)
|
|
434
|
-
return;
|
|
435
|
-
const scrollTop = scrollTopParam || 0;
|
|
436
|
-
if (props.dynamicItemHeight) {
|
|
437
|
-
startIndexRef.value = getStartIndex(scrollTop);
|
|
438
|
-
endIndexRef.value = startIndexRef.value + visibleCountRef.value;
|
|
439
|
-
const startOffset = positionsRef.value[startIndexRef.value - aboveCountRef.value].top ? positionsRef.value[startIndexRef.value - aboveCountRef.value].top : 0;
|
|
440
|
-
contentRef.value.style.transform = `translate3d(0, ${startOffset}px, 0)`;
|
|
441
|
-
} else {
|
|
442
|
-
startIndexRef.value = Math.floor(scrollTop / parseInt(String(props.itemHeight)));
|
|
443
|
-
endIndexRef.value = startIndexRef.value + visibleCountRef.value;
|
|
444
|
-
const startOffset = startIndexRef.value * parseInt(String(props.itemHeight)) - aboveCountRef.value * parseInt(String(props.itemHeight));
|
|
445
|
-
contentRef.value.style.transform = `translate3d(0, ${startOffset}px, 0)`;
|
|
446
|
-
}
|
|
447
|
-
};
|
|
448
|
-
const updateItemSize = () => {
|
|
449
|
-
if (!contentRef.value || !scrollBarRef.value)
|
|
450
|
-
return;
|
|
451
|
-
const nodes = contentRef.value.children;
|
|
452
|
-
if (!(nodes && nodes.length > 0))
|
|
453
|
-
return;
|
|
454
|
-
[...nodes].forEach((node) => {
|
|
455
|
-
if (node instanceof HTMLDivElement) {
|
|
456
|
-
const rect = node.getBoundingClientRect();
|
|
457
|
-
const {
|
|
458
|
-
height
|
|
459
|
-
} = rect;
|
|
460
|
-
const index = Number(node.dataset.index);
|
|
461
|
-
const oldHeight = positionsRef.value[index].height;
|
|
462
|
-
const dValue = oldHeight - height;
|
|
463
|
-
if (dValue) {
|
|
464
|
-
positionsRef.value[index].bottom -= dValue;
|
|
465
|
-
positionsRef.value[index].height = height;
|
|
466
|
-
for (let k = index + 1; k < positionsRef.value.length; k++) {
|
|
467
|
-
positionsRef.value[k].top = positionsRef.value[k - 1].bottom;
|
|
468
|
-
positionsRef.value[k].bottom -= dValue;
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
});
|
|
473
|
-
};
|
|
474
|
-
expose({
|
|
475
|
-
...props,
|
|
476
|
-
checkIsScrollToBottom,
|
|
477
|
-
loadData
|
|
478
|
-
});
|
|
479
|
-
vue.onMounted(() => {
|
|
480
|
-
if (props.height !== "auto") {
|
|
481
|
-
pageModeRef.value = false;
|
|
482
|
-
visibleHeightRef.value = listRef.value.clientHeight;
|
|
483
|
-
} else if (props.height === "auto") {
|
|
484
|
-
pageModeRef.value = true;
|
|
485
|
-
visibleHeightRef.value = document.documentElement.clientHeight;
|
|
486
|
-
document.addEventListener("scroll", handleScroll);
|
|
487
|
-
}
|
|
488
|
-
if (props.virtual) {
|
|
489
|
-
initPositions();
|
|
490
|
-
updateVisibleData();
|
|
491
|
-
}
|
|
492
|
-
if (props.immediateCheck) {
|
|
493
|
-
checkIsScrollToBottom();
|
|
494
|
-
}
|
|
495
|
-
});
|
|
496
|
-
vue.onUpdated(async () => {
|
|
497
|
-
var _a, _b;
|
|
498
|
-
if (props.virtual && props.dynamicItemHeight) {
|
|
499
|
-
await vue.nextTick();
|
|
500
|
-
if (!((_b = (_a = contentRef.value) == null ? void 0 : _a.children) == null ? void 0 : _b.length)) {
|
|
501
|
-
return;
|
|
502
|
-
}
|
|
503
|
-
updateItemSize();
|
|
504
|
-
}
|
|
505
|
-
});
|
|
506
|
-
vue.onUnmounted(() => {
|
|
507
|
-
if (pageModeRef.value) {
|
|
508
|
-
document.removeEventListener("scroll", handleScroll);
|
|
509
|
-
}
|
|
510
|
-
});
|
|
511
|
-
return () => {
|
|
512
|
-
return vue.createVNode("div", {
|
|
513
|
-
"ref": listRef,
|
|
514
|
-
"class": `${bem()} ${props.virtual ? bem({
|
|
515
|
-
virtual: true
|
|
516
|
-
}) : ""}`,
|
|
517
|
-
"style": {
|
|
518
|
-
height: listContainerRef.value
|
|
519
|
-
},
|
|
520
|
-
"onScroll": handleScroll
|
|
521
|
-
}, [props.virtual && vue.createVNode("div", {
|
|
522
|
-
"ref": scrollBarRef,
|
|
523
|
-
"class": bem("phantom"),
|
|
524
|
-
"style": {
|
|
525
|
-
height: `${listHeightRef.value}px`
|
|
526
|
-
}
|
|
527
|
-
}, null), vue.createVNode("div", {
|
|
528
|
-
"ref": contentRef,
|
|
529
|
-
"class": bem("content")
|
|
530
|
-
}, [realRenderListRef.value.map((item) => {
|
|
531
|
-
var _a;
|
|
532
|
-
return vue.createVNode("div", {
|
|
533
|
-
"ref": itemsRef,
|
|
534
|
-
"class": bem("item"),
|
|
535
|
-
"data-index": item._index
|
|
536
|
-
}, [(_a = slots.default) == null ? void 0 : _a.call(slots, {
|
|
537
|
-
item
|
|
538
|
-
})]);
|
|
539
|
-
})]), stateRef.value === "loading" && vue.createVNode("div", {
|
|
540
|
-
"class": bem({
|
|
541
|
-
loading: true
|
|
542
|
-
})
|
|
543
|
-
}, [slots.loading ? slots.loading() : vue.createVNode(YLoading, {
|
|
544
|
-
"text-location": "right"
|
|
545
|
-
}, {
|
|
546
|
-
default: () => [vue.createTextVNode("加载中...")]
|
|
547
|
-
})]), stateRef.value === "finished" && vue.createVNode("div", {
|
|
548
|
-
"class": bem({
|
|
549
|
-
finished: true
|
|
550
|
-
})
|
|
551
|
-
}, [props.finishedText]), stateRef.value === "error" && vue.createVNode("div", {
|
|
552
|
-
"class": bem("error"),
|
|
553
|
-
"role": "presentation",
|
|
554
|
-
"onClick": loadData
|
|
555
|
-
}, [props.errorText])]);
|
|
556
|
-
};
|
|
557
|
-
}
|
|
558
|
-
});
|
|
559
|
-
const reset = "";
|
|
560
|
-
const libs = "";
|
|
561
|
-
const font = "";
|
|
562
|
-
const animation = "";
|
|
563
|
-
const theme = "";
|
|
564
|
-
const style = "";
|
|
565
|
-
List.install = (Vue) => {
|
|
566
|
-
const { name: name2 } = List;
|
|
567
|
-
Vue.component(name2, List);
|
|
568
|
-
};
|
|
569
|
-
exports2.List = List;
|
|
570
|
-
exports2.default = List;
|
|
571
|
-
Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
572
|
-
});
|
|
1
|
+
(function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.list={},c.Vue))})(this,function(c,e){"use strict";var p=document.createElement("style");p.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/LCMgLkawAiVGsBFDWFIbUFlYIDxZLrEuARQrLbBALCMgLkawAiVGsBFDWFAbUllYIDxZIyAuRrACJUawEUNYUhtQWVggPFkusS4BFCstsEEssDgrIyAuRrACJUawEUNYUBtSWVggPFkusS4BFCstsEIssDkriiAgPLAEI0KKOCMgLkawAiVGsBFDWFAbUllYIDxZLrEuARQrsARDLrAuKy2wQyywABawBCWwBCYgICBGI0dhsAojQi5HI0cjYbAJQysjIDwgLiM4sS4BFCstsEQssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KxCgBCsAlDKyCwYFBYILBAUVizAiADIBuzAiYDGllCQiMgR7AEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYbACJUZhOCMgPCM4GyEgIEYjR7ABKyNhOCFZsS4BFCstsEUssQA4Ky6xLgEUKy2wRiyxADkrISMgIDywBCNCIzixLgEUK7AEQy6wListsEcssAAVIEewACNCsgABARUUEy6wNCotsEgssAAVIEewACNCsgABARUUEy6wNCotsEkssQABFBOwNSotsEossDcqLbBLLLAAFkUjIC4gRoojYTixLgEUKy2wTCywCCNCsEsrLbBNLLIAAEQrLbBOLLIAAUQrLbBPLLIBAEQrLbBQLLIBAUQrLbBRLLIAAEUrLbBSLLIAAUUrLbBTLLIBAEUrLbBULLIBAUUrLbBVLLMAAABBKy2wViyzAAEAQSstsFcsswEAAEErLbBYLLMBAQBBKy2wWSyzAAABQSstsFosswABAUErLbBbLLMBAAFBKy2wXCyzAQEBQSstsF0ssgAAQystsF4ssgABQystsF8ssgEAQystsGAssgEBQystsGEssgAARistsGIssgABRistsGMssgEARistsGQssgEBRistsGUsswAAAEIrLbBmLLMAAQBCKy2wZyyzAQAAQistsGgsswEBAEIr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) 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-list{overflow:auto;position:relative}.y-list__item{-webkit-box-sizing:border-box;box-sizing:border-box}.y-list--loading,.y-list--finished,.y-list--error{font-size:14px;text-align:center;padding:8px 0}.y-list--error{cursor:pointer}.y-list--virtual .y-list__content{position:absolute;left:0;top:0;right:0}
|
|
2
|
+
`,document.head.appendChild(p);const J=(A=>s=>Object.prototype.toString.call(s)===`[object ${A}]`)("Number"),k=(A,s)=>s?typeof s=="string"?` ${A}--${s}`:Array.isArray(s)?s.reduce((l,r)=>l+k(A,r),""):Object.keys(s).reduce((l,r)=>l+(s[r]?k(A,r):""),""):"",T=A=>(s,l)=>{let r=s,g=l;return r&&typeof r!="string"&&(g=r,r=""),r=r?`${A}__${r}`:A,`${r}${k(r,g)}`},z=()=>(A,s)=>s?`${k(`y-${A}`,s)}`:`y-${A}`,O={"pull-refresh":{pulling:"下拉刷新...",loosing:"释放刷新...",loading:"数据加载中...",success:"数据已更新",failed:"数据跟新失败,请稍后再试"},"form-item":{validateMessage:"请输入正确内容"}};e.ref("zh-CN"),e.reactive({"zh-CN":O});const V=A=>{const s=`y-${A}`;return[s,T(s),z()]},b=A=>isNaN(Number(A))&&typeof A=="string"?A:`${A}px`,P=A=>{switch(A){case"top":return"column-reverse";case"bottom":return"column";case"left":return"row-reverse";case"right":return"row";default:return"column"}},[_,u]=V("loading"),X={color:{type:String,default:""},bgColor:{type:String,default:""},bgBorderRadius:{type:[Number,String],default:"16px"},thick:{type:[Number,String],default:8},direction:{type:String,default:"forward"},size:{type:[Number,String],default:"24px"},padding:{type:[Number,String],default:""},text:{type:String,default:""},textLocation:{type:String,default:"bottom"},textSize:{type:[Number,String],default:""},textColor:{type:String,default:""},position:{type:String,default:"relative"}},q=e.defineComponent({name:_,props:X,setup(A,{slots:s}){return()=>{var S,N;const{position:l,textLocation:r,bgColor:g,bgBorderRadius:d,size:o,padding:I,color:y,thick:Y,direction:D,text:B,textColor:Q,textSize:i}=A,U=((S=s.default)==null?void 0:S.call(s))||B;return e.createVNode("div",{class:u({[l]:l!=="relative"})},[e.createVNode("div",{class:u("bg",{[l]:l!=="relative"}),style:{flexDirection:P(r),backgroundColor:g,borderRadius:b(d),padding:b(I)}},[e.createVNode("span",{class:u("icon-wrapper"),style:{width:b(o),height:b(o)}},[((N=s.icon)==null?void 0:N.call(s))||e.createVNode("svg",{class:u("icon",{[D]:D}),viewBox:"25 25 50 50"},[e.createVNode("circle",{class:u("icon-circle"),style:{stroke:y,strokeWidth:b(Y)},cx:"50",cy:"50",r:"20",fill:"none"},null)])]),U&&e.createVNode("span",{class:u("text",{[r]:r}),style:{color:Q,fontSize:b(i)}},[U])])])}}}),[$,w]=V("list"),h=e.defineComponent({name:$,props:{loadingText:{type:String,default:"加载中..."},finishedText:{type:String,default:"没有更多了~"},errorText:{type:String,default:"请求失败,点击重新加载"},height:{type:[Number,String],default:"auto"},keyName:{type:String,default:"_index"},dataSource:{type:Array,default:()=>[]},immediateCheck:{type:Boolean,default:!0},loadOffset:{type:Number,default:300},virtual:{type:Boolean,default:!1},bufferScale:{type:Number,default:1},itemHeight:{type:[String,Number],default:"80"},dynamicItemHeight:{type:Boolean,default:!1}},emits:["load"],setup(A,{slots:s,emit:l,expose:r}){const g=e.ref(0),d=e.ref(!1),o=e.ref("normal"),I=e.ref(),y=e.ref(),Y=e.ref(),D=e.ref([]),B=e.ref(0),Q=e.ref(0),i=e.ref([]),U=e.computed(()=>J(A.height)?`${A.height}px`:A.height),S=e.computed(()=>i.value.length?i.value[i.value.length-1].bottom:0),N=e.computed(()=>{if(A.virtual){const t=B.value-M.value,a=Q.value+j.value;return x.value.slice(t,a)}return x.value}),M=e.computed(()=>Math.min(B.value,A.bufferScale*L.value)),j=e.computed(()=>Math.min(A.dataSource.length-Q.value,A.bufferScale*L.value)),L=e.computed(()=>Math.ceil(g.value/parseInt(String(A.itemHeight)))),x=e.computed(()=>A.dataSource.map((t,a)=>(t[A.keyName]=a,t))),K=()=>d.value?document.documentElement.scrollTop||document.body.scrollTop:I.value.scrollTop,AA=()=>d.value?document.documentElement.scrollHeight:I.value.scrollHeight,W=()=>{o.value!=="loading"&&(o.value="loading",l("load",t=>{if(o.value==="loading")switch(t){case"error":o.value="error";break;case"finished":o.value="finished",A.virtual&&G(),A.virtual&&A.dynamicItemHeight&&Z();break;default:o.value="normal",A.virtual&&(Z(),A.dataSource.length<L.value+j.value&&W())}}))},v=()=>{o.value==="normal"&&AA()-K()-g.value<=A.loadOffset&&W()},G=()=>{i.value=x.value.map((t,a)=>{const n=parseInt(String(A.itemHeight));return{index:a,height:n,top:a*n,bottom:(a+1)*n}})},Z=()=>{G();for(let t=1;t<i.value.length;t++)i.value[t].top=i.value[t-1].bottom,i.value[t].bottom=i.value[t].top+i.value[t].height},eA=(t,a)=>{let n=0,C=t.length-1,f=-1;for(;n<=C;){const E=Math.floor((n+C)/2),m=t[E].bottom;if(m===a)return E+1;m<a?n=E+1:m>a&&((f===-1||f>E)&&(f=E),C=E-1)}return f},tA=t=>eA(i.value,t),R=()=>{if(v(),A.virtual){const t=K();H(t)}},H=t=>{if(!y.value)return;const a=t||0;if(A.dynamicItemHeight){B.value=tA(a),Q.value=B.value+L.value;const n=i.value[B.value-M.value].top?i.value[B.value-M.value].top:0;y.value.style.transform=`translate3d(0, ${n}px, 0)`}else{B.value=Math.floor(a/parseInt(String(A.itemHeight))),Q.value=B.value+L.value;const n=B.value*parseInt(String(A.itemHeight))-M.value*parseInt(String(A.itemHeight));y.value.style.transform=`translate3d(0, ${n}px, 0)`}},sA=()=>{if(!y.value||!Y.value)return;const t=y.value.children;t&&t.length>0&&[...t].forEach(a=>{if(a instanceof HTMLDivElement){const n=a.getBoundingClientRect(),{height:C}=n,f=Number(a.dataset.index),m=i.value[f].height-C;if(m){i.value[f].bottom-=m,i.value[f].height=C;for(let F=f+1;F<i.value.length;F++)i.value[F].top=i.value[F-1].bottom,i.value[F].bottom-=m}}})};return r({...A,checkIsScrollToBottom:v,loadData:W}),e.onMounted(()=>{A.height!=="auto"?(d.value=!1,g.value=I.value.clientHeight):A.height==="auto"&&(d.value=!0,g.value=document.documentElement.clientHeight,document.addEventListener("scroll",R)),A.virtual&&(G(),H()),A.immediateCheck&&v()}),e.onUpdated(async()=>{var t,a;if(A.virtual&&A.dynamicItemHeight){if(await e.nextTick(),!((a=(t=y.value)==null?void 0:t.children)!=null&&a.length))return;sA()}}),e.onUnmounted(()=>{d.value&&document.removeEventListener("scroll",R)}),()=>e.createVNode("div",{ref:I,class:`${w()} ${A.virtual?w({virtual:!0}):""}`,style:{height:U.value},onScroll:R},[A.virtual&&e.createVNode("div",{ref:Y,class:w("phantom"),style:{height:`${S.value}px`}},null),e.createVNode("div",{ref:y,class:w("content")},[N.value.map(t=>{var a;return e.createVNode("div",{ref:D,class:w("item"),"data-index":t._index},[(a=s.default)==null?void 0:a.call(s,{item:t})])})]),o.value==="loading"&&e.createVNode("div",{class:w({loading:!0})},[s.loading?s.loading():e.createVNode(q,{"text-location":"right"},{default:()=>[e.createTextVNode("加载中...")]})]),o.value==="finished"&&e.createVNode("div",{class:w({finished:!0})},[A.finishedText]),o.value==="error"&&e.createVNode("div",{class:w("error"),role:"presentation",onClick:W},[A.errorText])])}}),iA="",rA="",oA="",nA="",lA="",BA="";h.install=A=>{const{name:s}=h;A.component(s,h)},c.List=h,c.default=h,Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|