vxe-pc-ui 3.20.8 → 3.20.10
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/card/src/card.js +2 -1
- package/es/date-panel/src/date-panel.js +70 -39
- package/es/date-panel/style.css +22 -20
- package/es/date-panel/style.min.css +1 -1
- package/es/drawer/src/drawer.js +1 -0
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +11 -3
- package/es/icon-picker/style.css +9 -3
- package/es/icon-picker/style.min.css +1 -1
- package/es/layout-aside/src/layout-aside.js +2 -1
- package/es/layout-body/src/layout-body.js +2 -1
- package/es/layout-container/src/layout-container.js +9 -2
- package/es/list/src/list.js +80 -223
- package/es/menu/src/menu.js +1 -0
- package/es/modal/src/modal.js +1 -0
- package/es/scrollbar/src/scrollbar.js +32 -188
- package/es/select/src/select.js +273 -8
- package/es/select/style.css +44 -0
- package/es/select/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tabs.js +2 -1
- package/es/tooltip/src/tooltip.js +7 -6
- package/es/tooltip/style.css +2 -0
- package/es/tooltip/style.min.css +1 -1
- package/es/tree/src/tree.js +85 -228
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-date-panel/style.css +22 -20
- package/es/vxe-date-panel/style.min.css +1 -1
- package/es/vxe-icon-picker/style.css +9 -3
- package/es/vxe-icon-picker/style.min.css +1 -1
- package/es/vxe-select/style.css +44 -0
- package/es/vxe-select/style.min.css +1 -1
- package/es/vxe-tooltip/style.css +2 -0
- package/es/vxe-tooltip/style.min.css +1 -1
- package/lib/card/src/card.js +1 -1
- package/lib/card/src/card.min.js +1 -1
- package/lib/date-panel/src/date-panel.js +74 -43
- package/lib/date-panel/src/date-panel.min.js +1 -1
- package/lib/date-panel/style/style.css +22 -20
- package/lib/date-panel/style/style.min.css +1 -1
- package/lib/drawer/src/drawer.js +1 -1
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +56 -38
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/icon-picker/style/style.css +9 -3
- package/lib/icon-picker/style/style.min.css +1 -1
- package/lib/index.umd.js +894 -816
- package/lib/index.umd.min.js +1 -1
- package/lib/layout-aside/src/layout-aside.js +1 -1
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-body/src/layout-body.js +1 -1
- package/lib/layout-body/src/layout-body.min.js +1 -1
- package/lib/layout-container/src/layout-container.js +13 -3
- package/lib/layout-container/src/layout-container.min.js +1 -1
- package/lib/list/src/list.js +72 -225
- package/lib/list/src/list.min.js +1 -1
- package/lib/menu/src/menu.js +1 -1
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/modal/src/modal.js +1 -1
- package/lib/modal/src/modal.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +29 -192
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/select/src/select.js +322 -69
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/style/style.css +44 -0
- package/lib/select/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tabs.js +1 -1
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tooltip/src/tooltip.js +5 -6
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tooltip/style/style.css +2 -0
- package/lib/tooltip/style/style.min.css +1 -1
- package/lib/tree/src/tree.js +77 -229
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-date-panel/style/style.css +22 -20
- package/lib/vxe-date-panel/style/style.min.css +1 -1
- package/lib/vxe-icon-picker/style/style.css +9 -3
- package/lib/vxe-icon-picker/style/style.min.css +1 -1
- package/lib/vxe-select/style/style.css +44 -0
- package/lib/vxe-select/style/style.min.css +1 -1
- package/lib/vxe-tooltip/style/style.css +2 -0
- package/lib/vxe-tooltip/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/card/src/card.ts +4 -2
- package/packages/date-panel/src/date-panel.ts +70 -39
- package/packages/drawer/src/drawer.ts +4 -2
- package/packages/icon-picker/src/icon-picker.ts +12 -3
- package/packages/layout-aside/src/layout-aside.ts +4 -2
- package/packages/layout-body/src/layout-body.ts +4 -2
- package/packages/layout-container/src/layout-container.ts +13 -3
- package/packages/list/src/list.ts +85 -241
- package/packages/menu/src/menu.ts +3 -1
- package/packages/modal/src/modal.ts +3 -1
- package/packages/scrollbar/src/scrollbar.ts +32 -199
- package/packages/select/src/select.ts +304 -11
- package/packages/tabs/src/tabs.ts +4 -4
- package/packages/tooltip/src/tooltip.ts +10 -8
- package/packages/tree/src/tree.ts +90 -247
- package/styles/components/date-panel.scss +31 -29
- package/styles/components/icon-picker.scss +9 -3
- package/styles/components/select.scss +77 -0
- package/styles/components/tooltip.scss +1 -0
- package/types/components/card.d.ts +2 -2
- package/types/components/drawer.d.ts +2 -2
- package/types/components/gantt-module/gantt-view.d.ts +8 -17
- package/types/components/grid.d.ts +3 -2
- package/types/components/icon-picker.d.ts +21 -1
- package/types/components/layout-aside.d.ts +2 -2
- package/types/components/layout-body.d.ts +2 -2
- package/types/components/layout-container.d.ts +3 -1
- package/types/components/list.d.ts +6 -2
- package/types/components/menu.d.ts +2 -2
- package/types/components/modal.d.ts +2 -2
- package/types/components/scrollbar.d.ts +17 -14
- package/types/components/select.d.ts +28 -3
- package/types/components/table.d.ts +26 -22
- package/types/components/tabs.d.ts +2 -2
- package/types/components/tooltip.d.ts +2 -2
- package/types/components/tree.d.ts +8 -17
- /package/es/icon/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
- /package/es/icon/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
- /package/es/icon/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
- /package/es/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
- /package/es/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
- /package/es/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
- /package/lib/{iconfont.1792115554173.ttf → iconfont.1792219842866.ttf} +0 -0
- /package/lib/{iconfont.1792115554173.woff → iconfont.1792219842866.woff} +0 -0
- /package/lib/{iconfont.1792115554173.woff2 → iconfont.1792219842866.woff2} +0 -0
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { CreateElement, VNode, PropType } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
|
-
import { VxeUI } from '../../ui'
|
|
4
|
+
import { VxeUI, globalMixins } from '../../ui'
|
|
5
5
|
import { toCssUnit } from '../../ui/src/dom'
|
|
6
6
|
import { getDefaultConfig } from '../../ui/src/utils'
|
|
7
7
|
|
|
8
8
|
import VxeLoadingComponent from '../../loading'
|
|
9
9
|
|
|
10
|
-
import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ValueOf, VxeScrollbarPropTypes, VxeComponentStyleType } from '../../../types'
|
|
10
|
+
import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ValueOf, VxeScrollbarPropTypes, VxeComponentStyleType, VxeUseSizeComputed, VxeUseInitVScrollbarComputed } from '../../../types'
|
|
11
11
|
|
|
12
|
-
const { getConfig, createEvent, domUtils,
|
|
13
|
-
|
|
14
|
-
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils
|
|
12
|
+
const { getConfig, createEvent, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI
|
|
15
13
|
|
|
16
14
|
function createReactData (): ScrollbarReactData {
|
|
17
15
|
return {
|
|
@@ -22,7 +20,7 @@ function createReactData (): ScrollbarReactData {
|
|
|
22
20
|
|
|
23
21
|
function createInternalData (): ScrollbarInternalData {
|
|
24
22
|
return {
|
|
25
|
-
//
|
|
23
|
+
// scrollObserver: undefined,
|
|
26
24
|
// isThumbDrag: false,
|
|
27
25
|
thumbDragOffset: 0,
|
|
28
26
|
yThumbTop: 0,
|
|
@@ -34,6 +32,10 @@ function createInternalData (): ScrollbarInternalData {
|
|
|
34
32
|
|
|
35
33
|
export default /* define-vxe-component start */ defineVxeComponent({
|
|
36
34
|
name: 'VxeScrollbar',
|
|
35
|
+
mixins: [
|
|
36
|
+
globalMixins.sizeMixin,
|
|
37
|
+
globalMixins.initVScrollbarMixin
|
|
38
|
+
],
|
|
37
39
|
props: {
|
|
38
40
|
id: [String, Number] as PropType<VxeScrollbarPropTypes.Id>,
|
|
39
41
|
viewId: [String, Number] as PropType<VxeScrollbarPropTypes.ViewId>,
|
|
@@ -86,10 +88,22 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
86
88
|
type: String as PropType<VxeScrollbarPropTypes.ViewInnerClassName>,
|
|
87
89
|
default: () => getConfig().scrollbar.viewInnerClassName
|
|
88
90
|
},
|
|
91
|
+
size: {
|
|
92
|
+
type: String as PropType<VxeScrollbarPropTypes.Size>,
|
|
93
|
+
default: () => getConfig().scrollbar.size || getConfig().size
|
|
94
|
+
},
|
|
95
|
+
/**
|
|
96
|
+
* 已废弃
|
|
97
|
+
* @deprecated
|
|
98
|
+
*/
|
|
89
99
|
autoResize: {
|
|
90
100
|
type: Boolean as PropType<VxeScrollbarPropTypes.AutoResize>,
|
|
91
101
|
default: () => getConfig().scrollbar.autoResize
|
|
92
102
|
},
|
|
103
|
+
/**
|
|
104
|
+
* 已废弃
|
|
105
|
+
* @deprecated
|
|
106
|
+
*/
|
|
93
107
|
syncResize: [Boolean, String, Number] as PropType<VxeScrollbarPropTypes.SyncResize>
|
|
94
108
|
},
|
|
95
109
|
data () {
|
|
@@ -107,6 +121,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
107
121
|
}
|
|
108
122
|
},
|
|
109
123
|
computed: {
|
|
124
|
+
...({} as VxeUseSizeComputed & VxeUseInitVScrollbarComputed),
|
|
110
125
|
computeWrapperStyle () {
|
|
111
126
|
const $xeScrollbar = this
|
|
112
127
|
const props = $xeScrollbar
|
|
@@ -190,6 +205,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
190
205
|
|
|
191
206
|
const { native, theme, className, padding } = props
|
|
192
207
|
const { yThumbHeight, xThumbWidth } = reactData
|
|
208
|
+
const vSize = $xeScrollbar.computeSize
|
|
193
209
|
const xToTop = ($xeScrollbar as any).computeXToTop as boolean
|
|
194
210
|
const yToLeft = ($xeScrollbar as any).computeYToLeft as boolean
|
|
195
211
|
const xVisible = ($xeScrollbar as any).computeXVisible
|
|
@@ -198,6 +214,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
198
214
|
const yAutoHide = ($xeScrollbar as any).computeYAutoHide
|
|
199
215
|
return domUtils.buildClass([
|
|
200
216
|
'vxe-scrollbar',
|
|
217
|
+
vSize ? `size--${vSize}` : '',
|
|
201
218
|
theme ? `theme--${theme}` : '',
|
|
202
219
|
`ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
|
|
203
220
|
`ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
|
|
@@ -266,13 +283,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
266
283
|
const $xeScrollbar = this
|
|
267
284
|
$xeScrollbar.$emit(type, createEvent(evnt, { $scrollbar: $xeScrollbar }, params))
|
|
268
285
|
},
|
|
269
|
-
|
|
286
|
+
getScrollViewElem () {
|
|
270
287
|
const $xeScrollbar = this
|
|
271
288
|
|
|
272
289
|
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
273
290
|
return viewEl || null
|
|
274
291
|
},
|
|
275
|
-
|
|
292
|
+
getScrollViewInnerElem () {
|
|
276
293
|
const $xeScrollbar = this
|
|
277
294
|
|
|
278
295
|
const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem as HTMLDivElement
|
|
@@ -348,64 +365,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
348
365
|
$xeScrollbar.updateThumbOffset()
|
|
349
366
|
return $xeScrollbar.$nextTick()
|
|
350
367
|
},
|
|
351
|
-
updateThumbSize () {
|
|
352
|
-
const $xeScrollbar = this
|
|
353
|
-
const reactData = $xeScrollbar.reactData
|
|
354
|
-
|
|
355
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
356
|
-
if (!viewEl) {
|
|
357
|
-
return
|
|
358
|
-
}
|
|
359
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
360
|
-
return
|
|
361
|
-
}
|
|
362
|
-
const trackXEl = $xeScrollbar.$refs.refTrackXElem as HTMLDivElement
|
|
363
|
-
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0
|
|
364
|
-
const thumbXElem = $xeScrollbar.$refs.refThumbXElem as HTMLDivElement
|
|
365
|
-
if (thumbXElem) {
|
|
366
|
-
thumbXElem.style.width = xThumbWidth + 'px'
|
|
367
|
-
}
|
|
368
|
-
reactData.xThumbWidth = xThumbWidth
|
|
369
|
-
|
|
370
|
-
const trackYEl = $xeScrollbar.$refs.refTrackYElem as HTMLDivElement
|
|
371
|
-
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0
|
|
372
|
-
const thumbYElem = $xeScrollbar.$refs.refThumbYElem as HTMLDivElement
|
|
373
|
-
if (thumbYElem) {
|
|
374
|
-
thumbYElem.style.height = yThumbHeight + 'px'
|
|
375
|
-
}
|
|
376
|
-
reactData.yThumbHeight = yThumbHeight
|
|
377
|
-
},
|
|
378
|
-
updateThumbOffset () {
|
|
379
|
-
const $xeScrollbar = this
|
|
380
|
-
const reactData = $xeScrollbar.reactData
|
|
381
|
-
const internalData = $xeScrollbar.internalData
|
|
382
|
-
|
|
383
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
384
|
-
if (!viewEl) {
|
|
385
|
-
return
|
|
386
|
-
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
387
|
-
return
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
const { xThumbWidth, yThumbHeight } = reactData
|
|
391
|
-
const trackXEl = $xeScrollbar.$refs.refTrackXElem as HTMLDivElement
|
|
392
|
-
const thumbXElem = $xeScrollbar.$refs.refThumbXElem as HTMLDivElement
|
|
393
|
-
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0
|
|
394
|
-
internalData.xThumbLeft = xThumbLeft
|
|
395
|
-
if (thumbXElem && xThumbWidth) {
|
|
396
|
-
thumbXElem.style.width = xThumbWidth + 'px'
|
|
397
|
-
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
const trackYEl = $xeScrollbar.$refs.refTrackYElem as HTMLDivElement
|
|
401
|
-
const thumbYElem = $xeScrollbar.$refs.refThumbYElem as HTMLDivElement
|
|
402
|
-
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0
|
|
403
|
-
internalData.yThumbTop = yThumbTop
|
|
404
|
-
if (thumbYElem && yThumbHeight) {
|
|
405
|
-
thumbYElem.style.height = yThumbHeight + 'px'
|
|
406
|
-
thumbYElem.style.transform = `translateY(${yThumbTop}px)`
|
|
407
|
-
}
|
|
408
|
-
},
|
|
409
368
|
scrollEvent (evnt: Event) {
|
|
410
369
|
const $xeScrollbar = this
|
|
411
370
|
const reactData = $xeScrollbar.reactData
|
|
@@ -482,132 +441,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
482
441
|
scrollWidth: scrollWidth
|
|
483
442
|
}, evnt)
|
|
484
443
|
},
|
|
485
|
-
clickTrackXEvent (evnt: MouseEvent) {
|
|
486
|
-
const $xeScrollbar = this
|
|
487
|
-
const reactData = $xeScrollbar.reactData
|
|
488
|
-
|
|
489
|
-
const trackEl = evnt.currentTarget as HTMLDivElement
|
|
490
|
-
if (trackEl !== evnt.target) {
|
|
491
|
-
return
|
|
492
|
-
}
|
|
493
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
494
|
-
if (!viewEl) {
|
|
495
|
-
return
|
|
496
|
-
}
|
|
497
|
-
const { xThumbWidth } = reactData
|
|
498
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
499
|
-
viewEl.scrollTo({
|
|
500
|
-
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
501
|
-
behavior: 'auto'
|
|
502
|
-
})
|
|
503
|
-
},
|
|
504
|
-
clickTrackYEvent (evnt: MouseEvent) {
|
|
505
|
-
const $xeScrollbar = this
|
|
506
|
-
const reactData = $xeScrollbar.reactData
|
|
507
|
-
|
|
508
|
-
const trackEl = evnt.currentTarget as HTMLDivElement
|
|
509
|
-
if (trackEl !== evnt.target) {
|
|
510
|
-
return
|
|
511
|
-
}
|
|
512
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
513
|
-
if (!viewEl) {
|
|
514
|
-
return
|
|
515
|
-
}
|
|
516
|
-
const { yThumbHeight } = reactData
|
|
517
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
518
|
-
viewEl.scrollTo({
|
|
519
|
-
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
520
|
-
behavior: 'auto'
|
|
521
|
-
})
|
|
522
|
-
},
|
|
523
|
-
pointerdownThumbXEvent (evnt: PointerEvent) {
|
|
524
|
-
const $xeScrollbar = this
|
|
525
|
-
const reactData = $xeScrollbar.reactData
|
|
526
|
-
const internalData = $xeScrollbar.internalData
|
|
527
|
-
|
|
528
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
529
|
-
internalData.isThumbDrag = true
|
|
530
|
-
thumbEl.setPointerCapture(evnt.pointerId)
|
|
531
|
-
|
|
532
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
533
|
-
if (!viewEl) {
|
|
534
|
-
return
|
|
535
|
-
}
|
|
536
|
-
const { xThumbWidth } = reactData
|
|
537
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
538
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
539
|
-
const pointerPosition = evnt.clientX - trackRect.left
|
|
540
|
-
// 记录 thumb 的偏移
|
|
541
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
|
|
542
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset
|
|
543
|
-
},
|
|
544
|
-
pointermoveThumbXEvent (evnt: PointerEvent) {
|
|
545
|
-
const $xeScrollbar = this
|
|
546
|
-
const reactData = $xeScrollbar.reactData
|
|
547
|
-
const internalData = $xeScrollbar.internalData
|
|
548
|
-
|
|
549
|
-
const { isThumbDrag, thumbDragOffset } = internalData
|
|
550
|
-
if (isThumbDrag) {
|
|
551
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
552
|
-
if (!viewEl) {
|
|
553
|
-
return
|
|
554
|
-
}
|
|
555
|
-
const { xThumbWidth } = reactData
|
|
556
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
557
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
558
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
559
|
-
// 更新偏移
|
|
560
|
-
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
|
|
561
|
-
}
|
|
562
|
-
},
|
|
563
|
-
cleatPointerThumbEvent (evnt: PointerEvent) {
|
|
564
|
-
const $xeScrollbar = this
|
|
565
|
-
const internalData = $xeScrollbar.internalData
|
|
566
|
-
|
|
567
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
568
|
-
thumbEl.releasePointerCapture(evnt.pointerId)
|
|
569
|
-
internalData.isThumbDrag = false
|
|
570
|
-
},
|
|
571
|
-
pointerdownThumbYEvent (evnt: PointerEvent) {
|
|
572
|
-
const $xeScrollbar = this
|
|
573
|
-
const reactData = $xeScrollbar.reactData
|
|
574
|
-
const internalData = $xeScrollbar.internalData
|
|
575
|
-
|
|
576
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
577
|
-
internalData.isThumbDrag = true
|
|
578
|
-
thumbEl.setPointerCapture(evnt.pointerId)
|
|
579
|
-
|
|
580
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
581
|
-
if (!viewEl) {
|
|
582
|
-
return
|
|
583
|
-
}
|
|
584
|
-
const { yThumbHeight } = reactData
|
|
585
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
586
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
587
|
-
const pointerPosition = evnt.clientY - trackRect.top
|
|
588
|
-
// 记录 thumb 的偏移
|
|
589
|
-
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
|
|
590
|
-
internalData.thumbDragOffset = pointerPosition - thumbOffset
|
|
591
|
-
},
|
|
592
|
-
pointermoveThumbYEvent (evnt: PointerEvent) {
|
|
593
|
-
const $xeScrollbar = this
|
|
594
|
-
const reactData = $xeScrollbar.reactData
|
|
595
|
-
const internalData = $xeScrollbar.internalData
|
|
596
|
-
|
|
597
|
-
const { isThumbDrag, thumbDragOffset } = internalData
|
|
598
|
-
if (isThumbDrag) {
|
|
599
|
-
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
600
|
-
if (!viewEl) {
|
|
601
|
-
return
|
|
602
|
-
}
|
|
603
|
-
const { yThumbHeight } = reactData
|
|
604
|
-
const thumbEl = evnt.currentTarget as HTMLDivElement
|
|
605
|
-
const trackEl = thumbEl.parentElement as HTMLDivElement
|
|
606
|
-
const trackRect = trackEl.getBoundingClientRect()
|
|
607
|
-
// 更新偏移
|
|
608
|
-
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
|
|
609
|
-
}
|
|
610
|
-
},
|
|
611
444
|
|
|
612
445
|
//
|
|
613
446
|
// Render
|
|
@@ -789,18 +622,18 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
789
622
|
const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
|
|
790
623
|
const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem as HTMLDivElement
|
|
791
624
|
if (autoResize) {
|
|
792
|
-
const
|
|
625
|
+
const scrollObserver = globalResize.create(() => {
|
|
793
626
|
if (props.autoResize) {
|
|
794
627
|
$xeScrollbar.reFlag++
|
|
795
628
|
}
|
|
796
629
|
})
|
|
797
630
|
if (viewEl) {
|
|
798
|
-
|
|
631
|
+
scrollObserver.observe(viewEl)
|
|
799
632
|
}
|
|
800
633
|
if (viewInnerEl) {
|
|
801
|
-
|
|
634
|
+
scrollObserver.observe(viewInnerEl)
|
|
802
635
|
}
|
|
803
|
-
internalData.
|
|
636
|
+
internalData.scrollObserver = scrollObserver
|
|
804
637
|
}
|
|
805
638
|
|
|
806
639
|
$xeScrollbar.reFlag++
|
|
@@ -812,9 +645,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
812
645
|
const $xeScrollbar = this
|
|
813
646
|
const internalData = $xeScrollbar.internalData
|
|
814
647
|
|
|
815
|
-
const {
|
|
816
|
-
if (
|
|
817
|
-
|
|
648
|
+
const { scrollObserver } = internalData
|
|
649
|
+
if (scrollObserver) {
|
|
650
|
+
scrollObserver.disconnect()
|
|
818
651
|
}
|
|
819
652
|
globalEvents.off($xeScrollbar, 'resize')
|
|
820
653
|
},
|