@touchvue/ui 1.0.0-beta.56 → 1.0.0-beta.57
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/es/components/msg/index.d.ts +22 -7
- package/es/components/scroll/index.d.ts +0 -48
- package/es/components/scroll/src/Scroll.vue.d.ts +0 -28
- package/es/components/scroll/src/scroll.d.ts +0 -21
- package/es/packages/components/box/src/box.vue2.mjs +2 -1
- package/es/packages/components/box/src/box.vue2.mjs.map +1 -1
- package/es/packages/components/msg/index.d.mjs.map +1 -1
- package/es/packages/components/msg/index.mjs +26 -15
- package/es/packages/components/msg/index.mjs.map +1 -1
- package/es/packages/components/msg/src/msg.vue2.mjs +4 -4
- package/es/packages/components/msg/src/msg.vue2.mjs.map +1 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs +2 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/Scroll.vue2.mjs +6 -217
- package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll.mjs +0 -21
- package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
- package/es/packages/components/select/src/select.vue2.mjs +120 -125
- package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
- package/es/packages/directives/tip/src/tip.mjs +13 -0
- package/es/packages/directives/tip/src/tip.mjs.map +1 -1
- package/es/packages/locale/lang/en-US.mjs +4 -0
- package/es/packages/locale/lang/en-US.mjs.map +1 -1
- package/es/packages/locale/lang/zh-CN.mjs +4 -0
- package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
- package/lib/components/msg/index.d.ts +22 -7
- package/lib/components/scroll/index.d.ts +0 -48
- package/lib/components/scroll/src/Scroll.vue.d.ts +0 -28
- package/lib/components/scroll/src/scroll.d.ts +0 -21
- package/lib/packages/components/box/src/box.vue2.js +2 -1
- package/lib/packages/components/box/src/box.vue2.js.map +1 -1
- package/lib/packages/components/msg/index.d.js.map +1 -1
- package/lib/packages/components/msg/index.js +26 -15
- package/lib/packages/components/msg/index.js.map +1 -1
- package/lib/packages/components/msg/src/msg.vue2.js +4 -4
- package/lib/packages/components/msg/src/msg.vue2.js.map +1 -1
- package/lib/packages/components/pic/src/Pic.vue2.js +2 -1
- package/lib/packages/components/pic/src/Pic.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/Scroll.vue2.js +6 -217
- package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll.js +0 -21
- package/lib/packages/components/scroll/src/scroll.js.map +1 -1
- package/lib/packages/components/select/src/select.vue2.js +120 -125
- package/lib/packages/components/select/src/select.vue2.js.map +1 -1
- package/lib/packages/directives/tip/src/tip.js +13 -0
- package/lib/packages/directives/tip/src/tip.js.map +1 -1
- package/lib/packages/locale/lang/en-US.js +4 -0
- package/lib/packages/locale/lang/en-US.js.map +1 -1
- package/lib/packages/locale/lang/zh-CN.js +4 -0
- package/lib/packages/locale/lang/zh-CN.js.map +1 -1
- package/package.json +1 -1
- package/theme/components/index.css +70 -133
- package/theme/index.css +70 -133
- package/theme/skin/default.css +70 -133
|
@@ -12,19 +12,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
12
12
|
const props = __props;
|
|
13
13
|
const emit = __emit;
|
|
14
14
|
const scrollRef = ref(null);
|
|
15
|
-
const barThumb = ref(null);
|
|
16
|
-
const horizontalBarThumb = ref(null);
|
|
17
15
|
const isScrolling = ref(false);
|
|
18
|
-
const isHovering = ref(false);
|
|
19
16
|
let isTabTriggeredScroll = false;
|
|
20
17
|
let scrollUpdateTimer = null;
|
|
21
|
-
let isDragging = ref(false);
|
|
22
|
-
let isHorizontalDragging = ref(false);
|
|
23
|
-
let startY = 0;
|
|
24
|
-
let startX = 0;
|
|
25
|
-
let startScrollTop = 0;
|
|
26
|
-
let startScrollLeft = 0;
|
|
27
|
-
const hasHorizontalScroll = ref(false);
|
|
28
18
|
const scrollPoints = ref([]);
|
|
29
19
|
const bindValue = computed(() => props.modelValue || props.value);
|
|
30
20
|
const currentPointValue = ref(bindValue.value || null);
|
|
@@ -37,15 +27,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
37
27
|
}
|
|
38
28
|
});
|
|
39
29
|
provide("scrollValue", currentPointValue);
|
|
40
|
-
const barVisibleClass = computed(() => {
|
|
41
|
-
return `bar-${String(props.barDisplay)}`;
|
|
42
|
-
});
|
|
43
|
-
const checkHorizontalScroll = () => {
|
|
44
|
-
if (scrollRef.value) {
|
|
45
|
-
const { scrollWidth, clientWidth } = scrollRef.value;
|
|
46
|
-
hasHorizontalScroll.value = scrollWidth > clientWidth;
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
30
|
const setScrollPoints = () => {
|
|
50
31
|
if (!scrollRef.value)
|
|
51
32
|
return;
|
|
@@ -183,95 +164,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
183
164
|
}
|
|
184
165
|
}
|
|
185
166
|
});
|
|
186
|
-
if (props.virtual) {
|
|
187
|
-
window.addEventListener("mousemove", onMousemove);
|
|
188
|
-
window.addEventListener("mouseup", onMouseup);
|
|
189
|
-
window.addEventListener("mouseleave", onMouseup);
|
|
190
|
-
if (scrollRef.value) {
|
|
191
|
-
scrollRef.value.addEventListener("mouseenter", onMouseenter);
|
|
192
|
-
scrollRef.value.addEventListener("mouseleave", onMouseleave);
|
|
193
|
-
}
|
|
194
|
-
nextTick(() => {
|
|
195
|
-
checkHorizontalScroll();
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
167
|
});
|
|
199
168
|
onUnmounted(() => {
|
|
200
|
-
if (props.virtual) {
|
|
201
|
-
window.removeEventListener("mousemove", onMousemove);
|
|
202
|
-
window.removeEventListener("mouseup", onMouseup);
|
|
203
|
-
window.removeEventListener("mouseleave", onMouseup);
|
|
204
|
-
if (scrollRef.value) {
|
|
205
|
-
scrollRef.value.removeEventListener("mouseenter", onMouseenter);
|
|
206
|
-
scrollRef.value.removeEventListener("mouseleave", onMouseleave);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
169
|
if (scrollUpdateTimer) {
|
|
210
170
|
clearTimeout(scrollUpdateTimer);
|
|
211
171
|
scrollUpdateTimer = null;
|
|
212
172
|
}
|
|
213
173
|
});
|
|
214
|
-
const onMouseenter = () => {
|
|
215
|
-
isHovering.value = true;
|
|
216
|
-
};
|
|
217
|
-
const onMouseleave = () => {
|
|
218
|
-
if (!isDragging.value && !isHorizontalDragging.value) {
|
|
219
|
-
isHovering.value = false;
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
const onThumbMousedown = (e) => {
|
|
223
|
-
if (!scrollRef.value || !props.virtual)
|
|
224
|
-
return;
|
|
225
|
-
e.preventDefault();
|
|
226
|
-
e.stopPropagation();
|
|
227
|
-
if (scrollRef.value) {
|
|
228
|
-
scrollRef.value.classList.add("dragging-scrollbar");
|
|
229
|
-
}
|
|
230
|
-
startY = e.clientY;
|
|
231
|
-
startScrollTop = scrollRef.value.scrollTop;
|
|
232
|
-
isDragging.value = true;
|
|
233
|
-
};
|
|
234
|
-
const onHorizontalThumbMousedown = (e) => {
|
|
235
|
-
if (!scrollRef.value || !props.virtual)
|
|
236
|
-
return;
|
|
237
|
-
e.preventDefault();
|
|
238
|
-
e.stopPropagation();
|
|
239
|
-
if (scrollRef.value) {
|
|
240
|
-
scrollRef.value.classList.add("dragging-scrollbar-horizontal");
|
|
241
|
-
}
|
|
242
|
-
startX = e.clientX;
|
|
243
|
-
startScrollLeft = scrollRef.value.scrollLeft;
|
|
244
|
-
isHorizontalDragging.value = true;
|
|
245
|
-
};
|
|
246
|
-
const onMousemove = (e) => {
|
|
247
|
-
if (isDragging.value && scrollRef.value && barThumb.value) {
|
|
248
|
-
const deltaY = e.clientY - startY;
|
|
249
|
-
const contentHeight = scrollRef.value.scrollHeight;
|
|
250
|
-
const containerHeight = scrollRef.value.clientHeight;
|
|
251
|
-
const ratio = containerHeight / contentHeight;
|
|
252
|
-
scrollRef.value.scrollTop = startScrollTop + deltaY / ratio;
|
|
253
|
-
}
|
|
254
|
-
if (isHorizontalDragging.value && scrollRef.value && horizontalBarThumb.value) {
|
|
255
|
-
const deltaX = e.clientX - startX;
|
|
256
|
-
const contentWidth = scrollRef.value.scrollWidth;
|
|
257
|
-
const containerWidth = scrollRef.value.clientWidth;
|
|
258
|
-
const ratio = containerWidth / contentWidth;
|
|
259
|
-
scrollRef.value.scrollLeft = startScrollLeft + deltaX / ratio;
|
|
260
|
-
}
|
|
261
|
-
};
|
|
262
|
-
const onMouseup = () => {
|
|
263
|
-
isDragging.value = false;
|
|
264
|
-
isHorizontalDragging.value = false;
|
|
265
|
-
if (!isHovering.value) {
|
|
266
|
-
setTimeout(() => {
|
|
267
|
-
isHovering.value = false;
|
|
268
|
-
}, 300);
|
|
269
|
-
}
|
|
270
|
-
if (scrollRef.value) {
|
|
271
|
-
scrollRef.value.classList.remove("dragging-scrollbar");
|
|
272
|
-
scrollRef.value.classList.remove("dragging-scrollbar-horizontal");
|
|
273
|
-
}
|
|
274
|
-
};
|
|
275
174
|
const handleScroll = (event) => {
|
|
276
175
|
emit("scroll", event);
|
|
277
176
|
if (isTabTriggeredScroll) {
|
|
@@ -305,9 +204,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
305
204
|
emit("update:modelValue", pointValue);
|
|
306
205
|
emit("update:value", pointValue);
|
|
307
206
|
notifyScrollPointsActive(pointValue);
|
|
308
|
-
if (props.virtual && barThumb.value) {
|
|
309
|
-
updateVirtualScrollbar();
|
|
310
|
-
}
|
|
311
207
|
}
|
|
312
208
|
});
|
|
313
209
|
}
|
|
@@ -318,25 +214,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
318
214
|
emit("scrollEnd");
|
|
319
215
|
}, 100);
|
|
320
216
|
};
|
|
321
|
-
const updateVirtualScrollbar = () => {
|
|
322
|
-
if (!scrollRef.value || !props.virtual)
|
|
323
|
-
return;
|
|
324
|
-
nextTick(() => {
|
|
325
|
-
const { scrollTop, scrollHeight, clientHeight } = scrollRef.value;
|
|
326
|
-
const thumbHeight = Math.max(30, clientHeight / scrollHeight * clientHeight);
|
|
327
|
-
const thumbTop = scrollTop / (scrollHeight - clientHeight) * (clientHeight - thumbHeight);
|
|
328
|
-
if (barThumb.value) {
|
|
329
|
-
barThumb.value.style.transform = `translateY(${thumbTop}px)`;
|
|
330
|
-
}
|
|
331
|
-
});
|
|
332
|
-
};
|
|
333
217
|
const to = (target) => {
|
|
334
218
|
if (!scrollRef.value)
|
|
335
219
|
return;
|
|
336
220
|
if (target === "$bottom") {
|
|
337
221
|
scrollRef.value.scrollTo({
|
|
338
222
|
top: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,
|
|
339
|
-
behavior:
|
|
223
|
+
behavior: "auto"
|
|
340
224
|
});
|
|
341
225
|
return;
|
|
342
226
|
}
|
|
@@ -346,7 +230,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
346
230
|
const relativeTop = elementTop - containerTop + scrollRef.value.scrollTop;
|
|
347
231
|
scrollRef.value.scrollTo({
|
|
348
232
|
top: relativeTop,
|
|
349
|
-
behavior:
|
|
233
|
+
behavior: "auto"
|
|
350
234
|
});
|
|
351
235
|
return;
|
|
352
236
|
}
|
|
@@ -355,7 +239,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
355
239
|
scrollRef.value.scrollTo({
|
|
356
240
|
top: position,
|
|
357
241
|
left: 0,
|
|
358
|
-
behavior:
|
|
242
|
+
behavior: "auto"
|
|
359
243
|
});
|
|
360
244
|
return;
|
|
361
245
|
}
|
|
@@ -364,30 +248,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
364
248
|
return;
|
|
365
249
|
}
|
|
366
250
|
};
|
|
367
|
-
const thumbStyle = computed(() => {
|
|
368
|
-
if (!scrollRef.value || !props.virtual)
|
|
369
|
-
return {};
|
|
370
|
-
const { clientHeight, scrollHeight, scrollTop } = scrollRef.value;
|
|
371
|
-
const thumbHeight = Math.max(30, clientHeight / scrollHeight * clientHeight);
|
|
372
|
-
const thumbTop = scrollTop / (scrollHeight - clientHeight) * (clientHeight - thumbHeight);
|
|
373
|
-
return {
|
|
374
|
-
height: `${thumbHeight}px`,
|
|
375
|
-
transform: `translateY(${thumbTop}px)`,
|
|
376
|
-
width: "6px"
|
|
377
|
-
};
|
|
378
|
-
});
|
|
379
|
-
const horizontalThumbStyle = computed(() => {
|
|
380
|
-
if (!scrollRef.value || !props.virtual)
|
|
381
|
-
return {};
|
|
382
|
-
const { clientWidth, scrollWidth, scrollLeft } = scrollRef.value;
|
|
383
|
-
const thumbWidth = Math.max(30, clientWidth / scrollWidth * clientWidth);
|
|
384
|
-
const thumbLeft = scrollLeft / (scrollWidth - clientWidth) * (clientWidth - thumbWidth);
|
|
385
|
-
return {
|
|
386
|
-
width: `${thumbWidth}px`,
|
|
387
|
-
transform: `translateX(${thumbLeft}px)`,
|
|
388
|
-
height: "6px"
|
|
389
|
-
};
|
|
390
|
-
});
|
|
391
251
|
const setStyle = computed(() => {
|
|
392
252
|
const obj = {};
|
|
393
253
|
if (props.height) {
|
|
@@ -401,9 +261,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
401
261
|
});
|
|
402
262
|
const setClass = computed(() => {
|
|
403
263
|
let arr = [];
|
|
404
|
-
if (props.virtual) {
|
|
405
|
-
arr.push("hide-scrollbar");
|
|
406
|
-
}
|
|
407
264
|
if (props.mode) {
|
|
408
265
|
arr.push(`mode-${props.mode}`);
|
|
409
266
|
}
|
|
@@ -443,11 +300,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
443
300
|
break;
|
|
444
301
|
}
|
|
445
302
|
}
|
|
446
|
-
if (props.virtual) {
|
|
447
|
-
obj.overflow = "auto";
|
|
448
|
-
obj.position = "relative";
|
|
449
|
-
obj.width = "100%";
|
|
450
|
-
}
|
|
451
303
|
return obj;
|
|
452
304
|
});
|
|
453
305
|
function adjust() {
|
|
@@ -472,18 +324,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
472
324
|
}
|
|
473
325
|
}
|
|
474
326
|
});
|
|
475
|
-
if (props.virtual) {
|
|
476
|
-
window.addEventListener("mousemove", onMousemove);
|
|
477
|
-
window.addEventListener("mouseup", onMouseup);
|
|
478
|
-
window.addEventListener("mouseleave", onMouseup);
|
|
479
|
-
if (scrollRef.value) {
|
|
480
|
-
scrollRef.value.addEventListener("mouseenter", onMouseenter);
|
|
481
|
-
scrollRef.value.addEventListener("mouseleave", onMouseleave);
|
|
482
|
-
}
|
|
483
|
-
nextTick(() => {
|
|
484
|
-
checkHorizontalScroll();
|
|
485
|
-
});
|
|
486
|
-
}
|
|
487
327
|
}
|
|
488
328
|
__expose({
|
|
489
329
|
to,
|
|
@@ -491,7 +331,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
491
331
|
isScrolling,
|
|
492
332
|
setScrollPoints,
|
|
493
333
|
findScrollPoint,
|
|
494
|
-
checkHorizontalScroll,
|
|
495
334
|
adjust
|
|
496
335
|
});
|
|
497
336
|
return (_ctx, _cache) => {
|
|
@@ -500,63 +339,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
500
339
|
flex: _ctx.flex ? _ctx.flex : null,
|
|
501
340
|
style: normalizeStyle(setStyle.value)
|
|
502
341
|
}, [
|
|
503
|
-
createCommentVNode(" \u81EA\u5B9A\u4E49\u6EDA\u52A8\u6761 "),
|
|
504
|
-
props.virtual ? (openBlock(), createElementBlock(
|
|
505
|
-
"div",
|
|
506
|
-
{
|
|
507
|
-
key: 0,
|
|
508
|
-
class: normalizeClass(["to-scroll-bar", [barVisibleClass.value, { active: isScrolling.value || isHovering.value }]])
|
|
509
|
-
},
|
|
510
|
-
[
|
|
511
|
-
createElementVNode(
|
|
512
|
-
"div",
|
|
513
|
-
{
|
|
514
|
-
ref_key: "barThumb",
|
|
515
|
-
ref: barThumb,
|
|
516
|
-
class: "to-scroll-thumb",
|
|
517
|
-
style: normalizeStyle(thumbStyle.value),
|
|
518
|
-
onMousedown: onThumbMousedown
|
|
519
|
-
},
|
|
520
|
-
null,
|
|
521
|
-
36
|
|
522
|
-
/* STYLE, NEED_HYDRATION */
|
|
523
|
-
)
|
|
524
|
-
],
|
|
525
|
-
2
|
|
526
|
-
/* CLASS */
|
|
527
|
-
)) : createCommentVNode("v-if", true),
|
|
528
|
-
createCommentVNode(" \u6A2A\u5411\u6EDA\u52A8\u6761 "),
|
|
529
|
-
props.virtual && hasHorizontalScroll.value ? (openBlock(), createElementBlock(
|
|
530
|
-
"div",
|
|
531
|
-
{
|
|
532
|
-
key: 1,
|
|
533
|
-
class: normalizeClass(["to-scroll-bar horizontal", [barVisibleClass.value, { active: isScrolling.value || isHovering.value }]])
|
|
534
|
-
},
|
|
535
|
-
[
|
|
536
|
-
createElementVNode(
|
|
537
|
-
"div",
|
|
538
|
-
{
|
|
539
|
-
ref_key: "horizontalBarThumb",
|
|
540
|
-
ref: horizontalBarThumb,
|
|
541
|
-
class: "to-scroll-thumb",
|
|
542
|
-
style: normalizeStyle(horizontalThumbStyle.value),
|
|
543
|
-
onMousedown: onHorizontalThumbMousedown
|
|
544
|
-
},
|
|
545
|
-
null,
|
|
546
|
-
36
|
|
547
|
-
/* STYLE, NEED_HYDRATION */
|
|
548
|
-
)
|
|
549
|
-
],
|
|
550
|
-
2
|
|
551
|
-
/* CLASS */
|
|
552
|
-
)) : createCommentVNode("v-if", true),
|
|
553
342
|
createCommentVNode(" \u6EDA\u52A8\u5185\u5BB9\u533A\u57DF "),
|
|
554
343
|
createElementVNode(
|
|
555
344
|
"div",
|
|
556
345
|
{
|
|
557
346
|
ref_key: "scrollRef",
|
|
558
347
|
ref: scrollRef,
|
|
559
|
-
class:
|
|
348
|
+
class: "to-scroll-content",
|
|
560
349
|
style: normalizeStyle(setContentStyle.value),
|
|
561
350
|
onScroll: handleScroll
|
|
562
351
|
},
|
|
@@ -564,8 +353,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
564
353
|
createCommentVNode(" \u9ED8\u8BA4\u5185\u5BB9\u63D2\u69FD "),
|
|
565
354
|
renderSlot(_ctx.$slots, "default")
|
|
566
355
|
],
|
|
567
|
-
|
|
568
|
-
/*
|
|
356
|
+
36
|
|
357
|
+
/* STYLE, NEED_HYDRATION */
|
|
569
358
|
)
|
|
570
359
|
], 14, ["flex"]);
|
|
571
360
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scroll.vue2.mjs","sources":["../../../../../../packages/components/scroll/src/Scroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToScroll'\n});\n</script>\n<template>\n\t<div class=\"to-scroll\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<!-- 自定义滚动条 -->\n\t\t<div v-if=\"props.virtual\" class=\"to-scroll-bar\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\n\t\t\t<div ref=\"barThumb\" class=\"to-scroll-thumb\" :style=\"thumbStyle\" @mousedown=\"onThumbMousedown\"></div>\n\t\t</div>\n\n\t\t<!-- 横向滚动条 -->\n\t\t<div v-if=\"props.virtual && hasHorizontalScroll\" class=\"to-scroll-bar horizontal\" :class=\"[barVisibleClass, { active: isScrolling || isHovering }]\">\n\t\t\t<div ref=\"horizontalBarThumb\" class=\"to-scroll-thumb\" :style=\"horizontalThumbStyle\" @mousedown=\"onHorizontalThumbMousedown\"></div>\n\t\t</div>\n\n\t\t<!-- 滚动内容区域 -->\n\t\t<div ref=\"scrollRef\" class=\"to-scroll-content\" :style=\"setContentStyle\" :class=\"{ 'virtual-scroll': props.virtual }\" @scroll=\"handleScroll\">\n\t\t\t<!-- 默认内容插槽 -->\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, nextTick, onMounted, onUnmounted, provide } from 'vue'\nimport { scrollProps, ScrollContext } from './scroll'\n\n\n\nconst props = defineProps(scrollProps)\nconst emit = defineEmits<{\n\t(e: 'scroll', event: Event): void\n\t(e: 'scrollEnd'): void\n\t(e: 'change', position: number): void\n\t(e: 'update:value', position: number | string): void\n\t(e: 'update:modelValue', position: number | string): void\n\t(e: 'bottom'): void\n\t(e: 'top'): void\n}>()\n\nconst scrollRef = ref<HTMLElement | null>(null)\nconst barThumb = ref<HTMLElement | null>(null)\nconst horizontalBarThumb = ref<HTMLElement | null>(null)\nconst isScrolling = ref(false)\nconst isHovering = ref(false)\n// 添加一个标志来标识是否由tab点击导致的滚动\nlet isTabTriggeredScroll = false\n// 添加自动滚动的节流控制\nlet autoScrollThrottleTimer: ReturnType<typeof setTimeout> | null = null\n// 滚动防抖定时器\nlet scrollUpdateTimer: ReturnType<typeof setTimeout> | null = null\nlet isDragging = ref(false)\nlet isHorizontalDragging = ref(false)\nlet startY = 0\nlet startX = 0\nlet startScrollTop = 0\nlet startScrollLeft = 0\nconst hasHorizontalScroll = ref(false)\n// 存储滚动点信息\nconst scrollPoints = ref<Array<{ value: string | number; start: number; end: number }>>([])\n// 获取当前绑定值(优先使用modelValue,兼容value)\nconst bindValue = computed(() => props.modelValue || props.value)\n// 当前选中的滚动点值\nconst currentPointValue = ref<string | number | null>(bindValue.value || null)\n\nlet scrollEventDebounceTimer: ReturnType<typeof setTimeout> | null = null\n// 提供给子组件的上下文\nprovide<ScrollContext>('ToScroll', {\n\tregisterScrollPoint: (_el: HTMLElement, _value: string | number) => {\n\t\t// 在下一个渲染周期更新滚动点\n\t\tnextTick(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\t}\n})\n\n// 提供当前值给子组件\nprovide('scrollValue', currentPointValue)\n\n// 计算属性\nconst barVisibleClass = computed(() => {\n\treturn `bar-${String(props.barDisplay)}`\n})\n\n// 检查是否需要横向滚动条\nconst checkHorizontalScroll = () => {\n\tif (scrollRef.value) {\n\t\tconst { scrollWidth, clientWidth } = scrollRef.value\n\t\thasHorizontalScroll.value = scrollWidth > clientWidth\n\t}\n}\n\n// 设置滚动点\nconst setScrollPoints = () => {\n\tif (!scrollRef.value) return\n\n\t// 先清空现有的滚动点\n\tscrollPoints.value = []\n\n\t// 查找所有滚动点元素\n\tconst nodes = scrollRef.value.querySelectorAll('.to-scroll-point')\n\tif (!nodes || nodes.length === 0) {\n\t\treturn\n\t}\n\n\t// 收集滚动点信息\n\tnodes.forEach(item => {\n\t\tconst itemEl = item as HTMLElement\n\t\t// 获取滚动点的值\n\t\tconst pointValue = itemEl.getAttribute('data-point-value') || ''\n\n\t\t// 获取元素相对于滚动容器的精确位置\n\t\tconst offsetTop = itemEl.offsetTop\n\t\tconst height = itemEl.offsetHeight\n\n\t\t// 记录滚动点信息\n\t\tscrollPoints.value.push({\n\t\t\tvalue: pointValue,\n\t\t\tstart: offsetTop,\n\t\t\tend: offsetTop + height\n\t\t})\n\t})\n\n\t// 初始滚动到指定位置\n\tif (props.value && scrollRef.value) {\n\t\tscrollToValue(props.value, 'auto')\n\t}\n}\n\n// 滚动到指定值对应的位置\nconst scrollToValue = (value: string | number, behavior: ScrollBehavior = 'smooth') => {\n\tif (!scrollRef.value || !scrollPoints.value.length) return false\n\n\t// 查找匹配值的滚动点\n\tconst targetPoint = scrollPoints.value.find(p => String(p.value) === String(value))\n\tif (targetPoint) {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: targetPoint.start,\n\t\t\tbehavior: behavior\n\t\t})\n\n\t\t// 主动触发滚动点高亮状态更新\n\t\tnotifyScrollPointsActive(value)\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// 主动通知滚动点更新高亮状态\nconst notifyScrollPointsActive = (activeValue: string | number) => {\n\t// 使用事件通知,避免直接操作DOM\n\tif (scrollRef.value) {\n\t\tconst event = new CustomEvent('scroll-point-active', {\n\t\t\tdetail: { value: activeValue },\n\t\t\tbubbles: true\n\t\t})\n\t\tscrollRef.value.dispatchEvent(event)\n\n\t\t// 确保更新内部状态\n\t\tcurrentPointValue.value = activeValue\n\t}\n}\n\n// 根据当前滚动位置查找对应的滚动点值\nconst findScrollPoint = (scrollTop: number): string | number | null => {\n\tif (!scrollPoints.value.length || !scrollRef.value) return null\n\n\tconst clientHeight = scrollRef.value.clientHeight\n\tconst scrollBottom = scrollTop + clientHeight\n\n\t// 1. 精确匹配:如果滚动位置恰好在某个滚动点的顶部附近\n\tfor (const point of scrollPoints.value) {\n\t\t// 如果滚动位置在点顶部的±10px范围内,优先选择该点\n\t\tif (Math.abs(scrollTop - point.start) < 10) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 2. 完全包含的滚动点:如果视口完全包含某个滚动点\n\tfor (const point of scrollPoints.value) {\n\t\tif (scrollTop <= point.start && scrollBottom >= point.end) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 3. 查找当前在视口中显示最多的点\n\tlet bestPoint = null\n\tlet maxVisibleHeight = 0\n\n\tfor (const point of scrollPoints.value) {\n\t\t// 计算可见部分\n\t\tconst visibleTop = Math.max(scrollTop, point.start)\n\t\tconst visibleBottom = Math.min(scrollBottom, point.end)\n\t\tconst visibleHeight = visibleBottom - visibleTop\n\n\t\t// 如果有可见部分,并且可见高度最大,选择该点\n\t\tif (visibleHeight > 0 && visibleHeight > maxVisibleHeight) {\n\t\t\tmaxVisibleHeight = visibleHeight\n\t\t\tbestPoint = point\n\t\t}\n\t}\n\n\t// 4. 特殊情况处理:滚动到顶部或底部\n\tif (scrollTop < 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[0].value // 顶部\n\t}\n\n\tif (scrollBottom >= scrollRef.value.scrollHeight - 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[scrollPoints.value.length - 1].value // 底部\n\t}\n\n\t// 5. 如果找到了最佳点,返回它的值\n\tif (bestPoint) {\n\t\treturn bestPoint.value\n\t}\n\n\t// 6. 后备方案:返回最接近当前滚动位置的点\n\tlet closestPoint = null\n\tlet minDistance = Infinity\n\n\tfor (const point of scrollPoints.value) {\n\t\tconst distance = Math.min(Math.abs(scrollTop - point.start), Math.abs(scrollBottom - point.end))\n\n\t\tif (distance < minDistance) {\n\t\t\tminDistance = distance\n\t\t\tclosestPoint = point\n\t\t}\n\t}\n\n\treturn closestPoint ? closestPoint.value : null\n}\n\n// 监听value/modelValue变化\nwatch(\n\t() => bindValue.value,\n\t(newVal, oldVal) => {\n\t\t// 避免重复处理相同的值\n\t\tif (newVal === oldVal || newVal === currentPointValue.value) return\n\n\t\t// 更新内部记录的值\n\t\tcurrentPointValue.value = newVal\n\n\t\t// 如果是由Tab变化引起的,滚动到对应位置\n\t\tif (!isScrolling.value) {\n\t\t\t// 标记为Tab触发的滚动,避免滚动过程中再次触发更新\n\t\t\tisTabTriggeredScroll = true\n\n\t\t\tnextTick(() => {\n\t\t\t\t// 尝试滚动到对应位置\n\t\t\t\tconst scrollSuccess = scrollToValue(newVal)\n\n\t\t\t\t// 如果滚动失败(没找到对应的滚动点),尝试重新计算滚动点后再滚动\n\t\t\t\tif (!scrollSuccess) {\n\t\t\t\t\tsetScrollPoints()\n\t\t\t\t\tscrollToValue(newVal)\n\t\t\t\t}\n\n\t\t\t\t// 滚动动作完成后重置标记\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisTabTriggeredScroll = false\n\t\t\t\t}, 500) // 等待滚动动画完成\n\t\t\t})\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nonMounted(() => {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n\n\tif (props.virtual) {\n\t\twindow.addEventListener('mousemove', onMousemove)\n\t\twindow.addEventListener('mouseup', onMouseup)\n\t\twindow.addEventListener('mouseleave', onMouseup)\n\n\t\t// 添加鼠标进入和离开事件\n\t\tif (scrollRef.value) {\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\n\t\t}\n\n\t\t// 检查是否需要横向滚动条\n\t\tnextTick(() => {\n\t\t\tcheckHorizontalScroll()\n\t\t})\n\t}\n})\n\nonUnmounted(() => {\n\tif (props.virtual) {\n\t\twindow.removeEventListener('mousemove', onMousemove)\n\t\twindow.removeEventListener('mouseup', onMouseup)\n\t\twindow.removeEventListener('mouseleave', onMouseup)\n\n\t\t// 移除鼠标进入和离开事件\n\t\tif (scrollRef.value) {\n\t\t\tscrollRef.value.removeEventListener('mouseenter', onMouseenter)\n\t\t\tscrollRef.value.removeEventListener('mouseleave', onMouseleave)\n\t\t}\n\t}\n\n\t// 清除所有定时器\n\tif (scrollUpdateTimer) {\n\t\tclearTimeout(scrollUpdateTimer)\n\t\tscrollUpdateTimer = null\n\t}\n\n\tif (autoScrollThrottleTimer) {\n\t\tclearTimeout(autoScrollThrottleTimer)\n\t\tautoScrollThrottleTimer = null\n\t}\n})\n\n// 鼠标进入滚动区域\nconst onMouseenter = () => {\n\tisHovering.value = true\n}\n\n// 鼠标离开滚动区域\nconst onMouseleave = () => {\n\tif (!isDragging.value && !isHorizontalDragging.value) {\n\t\tisHovering.value = false\n\t}\n}\n\n// 虚拟滚动条垂直拖动\nconst onThumbMousedown = (e: MouseEvent) => {\n\tif (!scrollRef.value || !props.virtual) return\n\te.preventDefault()\n\te.stopPropagation()\n\n\t// 添加拖动状态的类,用于CSS样式调整\n\tif (scrollRef.value) {\n\t\tscrollRef.value.classList.add('dragging-scrollbar')\n\t}\n\n\tstartY = e.clientY\n\tstartScrollTop = scrollRef.value.scrollTop\n\tisDragging.value = true\n}\n\n// 虚拟滚动条水平拖动\nconst onHorizontalThumbMousedown = (e: MouseEvent) => {\n\tif (!scrollRef.value || !props.virtual) return\n\te.preventDefault()\n\te.stopPropagation()\n\n\t// 添加拖动状态的类,用于CSS样式调整\n\tif (scrollRef.value) {\n\t\tscrollRef.value.classList.add('dragging-scrollbar-horizontal')\n\t}\n\n\tstartX = e.clientX\n\tstartScrollLeft = scrollRef.value.scrollLeft\n\tisHorizontalDragging.value = true\n}\n\nconst onMousemove = (e: MouseEvent) => {\n\t// 处理垂直拖动\n\tif (isDragging.value && scrollRef.value && barThumb.value) {\n\t\tconst deltaY = e.clientY - startY\n\t\tconst contentHeight = scrollRef.value.scrollHeight\n\t\tconst containerHeight = scrollRef.value.clientHeight\n\t\tconst ratio = containerHeight / contentHeight\n\n\t\tscrollRef.value.scrollTop = startScrollTop + deltaY / ratio\n\t}\n\n\t// 处理水平拖动\n\tif (isHorizontalDragging.value && scrollRef.value && horizontalBarThumb.value) {\n\t\tconst deltaX = e.clientX - startX\n\t\tconst contentWidth = scrollRef.value.scrollWidth\n\t\tconst containerWidth = scrollRef.value.clientWidth\n\t\tconst ratio = containerWidth / contentWidth\n\n\t\tscrollRef.value.scrollLeft = startScrollLeft + deltaX / ratio\n\t}\n}\n\nconst onMouseup = () => {\n\tisDragging.value = false\n\tisHorizontalDragging.value = false\n\n\t// 拖动结束后,如果鼠标不在滚动区域内,则隐藏滚动条\n\tif (!isHovering.value) {\n\t\tsetTimeout(() => {\n\t\t\tisHovering.value = false\n\t\t}, 300)\n\t}\n\n\t// 移除拖动状态的类\n\tif (scrollRef.value) {\n\t\tscrollRef.value.classList.remove('dragging-scrollbar')\n\t\tscrollRef.value.classList.remove('dragging-scrollbar-horizontal')\n\t}\n}\n\n// 处理滚动事件\nconst handleScroll = (event: Event) => {\n\t// 触发原始滚动事件\n\temit('scroll', event)\n\n\t// 如果是由Tab触发的滚动,不处理滚动检测\n\tif (isTabTriggeredScroll) {\n\t\treturn\n\t}\n\n\tif (!scrollRef.value) return\n\n\t// 获取当前滚动位置\n\tconst scrollTop = scrollRef.value.scrollTop\n\n\t// 触发滚动位置变化事件\n\temit('change', scrollTop)\n\n\tif (scrollEventDebounceTimer) {\n\t\tclearTimeout(scrollEventDebounceTimer)\n\t}\n\n\t// 检测是否滚动到底部\n\tscrollEventDebounceTimer = setTimeout(() => {\n\t\t// 检测是否滚动到底部\n\t\tconst { scrollHeight, clientHeight } = scrollRef.value\n\t\tif (scrollTop + clientHeight >= scrollHeight - 5) {\n\t\t\temit('bottom')\n\t\t}\n\n\t\tif (scrollTop <= 5) {\n\t\t\temit('top')\n\t\t}\n\t}, 100) // 防抖时间设置为 100ms\n\n\t// 如果有滚动点,立即检测当前位置对应哪个点\n\tif (scrollPoints.value.length > 0) {\n\t\t// 先清除之前的定时器\n\t\tif (autoScrollThrottleTimer) {\n\t\t\tclearTimeout(autoScrollThrottleTimer)\n\t\t\tautoScrollThrottleTimer = null\n\t\t}\n\t\tif (scrollUpdateTimer) {\n\t\t\tclearTimeout(scrollUpdateTimer)\n\t\t\tscrollUpdateTimer = null\n\t\t}\n\n\t\t// 使用requestAnimationFrame确保滚动过程中能平滑更新\n\t\trequestAnimationFrame(() => {\n\t\t\t// 重新查找当前滚动位置对应的点\n\t\t\tconst pointValue = findScrollPoint(scrollTop)\n\n\t\t\t// 如果找到点且与当前值不同,立即更新值\n\t\t\tif (pointValue !== null && pointValue !== currentPointValue.value) {\n\t\t\t\t// 更新内部记录的值\n\t\t\t\tcurrentPointValue.value = pointValue\n\n\t\t\t\t// 同时发送两种事件,确保兼容性\n\t\t\t\temit('update:modelValue', pointValue)\n\t\t\t\temit('update:value', pointValue)\n\n\t\t\t\t// 通知滚动点更新高亮状态\n\t\t\t\tnotifyScrollPointsActive(pointValue)\n\n\t\t\t\t// 如果使用了虚拟滚动条,确保它的位置也正确更新\n\t\t\t\tif (props.virtual && barThumb.value) {\n\t\t\t\t\tupdateVirtualScrollbar()\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\t// 标记为正在滚动\n\tisScrolling.value = true\n\n\t// 滚动结束后重置状态\n\tclearTimeout(scrollUpdateTimer)\n\tscrollUpdateTimer = setTimeout(() => {\n\t\tisScrolling.value = false\n\t\temit('scrollEnd')\n\t}, 100)\n}\n\n// 更新虚拟滚动条位置(如果使用)\nconst updateVirtualScrollbar = () => {\n\tif (!scrollRef.value || !props.virtual) return\n\n\t// 强制更新滚动条位置\n\tnextTick(() => {\n\t\tconst { scrollTop, scrollHeight, clientHeight } = scrollRef.value\n\t\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\n\t\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\n\n\t\tif (barThumb.value) {\n\t\t\tbarThumb.value.style.transform = `translateY(${thumbTop}px)`\n\t\t}\n\t})\n}\n\n// 统一的滚动方法,支持多种参数类型\nconst to = (target: HTMLElement | string | number | any) => {\n\tif (!scrollRef.value) return\n\n\t// 滚动到底部\n\tif (target === '$bottom') {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定元素\n\tif (target instanceof HTMLElement) {\n\t\tconst elementTop = target.getBoundingClientRect().top\n\t\tconst containerTop = scrollRef.value.getBoundingClientRect().top\n\t\tconst relativeTop = elementTop - containerTop + scrollRef.value.scrollTop\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: relativeTop,\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定位置(数字或数字字符串)\n\tif (typeof target === 'number' || (typeof target === 'string' && !isNaN(Number(target)))) {\n\t\tconst position = typeof target === 'string' ? Number(target) : target\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: position,\n\t\t\tleft: 0,\n\t\t\tbehavior: props.virtual ? 'smooth' : 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定选项配置\n\tif (typeof target === 'object' && target !== null) {\n\t\tscrollRef.value.scrollTo(target)\n\t\treturn\n\t}\n}\n\n// 垂直滚动条样式计算\nconst thumbStyle = computed(() => {\n\tif (!scrollRef.value || !props.virtual) return {}\n\n\tconst { clientHeight, scrollHeight, scrollTop } = scrollRef.value\n\n\t// 计算滚动条高度比例\n\tconst thumbHeight = Math.max(30, (clientHeight / scrollHeight) * clientHeight)\n\n\t// 计算滚动条位置比例\n\tconst thumbTop = (scrollTop / (scrollHeight - clientHeight)) * (clientHeight - thumbHeight)\n\n\treturn {\n\t\theight: `${thumbHeight}px`,\n\t\ttransform: `translateY(${thumbTop}px)`,\n\t\twidth: '6px'\n\t}\n})\n\n// 水平滚动条样式计算\nconst horizontalThumbStyle = computed(() => {\n\tif (!scrollRef.value || !props.virtual) return {}\n\n\tconst { clientWidth, scrollWidth, scrollLeft } = scrollRef.value\n\n\t// 计算滚动条宽度比例\n\tconst thumbWidth = Math.max(30, (clientWidth / scrollWidth) * clientWidth)\n\n\t// 计算滚动条位置比例\n\tconst thumbLeft = (scrollLeft / (scrollWidth - clientWidth)) * (clientWidth - thumbWidth)\n\n\treturn {\n\t\twidth: `${thumbWidth}px`,\n\t\ttransform: `translateX(${thumbLeft}px)`,\n\t\theight: '6px'\n\t}\n})\n\nconst setStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t} = {}\n\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\treturn obj\n})\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\n\tif (props.virtual) {\n\t\tarr.push('hide-scrollbar')\n\t}\n\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\n\tif (props.hide) {\n\t\tarr.push('is-hide')\n\t}\n\n\treturn arr\n})\n\nconst setContentStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t\tpadding?: string | number\n\t\tpaddingTop?: string\n\t\tpaddingRight?: string\n\t\tpaddingBottom?: string\n\t\tpaddingLeft?: string\n\t\tmaxHeight?: string\n\t\toverflow?: string\n\t\tposition?: 'relative' | 'absolute' | 'fixed' | 'sticky'\n\t\twidth?: string\n\t\tdisplay?: string\n\t} = {}\n\n\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\tif (String(props.padding).trim()) {\n\t\t// 分割成各个值\n\t\tconst padded = String(props.padding)\n\t\t\t.trim()\n\t\t\t.split(/\\s+/)\n\t\t\t.map(val => {\n\t\t\t\t// 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n\t\t\t\treturn hasUnit(val) ? val : `${val}em`\n\t\t\t})\n\t\t\t.join(' ')\n\n\t\tobj.padding = padded\n\t}\n\n\tif (props.paddingPosition) {\n\t\t// 根据paddingPosition设置padding位置\n\t\tconst padding = String(props.padding || '0')\n\t\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\t\tconst paddingValue = hasUnit(padding) ? padding : `${padding}em`\n\n\t\tswitch (props.paddingPosition) {\n\t\t\tcase 'top':\n\t\t\t\tobj.paddingTop = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'right':\n\t\t\t\tobj.paddingRight = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'bottom':\n\t\t\t\tobj.paddingBottom = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'left':\n\t\t\t\tobj.paddingLeft = paddingValue\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tif (props.virtual) {\n\t\tobj.overflow = 'auto'\n\t\tobj.position = 'relative'\n\t\tobj.width = '100%'\n\t}\n\n\treturn obj\n})\n\nfunction adjust() {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n\n\tif (props.virtual) {\n\t\twindow.addEventListener('mousemove', onMousemove)\n\t\twindow.addEventListener('mouseup', onMouseup)\n\t\twindow.addEventListener('mouseleave', onMouseup)\n\n\t\t// 添加鼠标进入和离开事件\n\t\tif (scrollRef.value) {\n\t\t\tscrollRef.value.addEventListener('mouseenter', onMouseenter)\n\t\t\tscrollRef.value.addEventListener('mouseleave', onMouseleave)\n\t\t}\n\n\t\t// 检查是否需要横向滚动条\n\t\tnextTick(() => {\n\t\t\tcheckHorizontalScroll()\n\t\t})\n\t}\n}\n\n// 导出方法供父组件调用\ndefineExpose({\n\tto,\n\tscrollRef,\n\tisScrolling,\n\tsetScrollPoints,\n\tfindScrollPoint,\n\tcheckHorizontalScroll,\n\tadjust\n})\n</script>\n"],"names":["DO_defineComponent","hasUnit","_createElementBlock","_normalizeClass","flex","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Scroll.vue2.mjs","sources":["../../../../../../packages/components/scroll/src/Scroll.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToScroll'\n});\n</script>\n<template>\n\t<div class=\"to-scroll\" :flex=\"flex ? flex : null\" :class=\"setClass\" :style=\"setStyle\">\n\t\t<!-- 滚动内容区域 -->\n\t\t<div ref=\"scrollRef\" class=\"to-scroll-content\" :style=\"setContentStyle\" @scroll=\"handleScroll\">\n\t\t\t<!-- 默认内容插槽 -->\n\t\t\t<slot />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, nextTick, onMounted, onUnmounted, provide } from 'vue'\nimport { scrollProps, ScrollContext } from './scroll'\n\n\n\nconst props = defineProps(scrollProps)\nconst emit = defineEmits<{\n\t(e: 'scroll', event: Event): void\n\t(e: 'scrollEnd'): void\n\t(e: 'change', position: number): void\n\t(e: 'update:value', position: number | string): void\n\t(e: 'update:modelValue', position: number | string): void\n\t(e: 'bottom'): void\n\t(e: 'top'): void\n}>()\n\nconst scrollRef = ref<HTMLElement | null>(null)\nconst isScrolling = ref(false)\n// 添加一个标志来标识是否由tab点击导致的滚动\nlet isTabTriggeredScroll = false\n// 滚动防抖定时器\nlet scrollUpdateTimer: ReturnType<typeof setTimeout> | null = null\n// 存储滚动点信息\nconst scrollPoints = ref<Array<{ value: string | number; start: number; end: number }>>([])\n// 获取当前绑定值(优先使用modelValue,兼容value)\nconst bindValue = computed(() => props.modelValue || props.value)\n// 当前选中的滚动点值\nconst currentPointValue = ref<string | number | null>(bindValue.value || null)\n\nlet scrollEventDebounceTimer: ReturnType<typeof setTimeout> | null = null\n// 提供给子组件的上下文\nprovide<ScrollContext>('ToScroll', {\n\tregisterScrollPoint: (_el: HTMLElement, _value: string | number) => {\n\t\t// 在下一个渲染周期更新滚动点\n\t\tnextTick(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\t}\n})\n\n// 提供当前值给子组件\nprovide('scrollValue', currentPointValue)\n\n// 设置滚动点\nconst setScrollPoints = () => {\n\tif (!scrollRef.value) return\n\n\t// 先清空现有的滚动点\n\tscrollPoints.value = []\n\n\t// 查找所有滚动点元素\n\tconst nodes = scrollRef.value.querySelectorAll('.to-scroll-point')\n\tif (!nodes || nodes.length === 0) {\n\t\treturn\n\t}\n\n\t// 收集滚动点信息\n\tnodes.forEach(item => {\n\t\tconst itemEl = item as HTMLElement\n\t\t// 获取滚动点的值\n\t\tconst pointValue = itemEl.getAttribute('data-point-value') || ''\n\n\t\t// 获取元素相对于滚动容器的精确位置\n\t\tconst offsetTop = itemEl.offsetTop\n\t\tconst height = itemEl.offsetHeight\n\n\t\t// 记录滚动点信息\n\t\tscrollPoints.value.push({\n\t\t\tvalue: pointValue,\n\t\t\tstart: offsetTop,\n\t\t\tend: offsetTop + height\n\t\t})\n\t})\n\n\t// 初始滚动到指定位置\n\tif (props.value && scrollRef.value) {\n\t\tscrollToValue(props.value, 'auto')\n\t}\n}\n\n// 滚动到指定值对应的位置\nconst scrollToValue = (value: string | number, behavior: ScrollBehavior = 'smooth') => {\n\tif (!scrollRef.value || !scrollPoints.value.length) return false\n\n\t// 查找匹配值的滚动点\n\tconst targetPoint = scrollPoints.value.find(p => String(p.value) === String(value))\n\tif (targetPoint) {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: targetPoint.start,\n\t\t\tbehavior: behavior\n\t\t})\n\n\t\t// 主动触发滚动点高亮状态更新\n\t\tnotifyScrollPointsActive(value)\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// 主动通知滚动点更新高亮状态\nconst notifyScrollPointsActive = (activeValue: string | number) => {\n\t// 使用事件通知,避免直接操作DOM\n\tif (scrollRef.value) {\n\t\tconst event = new CustomEvent('scroll-point-active', {\n\t\t\tdetail: { value: activeValue },\n\t\t\tbubbles: true\n\t\t})\n\t\tscrollRef.value.dispatchEvent(event)\n\n\t\t// 确保更新内部状态\n\t\tcurrentPointValue.value = activeValue\n\t}\n}\n\n// 根据当前滚动位置查找对应的滚动点值\nconst findScrollPoint = (scrollTop: number): string | number | null => {\n\tif (!scrollPoints.value.length || !scrollRef.value) return null\n\n\tconst clientHeight = scrollRef.value.clientHeight\n\tconst scrollBottom = scrollTop + clientHeight\n\n\t// 1. 精确匹配:如果滚动位置恰好在某个滚动点的顶部附近\n\tfor (const point of scrollPoints.value) {\n\t\t// 如果滚动位置在点顶部的±10px范围内,优先选择该点\n\t\tif (Math.abs(scrollTop - point.start) < 10) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 2. 完全包含的滚动点:如果视口完全包含某个滚动点\n\tfor (const point of scrollPoints.value) {\n\t\tif (scrollTop <= point.start && scrollBottom >= point.end) {\n\t\t\treturn point.value\n\t\t}\n\t}\n\n\t// 3. 查找当前在视口中显示最多的点\n\tlet bestPoint = null\n\tlet maxVisibleHeight = 0\n\n\tfor (const point of scrollPoints.value) {\n\t\t// 计算可见部分\n\t\tconst visibleTop = Math.max(scrollTop, point.start)\n\t\tconst visibleBottom = Math.min(scrollBottom, point.end)\n\t\tconst visibleHeight = visibleBottom - visibleTop\n\n\t\t// 如果有可见部分,并且可见高度最大,选择该点\n\t\tif (visibleHeight > 0 && visibleHeight > maxVisibleHeight) {\n\t\t\tmaxVisibleHeight = visibleHeight\n\t\t\tbestPoint = point\n\t\t}\n\t}\n\n\t// 4. 特殊情况处理:滚动到顶部或底部\n\tif (scrollTop < 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[0].value // 顶部\n\t}\n\n\tif (scrollBottom >= scrollRef.value.scrollHeight - 5 && scrollPoints.value.length > 0) {\n\t\treturn scrollPoints.value[scrollPoints.value.length - 1].value // 底部\n\t}\n\n\t// 5. 如果找到了最佳点,返回它的值\n\tif (bestPoint) {\n\t\treturn bestPoint.value\n\t}\n\n\t// 6. 后备方案:返回最接近当前滚动位置的点\n\tlet closestPoint = null\n\tlet minDistance = Infinity\n\n\tfor (const point of scrollPoints.value) {\n\t\tconst distance = Math.min(Math.abs(scrollTop - point.start), Math.abs(scrollBottom - point.end))\n\n\t\tif (distance < minDistance) {\n\t\t\tminDistance = distance\n\t\t\tclosestPoint = point\n\t\t}\n\t}\n\n\treturn closestPoint ? closestPoint.value : null\n}\n\n// 监听value/modelValue变化\nwatch(\n\t() => bindValue.value,\n\t(newVal, oldVal) => {\n\t\t// 避免重复处理相同的值\n\t\tif (newVal === oldVal || newVal === currentPointValue.value) return\n\n\t\t// 更新内部记录的值\n\t\tcurrentPointValue.value = newVal\n\n\t\t// 如果是由Tab变化引起的,滚动到对应位置\n\t\tif (!isScrolling.value) {\n\t\t\t// 标记为Tab触发的滚动,避免滚动过程中再次触发更新\n\t\t\tisTabTriggeredScroll = true\n\n\t\t\tnextTick(() => {\n\t\t\t\t// 尝试滚动到对应位置\n\t\t\t\tconst scrollSuccess = scrollToValue(newVal)\n\n\t\t\t\t// 如果滚动失败(没找到对应的滚动点),尝试重新计算滚动点后再滚动\n\t\t\t\tif (!scrollSuccess) {\n\t\t\t\t\tsetScrollPoints()\n\t\t\t\t\tscrollToValue(newVal)\n\t\t\t\t}\n\n\t\t\t\t// 滚动动作完成后重置标记\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisTabTriggeredScroll = false\n\t\t\t\t}, 500) // 等待滚动动画完成\n\t\t\t})\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\nonMounted(() => {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n})\n\nonUnmounted(() => {\n\t// 清除所有定时器\n\tif (scrollUpdateTimer) {\n\t\tclearTimeout(scrollUpdateTimer)\n\t\tscrollUpdateTimer = null\n\t}\n})\n\n// 处理滚动事件\nconst handleScroll = (event: Event) => {\n\t// 触发原始滚动事件\n\temit('scroll', event)\n\n\t// 如果是由Tab触发的滚动,不处理滚动检测\n\tif (isTabTriggeredScroll) {\n\t\treturn\n\t}\n\n\tif (!scrollRef.value) return\n\n\t// 获取当前滚动位置\n\tconst scrollTop = scrollRef.value.scrollTop\n\n\t// 触发滚动位置变化事件\n\temit('change', scrollTop)\n\n\tif (scrollEventDebounceTimer) {\n\t\tclearTimeout(scrollEventDebounceTimer)\n\t}\n\n\t// 检测是否滚动到底部\n\tscrollEventDebounceTimer = setTimeout(() => {\n\t\t// 检测是否滚动到底部\n\t\tconst { scrollHeight, clientHeight } = scrollRef.value\n\t\tif (scrollTop + clientHeight >= scrollHeight - 5) {\n\t\t\temit('bottom')\n\t\t}\n\n\t\tif (scrollTop <= 5) {\n\t\t\temit('top')\n\t\t}\n\t}, 100) // 防抖时间设置为 100ms\n\n\t// 如果有滚动点,立即检测当前位置对应哪个点\n\tif (scrollPoints.value.length > 0) {\n\t\t// 先清除之前的定时器\n\t\tif (scrollUpdateTimer) {\n\t\t\tclearTimeout(scrollUpdateTimer)\n\t\t\tscrollUpdateTimer = null\n\t\t}\n\n\t\t// 使用requestAnimationFrame确保滚动过程中能平滑更新\n\t\trequestAnimationFrame(() => {\n\t\t\t// 重新查找当前滚动位置对应的点\n\t\t\tconst pointValue = findScrollPoint(scrollTop)\n\n\t\t\t// 如果找到点且与当前值不同,立即更新值\n\t\t\tif (pointValue !== null && pointValue !== currentPointValue.value) {\n\t\t\t\t// 更新内部记录的值\n\t\t\t\tcurrentPointValue.value = pointValue\n\n\t\t\t\t// 同时发送两种事件,确保兼容性\n\t\t\t\temit('update:modelValue', pointValue)\n\t\t\t\temit('update:value', pointValue)\n\n\t\t\t\t// 通知滚动点更新高亮状态\n\t\t\t\tnotifyScrollPointsActive(pointValue)\n\t\t\t}\n\t\t})\n\t}\n\n\t// 标记为正在滚动\n\tisScrolling.value = true\n\n\t// 滚动结束后重置状态\n\tclearTimeout(scrollUpdateTimer)\n\tscrollUpdateTimer = setTimeout(() => {\n\t\tisScrolling.value = false\n\t\temit('scrollEnd')\n\t}, 100)\n}\n\n// 统一的滚动方法,支持多种参数类型\nconst to = (target: HTMLElement | string | number | any) => {\n\tif (!scrollRef.value) return\n\n\t// 滚动到底部\n\tif (target === '$bottom') {\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: scrollRef.value.scrollHeight - scrollRef.value.clientHeight,\n\t\t\tbehavior: 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定元素\n\tif (target instanceof HTMLElement) {\n\t\tconst elementTop = target.getBoundingClientRect().top\n\t\tconst containerTop = scrollRef.value.getBoundingClientRect().top\n\t\tconst relativeTop = elementTop - containerTop + scrollRef.value.scrollTop\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: relativeTop,\n\t\t\tbehavior: 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定位置(数字或数字字符串)\n\tif (typeof target === 'number' || (typeof target === 'string' && !isNaN(Number(target)))) {\n\t\tconst position = typeof target === 'string' ? Number(target) : target\n\n\t\tscrollRef.value.scrollTo({\n\t\t\ttop: position,\n\t\t\tleft: 0,\n\t\t\tbehavior: 'auto'\n\t\t})\n\t\treturn\n\t}\n\n\t// 滚动到指定选项配置\n\tif (typeof target === 'object' && target !== null) {\n\t\tscrollRef.value.scrollTo(target)\n\t\treturn\n\t}\n}\n\nconst setStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t} = {}\n\n\tif (props.height) {\n\t\tif (!isNaN(Number(props.height))) {\n\t\t\tobj.height = props.height + 'em'\n\t\t} else {\n\t\t\tobj.height = String(props.height)\n\t\t}\n\t}\n\n\treturn obj\n})\n\nconst setClass = computed(() => {\n\tlet arr: string[] = []\n\n\tif (props.mode) {\n\t\tarr.push(`mode-${props.mode}`)\n\t}\n\n\tif (props.type) {\n\t\tarr.push(`type-${props.type}`)\n\t}\n\n\tif (props.hide) {\n\t\tarr.push('is-hide')\n\t}\n\n\treturn arr\n})\n\nconst setContentStyle = computed(() => {\n\tconst obj: {\n\t\theight?: string\n\t\tpadding?: string | number\n\t\tpaddingTop?: string\n\t\tpaddingRight?: string\n\t\tpaddingBottom?: string\n\t\tpaddingLeft?: string\n\t\tmaxHeight?: string\n\t\toverflow?: string\n\t\tposition?: 'relative' | 'absolute' | 'fixed' | 'sticky'\n\t\twidth?: string\n\t\tdisplay?: string\n\t} = {}\n\n\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\tif (String(props.padding).trim()) {\n\t\t// 分割成各个值\n\t\tconst padded = String(props.padding)\n\t\t\t.trim()\n\t\t\t.split(/\\s+/)\n\t\t\t.map(val => {\n\t\t\t\t// 如果是数字(或纯数字字符串),或末尾无单位,就加 em\n\t\t\t\treturn hasUnit(val) ? val : `${val}em`\n\t\t\t})\n\t\t\t.join(' ')\n\n\t\tobj.padding = padded\n\t}\n\n\tif (props.paddingPosition) {\n\t\t// 根据paddingPosition设置padding位置\n\t\tconst padding = String(props.padding || '0')\n\t\tconst hasUnit = (val: string) => /[a-z%]+$/i.test(val)\n\t\tconst paddingValue = hasUnit(padding) ? padding : `${padding}em`\n\n\t\tswitch (props.paddingPosition) {\n\t\t\tcase 'top':\n\t\t\t\tobj.paddingTop = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'right':\n\t\t\t\tobj.paddingRight = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'bottom':\n\t\t\t\tobj.paddingBottom = paddingValue\n\t\t\t\tbreak\n\t\t\tcase 'left':\n\t\t\t\tobj.paddingLeft = paddingValue\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\treturn obj\n})\n\nfunction adjust() {\n\t// 组件挂载后,设置滚动点\n\tnextTick(() => {\n\t\t// 收集滚动点\n\t\tsetScrollPoints()\n\n\t\t// 设置观察器,监听DOM变化重新收集滚动点\n\t\tconst observer = new MutationObserver(() => {\n\t\t\tsetScrollPoints()\n\t\t})\n\n\t\tif (scrollRef.value) {\n\t\t\tobserver.observe(scrollRef.value, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['data-point-value']\n\t\t\t})\n\n\t\t\t// 如果有初始值,滚动到对应位置\n\t\t\tif (props.value) {\n\t\t\t\t// 延迟执行,确保DOM完全渲染\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (typeof props.value === 'string' || typeof props.value === 'number') {\n\t\t\t\t\t\tscrollToValue(props.value, 'auto')\n\t\t\t\t\t}\n\t\t\t\t}, 100)\n\t\t\t}\n\t\t}\n\t})\n}\n\n// 导出方法供父组件调用\ndefineExpose({\n\tto,\n\tscrollRef,\n\tisScrolling,\n\tsetScrollPoints,\n\tfindScrollPoint,\n\tadjust\n})\n</script>\n"],"names":["DO_defineComponent","hasUnit","_createElementBlock","_normalizeClass","flex","_createCommentVNode","_createElementVNode","_renderSlot"],"mappings":"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"}
|
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
const scrollProps = {
|
|
2
2
|
flex: Boolean,
|
|
3
|
-
/**
|
|
4
|
-
* 是否使用模拟滚动条
|
|
5
|
-
*/
|
|
6
|
-
virtual: {
|
|
7
|
-
type: Boolean,
|
|
8
|
-
default: false
|
|
9
|
-
},
|
|
10
|
-
/**
|
|
11
|
-
* 滚动幅度(仅模拟滚动条支持)
|
|
12
|
-
*/
|
|
13
|
-
speed: {
|
|
14
|
-
type: Number,
|
|
15
|
-
default: 10
|
|
16
|
-
},
|
|
17
3
|
/**
|
|
18
4
|
* 顶部间距
|
|
19
5
|
*/
|
|
@@ -64,13 +50,6 @@ const scrollProps = {
|
|
|
64
50
|
type: [String, Number],
|
|
65
51
|
default: ""
|
|
66
52
|
},
|
|
67
|
-
/**
|
|
68
|
-
* 滚动条显示方式
|
|
69
|
-
*/
|
|
70
|
-
barDisplay: {
|
|
71
|
-
type: String,
|
|
72
|
-
default: "hover"
|
|
73
|
-
},
|
|
74
53
|
/**
|
|
75
54
|
* 排除项
|
|
76
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.mjs","sources":["../../../../../../packages/components/scroll/src/scroll.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\n\nexport const scrollProps = {\n\tflex: Boolean,\n\t/**\n\t *
|
|
1
|
+
{"version":3,"file":"scroll.mjs","sources":["../../../../../../packages/components/scroll/src/scroll.ts"],"sourcesContent":["import { ExtractPropTypes } from 'vue'\n\nexport const scrollProps = {\n\tflex: Boolean,\n\t/**\n\t * 顶部间距\n\t */\n\ttop: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 双向绑定的滚动位置,支持v-model\n\t */\n\tmodelValue: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 兼容旧版本,等同于modelValue\n\t * @deprecated 推荐使用modelValue\n\t */\n\tvalue: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 内边距\n\t */\n\tpadding: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 内边距位置\n\t */\n\tpaddingPosition: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 底部间距\n\t */\n\tbottom: {\n\t\ttype: [Number, String],\n\t\tdefault: 0\n\t},\n\t/**\n\t * 高度\n\t */\n\theight: {\n\t\ttype: [String, Number],\n\t\tdefault: ''\n\t},\n\t/**\n\t * 排除项\n\t */\n\texcept: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 背景颜色\n\t */\n\tmode: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 滚动模式\n\t */\n\ttype: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\t/**\n\t * 是否隐藏\n\t */\n\thide: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t}\n}\n\nexport type ScrollProps = ExtractPropTypes<typeof scrollProps>\n\nexport interface ScrollInstance {\n\t/**\n\t * 滚动到指定位置\n\t */\n\tscrollTo: (options: ScrollToOptions | number, yCoord?: number) => void\n\t/**\n\t * 滚动到指定元素\n\t */\n\tscrollToElement: (element: HTMLElement | null, offset?: number) => void\n\t/**\n\t * 按步长滚动\n\t */\n\tscrollStep: (direction: 'up' | 'down' | 'left' | 'right') => void\n\t/**\n\t * 滚动容器元素\n\t */\n\tscrollRef: HTMLElement | null\n\t/**\n\t * 是否正在滚动\n\t */\n\tisScrolling: boolean\n\t/**\n\t * 滚动到指定目标\n\t */\n\tto: (target: HTMLElement | string | number | any) => void\n}\n\n/**\n * Scroll组件提供给子组件的上下文接口\n */\nexport interface ScrollContext {\n\t/**\n\t * 注册滚动点\n\t */\n\tregisterScrollPoint: (el: HTMLElement, value: string | number) => void\n}\n"],"names":[],"mappings":"AAEO,MAAM,WAAc,GAAA;AAAA,EAC1B,IAAM,EAAA,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,GAAK,EAAA;AAAA,IACJ,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,UAAY,EAAA;AAAA,IACX,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAO,EAAA;AAAA,IACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,OAAS,EAAA;AAAA,IACR,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,eAAiB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,CAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACV;AAAA;AAAA;AAAA;AAAA,EAIA,IAAM,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACV;AACD;;;;"}
|