vxe-pc-ui 3.20.0 → 3.20.1
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 +18 -3
- package/es/icon/style.css +1 -1
- package/es/language/fr-FR.js +29 -29
- package/es/layout-aside/src/layout-aside.js +8 -5
- package/es/layout-body/src/layout-body.js +22 -11
- package/es/list/src/list.js +86 -35
- package/es/list/style.css +25 -8
- package/es/list/style.min.css +1 -1
- package/es/scrollbar/src/scrollbar.js +69 -17
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tabs.js +19 -3
- package/es/tree/src/tree.js +439 -56
- package/es/tree/style.css +43 -0
- package/es/tree/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/ui/src/utils.js +3 -0
- package/es/vxe-list/style.css +25 -8
- package/es/vxe-list/style.min.css +1 -1
- package/es/vxe-tree/style.css +43 -0
- package/es/vxe-tree/style.min.css +1 -1
- package/lib/card/src/card.js +18 -3
- package/lib/card/src/card.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +640 -139
- package/lib/index.umd.min.js +1 -1
- package/lib/language/fr-FR.js +29 -29
- package/lib/language/fr-FR.min.js +1 -1
- package/lib/language/fr-FR.umd.js +29 -29
- package/lib/layout-aside/src/layout-aside.js +8 -8
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-body/src/layout-body.js +26 -19
- package/lib/layout-body/src/layout-body.min.js +1 -1
- package/lib/list/src/list.js +73 -32
- package/lib/list/src/list.min.js +1 -1
- package/lib/list/style/style.css +25 -8
- package/lib/list/style/style.min.css +1 -1
- package/lib/scrollbar/src/scrollbar.js +74 -15
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tabs.js +20 -7
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tree/src/tree.js +416 -53
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree/style/style.css +43 -0
- package/lib/tree/style/style.min.css +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/ui/src/utils.js +4 -0
- package/lib/ui/src/utils.min.js +1 -1
- package/lib/vxe-list/style/style.css +25 -8
- package/lib/vxe-list/style/style.min.css +1 -1
- package/lib/vxe-tree/style/style.css +43 -0
- package/lib/vxe-tree/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/card/src/card.ts +19 -3
- package/packages/language/fr-FR.ts +903 -903
- package/packages/layout-aside/src/layout-aside.ts +8 -5
- package/packages/layout-body/src/layout-body.ts +26 -14
- package/packages/list/src/list.ts +97 -41
- package/packages/scrollbar/src/scrollbar.ts +79 -17
- package/packages/tabs/src/tabs.ts +20 -7
- package/packages/tree/src/tree.ts +482 -67
- package/packages/ui/src/utils.ts +4 -0
- package/styles/components/list.scss +35 -10
- package/styles/components/tree.scss +76 -0
- package/types/components/card.d.ts +10 -1
- package/types/components/layout-aside.d.ts +10 -1
- package/types/components/layout-body.d.ts +10 -1
- package/types/components/list.d.ts +10 -1
- package/types/components/scrollbar.d.ts +16 -2
- package/types/components/table.d.ts +47 -4
- package/types/components/tabs.d.ts +10 -1
- package/types/components/tree.d.ts +33 -2
- /package/es/icon/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
- /package/es/icon/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
- /package/es/icon/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
- /package/es/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
- /package/es/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
- /package/es/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
- /package/lib/icon/style/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
- /package/lib/{iconfont.1791880407207.ttf → iconfont.1791950618327.ttf} +0 -0
- /package/lib/{iconfont.1791880407207.woff → iconfont.1791950618327.woff} +0 -0
- /package/lib/{iconfont.1791880407207.woff2 → iconfont.1791950618327.woff2} +0 -0
|
@@ -97,7 +97,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
97
97
|
const vSize = $xeLayoutAside.computeSize
|
|
98
98
|
const collapseOpts = $xeLayoutAside.computeCollapseOpts
|
|
99
99
|
const scrollbarOpts = $xeLayoutAside.computeScrollbarOpts
|
|
100
|
-
const {
|
|
100
|
+
const { className, viewClassName, viewInnerClassName } = scrollbarOpts
|
|
101
101
|
const defaultSlot = slots.default
|
|
102
102
|
|
|
103
103
|
return h('aside', {
|
|
@@ -113,13 +113,16 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
113
113
|
useScrollbar
|
|
114
114
|
? h(VxeScrollbarComponent, {
|
|
115
115
|
props: {
|
|
116
|
-
|
|
116
|
+
width: scrollbarOpts.width,
|
|
117
|
+
height: scrollbarOpts.height,
|
|
118
|
+
autoHide: scrollbarOpts.autoHide,
|
|
119
|
+
visible: scrollbarOpts.visible,
|
|
117
120
|
xConfig: {
|
|
118
|
-
visible:
|
|
121
|
+
visible: false
|
|
119
122
|
},
|
|
120
|
-
yConfig,
|
|
123
|
+
yConfig: scrollbarOpts.yConfig,
|
|
121
124
|
className: 'vxe-layout-aside--scrollbar' + (className ? (' ' + className) : ''),
|
|
122
|
-
viewAttrs,
|
|
125
|
+
viewAttrs: scrollbarOpts.viewAttrs,
|
|
123
126
|
viewClassName: 'vxe-layout-aside--scrollbar-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
124
127
|
viewInnerClassName: 'vxe-layout-aside--scrollbar-inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
|
|
125
128
|
},
|
|
@@ -70,6 +70,30 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
70
70
|
const props = $xeLayoutBody
|
|
71
71
|
|
|
72
72
|
return Object.assign({}, getConfig().layoutBody.scrollbarConfig, props.scrollbarConfig)
|
|
73
|
+
},
|
|
74
|
+
computeScrollbarProps () {
|
|
75
|
+
const $xeLayoutBody = this
|
|
76
|
+
const props = $xeLayoutBody
|
|
77
|
+
const backtopId = ($xeLayoutBody as any).backtopId as string
|
|
78
|
+
|
|
79
|
+
const { showBacktop } = props
|
|
80
|
+
const scrollbarOpts = $xeLayoutBody.computeScrollbarOpts as VxeLayoutBodyPropTypes.ScrollbarConfig
|
|
81
|
+
const { className, viewClassName, viewInnerClassName } = scrollbarOpts
|
|
82
|
+
return {
|
|
83
|
+
width: scrollbarOpts.width,
|
|
84
|
+
height: scrollbarOpts.height,
|
|
85
|
+
autoHide: scrollbarOpts.autoHide,
|
|
86
|
+
visible: scrollbarOpts.visible,
|
|
87
|
+
xConfig: scrollbarOpts.xConfig,
|
|
88
|
+
yConfig: scrollbarOpts.yConfig,
|
|
89
|
+
className: 'vxe-layout-body--scrollbar' + (className ? (' ' + className) : ''),
|
|
90
|
+
viewAttrs: {
|
|
91
|
+
...scrollbarOpts.viewAttrs,
|
|
92
|
+
id: showBacktop ? (backtopId || null) : null
|
|
93
|
+
},
|
|
94
|
+
viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
95
|
+
viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
|
|
96
|
+
}
|
|
73
97
|
}
|
|
74
98
|
},
|
|
75
99
|
methods: {
|
|
@@ -91,8 +115,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
91
115
|
|
|
92
116
|
const { loading, padding, showBacktop, useScrollbar } = props
|
|
93
117
|
const backtopOpts = $xeLayoutBody.computeBacktopOpts
|
|
94
|
-
const
|
|
95
|
-
const { native, xConfig, yConfig, className, viewAttrs, viewClassName, viewInnerClassName } = scrollbarOpts
|
|
118
|
+
const scrollbarProps = $xeLayoutBody.computeScrollbarProps
|
|
96
119
|
const vSize = $xeLayoutBody.computeSize
|
|
97
120
|
const defaultSlot = slots.default
|
|
98
121
|
const backtopSlot = slots.backtop
|
|
@@ -121,18 +144,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
121
144
|
}, [
|
|
122
145
|
useScrollbar
|
|
123
146
|
? h(VxeScrollbarComponent, {
|
|
124
|
-
props:
|
|
125
|
-
native,
|
|
126
|
-
xConfig,
|
|
127
|
-
yConfig,
|
|
128
|
-
className: 'vxe-layout-body--scrollbar' + (className ? (' ' + className) : ''),
|
|
129
|
-
viewAttrs: {
|
|
130
|
-
...viewAttrs,
|
|
131
|
-
id: showBacktop ? (backtopId || null) : null
|
|
132
|
-
},
|
|
133
|
-
viewClassName: 'vxe-layout-body--scrollbar-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
134
|
-
viewInnerClassName: 'vxe-layout-body--scrollbar-inner' + (viewInnerClassName ? (' ' + viewInnerClassName) : '')
|
|
135
|
-
},
|
|
147
|
+
props: scrollbarProps,
|
|
136
148
|
scopedSlots: {
|
|
137
149
|
default: () => defaultSlot ? defaultSlot({}) : []
|
|
138
150
|
}
|
|
@@ -4,7 +4,7 @@ import XEUtils, { XEBrowse } from 'xe-utils'
|
|
|
4
4
|
import { VxeUI, getConfig, getIcon, getI18n, domUtils, menus, globalEvents, globalResize, createEvent, globalMixins, renderEmptyElement } from '../../ui'
|
|
5
5
|
import { crossListDragRowGlobal, getCrossListDragRowInfo } from './store'
|
|
6
6
|
import { addClass, getTpImg, hasClass, isScale, removeClass, toCssUnit } from '../../ui/src/dom'
|
|
7
|
-
import { isEnableConf, getText, enModelValue, deModelValue } from '../../ui/src/utils'
|
|
7
|
+
import { isEnableConf, getText, enModelValue, deModelValue, getDefaultConfig } from '../../ui/src/utils'
|
|
8
8
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
9
9
|
import { createComponentLog } from '../../ui/src/log'
|
|
10
10
|
import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime'
|
|
@@ -226,17 +226,18 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
226
226
|
const $xeList = this
|
|
227
227
|
|
|
228
228
|
const rowHeight = $xeList.computeRowHeight
|
|
229
|
+
const scrollbarOpts = $xeList.computeScrollbarOpts
|
|
229
230
|
const scrollbarXOpts = $xeList.computeScrollbarXOpts as VxeScrollbarPropTypes.XConfig
|
|
230
231
|
const scrollbarYOpts = $xeList.computeScrollbarYOpts as VxeScrollbarPropTypes.YConfig
|
|
232
|
+
const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width)
|
|
233
|
+
const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height)
|
|
231
234
|
const stys: VxeComponentStyleType = {}
|
|
232
235
|
if (rowHeight) {
|
|
233
236
|
stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight)
|
|
234
237
|
}
|
|
235
|
-
if (
|
|
236
|
-
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(
|
|
237
|
-
|
|
238
|
-
if (scrollbarXOpts.height) {
|
|
239
|
-
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(scrollbarXOpts.height)
|
|
238
|
+
if (barWidth || barHeight) {
|
|
239
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight)
|
|
240
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth)
|
|
240
241
|
}
|
|
241
242
|
return stys
|
|
242
243
|
},
|
|
@@ -274,6 +275,34 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
274
275
|
const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
|
|
275
276
|
return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig)
|
|
276
277
|
},
|
|
278
|
+
computeScrollXVisible () {
|
|
279
|
+
const $xeList = this
|
|
280
|
+
|
|
281
|
+
const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
|
|
282
|
+
const scrollbarXOpts = $xeList.computeScrollbarXOpts as VxeScrollbarPropTypes.XConfig
|
|
283
|
+
return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible)
|
|
284
|
+
},
|
|
285
|
+
computeScrollYVisible () {
|
|
286
|
+
const $xeList = this
|
|
287
|
+
|
|
288
|
+
const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
|
|
289
|
+
const scrollbarYOpts = $xeList.computeScrollbarYOpts as VxeScrollbarPropTypes.YConfig
|
|
290
|
+
return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible)
|
|
291
|
+
},
|
|
292
|
+
computeScrollXAutoHide () {
|
|
293
|
+
const $xeList = this
|
|
294
|
+
|
|
295
|
+
const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
|
|
296
|
+
const scrollbarXOpts = $xeList.computeScrollbarXOpts as VxeScrollbarPropTypes.XConfig
|
|
297
|
+
return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide)
|
|
298
|
+
},
|
|
299
|
+
computeScrollYAutoHide () {
|
|
300
|
+
const $xeList = this
|
|
301
|
+
|
|
302
|
+
const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
|
|
303
|
+
const scrollbarYOpts = $xeList.computeScrollbarYOpts as VxeScrollbarPropTypes.YConfig
|
|
304
|
+
return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide)
|
|
305
|
+
},
|
|
277
306
|
computeScrollbarWrapperClss () {
|
|
278
307
|
const $xeList = this
|
|
279
308
|
const reactData = $xeList.reactData
|
|
@@ -281,20 +310,22 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
281
310
|
const scrollbarOpts = $xeList.computeScrollbarOpts as VxeListPropTypes.ScrollbarConfig
|
|
282
311
|
const { padding } = scrollbarOpts
|
|
283
312
|
const { yThumbHeight, xThumbWidth } = reactData
|
|
284
|
-
const scrollbarXOpts = $xeList.computeScrollbarXOpts as VxeScrollbarPropTypes.XConfig
|
|
285
|
-
const scrollbarYOpts = $xeList.computeScrollbarYOpts as VxeScrollbarPropTypes.YConfig
|
|
286
313
|
const scrollbarXToTop = $xeList.computeScrollbarXToTop
|
|
287
314
|
const scrollbarYToLeft = $xeList.computeScrollbarYToLeft
|
|
315
|
+
const scrollXVisible = $xeList.computeScrollXVisible
|
|
316
|
+
const scrollYVisible = $xeList.computeScrollYVisible
|
|
317
|
+
const scrollXAutoHide = $xeList.computeScrollXAutoHide as boolean
|
|
318
|
+
const scrollYAutoHide = $xeList.computeScrollYAutoHide as boolean
|
|
288
319
|
return domUtils.buildClass([
|
|
289
320
|
'vxe-scrollbar is--virtual',
|
|
290
|
-
`ov-x--${
|
|
291
|
-
`ov-y--${
|
|
321
|
+
`ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`,
|
|
322
|
+
`ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`,
|
|
292
323
|
`sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`,
|
|
293
324
|
`sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`
|
|
294
325
|
], {
|
|
295
326
|
'is--padding': padding,
|
|
296
|
-
'ov-x--auto-hide':
|
|
297
|
-
'ov-y--auto-hide':
|
|
327
|
+
'ov-x--auto-hide': scrollXAutoHide,
|
|
328
|
+
'ov-y--auto-hide': scrollYAutoHide,
|
|
298
329
|
'overflow-y': yThumbHeight,
|
|
299
330
|
'overflow-x': xThumbWidth
|
|
300
331
|
})
|
|
@@ -2498,7 +2529,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
2498
2529
|
const slots = $xeList.$scopedSlots
|
|
2499
2530
|
|
|
2500
2531
|
const { showCheckbox, className, loading, useScrollbar } = props
|
|
2501
|
-
const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate } = reactData
|
|
2532
|
+
const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate, xThumbWidth, yThumbHeight } = reactData
|
|
2502
2533
|
const defaultSlot = slots.default
|
|
2503
2534
|
const headerSlot = slots.header
|
|
2504
2535
|
const footerSlot = slots.footer
|
|
@@ -2512,8 +2543,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
2512
2543
|
const rowOpts = $xeList.computeRowOpts
|
|
2513
2544
|
const { isHover, padding } = rowOpts
|
|
2514
2545
|
const isDrag = $xeList.computeIsDrag
|
|
2515
|
-
const
|
|
2516
|
-
const
|
|
2546
|
+
const scrollbarOpts = $xeList.computeScrollbarOpts
|
|
2547
|
+
const scrollXVisible = $xeList.computeScrollXVisible
|
|
2548
|
+
const scrollYVisible = $xeList.computeScrollYVisible
|
|
2549
|
+
const scrollbarXToTop = $xeList.computeScrollbarXToTop
|
|
2550
|
+
const scrollbarYToLeft = $xeList.computeScrollbarYToLeft
|
|
2551
|
+
const scrollXAutoHide = $xeList.computeScrollXAutoHide
|
|
2552
|
+
const scrollYAutoHide = $xeList.computeScrollYAutoHide
|
|
2517
2553
|
const scrollbarWrapperClss = $xeList.computeScrollbarWrapperClss
|
|
2518
2554
|
const showDefChekboxHead = showCheckbox && checkboxOpts.showHeader !== false
|
|
2519
2555
|
|
|
@@ -2525,14 +2561,25 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
2525
2561
|
}
|
|
2526
2562
|
return h('div', {
|
|
2527
2563
|
ref: 'refElem',
|
|
2528
|
-
class: [
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
'
|
|
2534
|
-
'
|
|
2535
|
-
|
|
2564
|
+
class: [
|
|
2565
|
+
'vxe-list',
|
|
2566
|
+
useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
|
|
2567
|
+
useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
|
|
2568
|
+
useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
|
|
2569
|
+
useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
|
|
2570
|
+
className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '',
|
|
2571
|
+
{
|
|
2572
|
+
[`size--${vSize}`]: vSize,
|
|
2573
|
+
'is--virtual-scrollbar': useScrollbar,
|
|
2574
|
+
'ov-padding': useScrollbar && scrollbarOpts.padding,
|
|
2575
|
+
'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
|
|
2576
|
+
'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
|
|
2577
|
+
'overflow-y': yThumbHeight,
|
|
2578
|
+
'overflow-x': xThumbWidth,
|
|
2579
|
+
'is--drag': isDrag,
|
|
2580
|
+
'is--loading': loading
|
|
2581
|
+
}
|
|
2582
|
+
],
|
|
2536
2583
|
on: leOns,
|
|
2537
2584
|
style: wrapperStyles
|
|
2538
2585
|
}, [
|
|
@@ -2593,17 +2640,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
2593
2640
|
style: {
|
|
2594
2641
|
marginTop: topSpaceHeight ? `${topSpaceHeight}px` : ''
|
|
2595
2642
|
}
|
|
2596
|
-
},
|
|
2597
|
-
? (
|
|
2598
|
-
defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i))
|
|
2599
|
-
)
|
|
2600
|
-
: [
|
|
2601
|
-
h('div', {
|
|
2602
|
-
key: 'vi',
|
|
2603
|
-
ref: 'refViewInnerElem',
|
|
2604
|
-
class: 'vxe-scrollbar--view-inner'
|
|
2605
|
-
}, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
|
|
2606
|
-
])
|
|
2643
|
+
}, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => $xeList.renderRow(h, row, i)))
|
|
2607
2644
|
]),
|
|
2608
2645
|
footerSlot
|
|
2609
2646
|
? h('div', {
|
|
@@ -2618,7 +2655,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
2618
2655
|
? h('div', {
|
|
2619
2656
|
class: scrollbarWrapperClss
|
|
2620
2657
|
}, [
|
|
2621
|
-
|
|
2658
|
+
scrollXVisible === false
|
|
2622
2659
|
? renderEmptyElement($xeList)
|
|
2623
2660
|
: h('div', {
|
|
2624
2661
|
ref: 'refTrackXElem',
|
|
@@ -2639,7 +2676,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
2639
2676
|
}
|
|
2640
2677
|
})
|
|
2641
2678
|
]),
|
|
2642
|
-
|
|
2679
|
+
scrollYVisible === false
|
|
2643
2680
|
? renderEmptyElement($xeList)
|
|
2644
2681
|
: h('div', {
|
|
2645
2682
|
ref: 'refTrackYElem',
|
|
@@ -2700,15 +2737,34 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
2700
2737
|
|
|
2701
2738
|
$xeList.reFlag++
|
|
2702
2739
|
},
|
|
2740
|
+
useScrollbar () {
|
|
2741
|
+
const $xeList = this
|
|
2742
|
+
|
|
2743
|
+
$xeList.reFlag++
|
|
2744
|
+
},
|
|
2703
2745
|
computeRowHeight () {
|
|
2704
2746
|
const $xeList = this
|
|
2705
2747
|
|
|
2706
2748
|
$xeList.reFlag++
|
|
2707
2749
|
},
|
|
2708
|
-
|
|
2750
|
+
computeScrollXVisible () {
|
|
2709
2751
|
const $xeList = this
|
|
2710
2752
|
|
|
2711
2753
|
$xeList.$nextTick(() => {
|
|
2754
|
+
$xeList.reFlag++
|
|
2755
|
+
})
|
|
2756
|
+
},
|
|
2757
|
+
computeScrollYVisible () {
|
|
2758
|
+
const $xeList = this
|
|
2759
|
+
|
|
2760
|
+
$xeList.$nextTick(() => {
|
|
2761
|
+
$xeList.reFlag++
|
|
2762
|
+
})
|
|
2763
|
+
},
|
|
2764
|
+
reFlag () {
|
|
2765
|
+
const $xeList = this
|
|
2766
|
+
|
|
2767
|
+
$xeList.recalculate().then(() => {
|
|
2712
2768
|
$xeList.recalculate()
|
|
2713
2769
|
})
|
|
2714
2770
|
},
|
|
@@ -2760,13 +2816,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
2760
2816
|
}
|
|
2761
2817
|
if (useScrollbar || autoResize) {
|
|
2762
2818
|
const el = $xeList.$refs.refElem as HTMLDivElement
|
|
2763
|
-
const viewInnerEl = $xeList.$refs.
|
|
2819
|
+
const viewInnerEl = $xeList.$refs.refVirtualBody as HTMLDivElement
|
|
2764
2820
|
const resizeObserver = globalResize.create(() => {
|
|
2765
2821
|
$xeList.reFlag++
|
|
2766
2822
|
})
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
if (
|
|
2823
|
+
if (el) {
|
|
2824
|
+
resizeObserver.observe(el)
|
|
2825
|
+
if (autoResize) {
|
|
2770
2826
|
resizeObserver.observe(el.parentElement as HTMLDivElement)
|
|
2771
2827
|
}
|
|
2772
2828
|
}
|
|
@@ -4,6 +4,8 @@ import XEUtils from 'xe-utils'
|
|
|
4
4
|
import { VxeUI } from '../../ui'
|
|
5
5
|
import { toCssUnit } from '../../ui/src/dom'
|
|
6
6
|
import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from './util'
|
|
7
|
+
import { getDefaultConfig } from '../../ui/src/utils'
|
|
8
|
+
|
|
7
9
|
import VxeLoadingComponent from '../../loading'
|
|
8
10
|
|
|
9
11
|
import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ValueOf, VxeScrollbarPropTypes, VxeComponentStyleType } from '../../../types'
|
|
@@ -33,6 +35,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
33
35
|
name: 'VxeScrollbar',
|
|
34
36
|
props: {
|
|
35
37
|
id: [String, Number] as PropType<VxeScrollbarPropTypes.Id>,
|
|
38
|
+
viewId: [String, Number] as PropType<VxeScrollbarPropTypes.ViewId>,
|
|
36
39
|
width: [String, Number] as PropType<VxeScrollbarPropTypes.Width>,
|
|
37
40
|
height: [String, Number] as PropType<VxeScrollbarPropTypes.Height>,
|
|
38
41
|
minWidth: [String, Number] as PropType<VxeScrollbarPropTypes.MinWidth>,
|
|
@@ -48,6 +51,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
48
51
|
type: Boolean as PropType<VxeScrollbarPropTypes.Padding>,
|
|
49
52
|
default: () => getConfig().scrollbar.padding
|
|
50
53
|
},
|
|
54
|
+
autoHide: {
|
|
55
|
+
type: Boolean as PropType<VxeScrollbarPropTypes.AutoHide>,
|
|
56
|
+
default: () => getConfig().scrollbar.autoHide
|
|
57
|
+
},
|
|
58
|
+
visible: {
|
|
59
|
+
type: Boolean as PropType<VxeScrollbarPropTypes.Visible>,
|
|
60
|
+
default: () => getConfig().scrollbar.visible
|
|
61
|
+
},
|
|
51
62
|
xConfig: Object as PropType<VxeScrollbarPropTypes.XConfig>,
|
|
52
63
|
yConfig: Object as PropType<VxeScrollbarPropTypes.YConfig>,
|
|
53
64
|
className: {
|
|
@@ -94,6 +105,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
94
105
|
const { width, height, minWidth, minHeight, maxWidth, maxHeight } = props
|
|
95
106
|
const xOpts = $xeScrollbar.computeXOpts
|
|
96
107
|
const yOpts = $xeScrollbar.computeYOpts
|
|
108
|
+
const barWidth = yOpts.width
|
|
109
|
+
const barHeight = xOpts.height
|
|
97
110
|
const stys: VxeComponentStyleType = {}
|
|
98
111
|
if (width) {
|
|
99
112
|
stys.width = toCssUnit(width)
|
|
@@ -113,14 +126,44 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
113
126
|
if (maxHeight) {
|
|
114
127
|
stys.maxHeight = toCssUnit(maxHeight)
|
|
115
128
|
}
|
|
116
|
-
if (
|
|
117
|
-
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(
|
|
118
|
-
|
|
119
|
-
if (xOpts.height) {
|
|
120
|
-
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(xOpts.height)
|
|
129
|
+
if (barWidth || barHeight) {
|
|
130
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight)
|
|
131
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth)
|
|
121
132
|
}
|
|
122
133
|
return stys
|
|
123
134
|
},
|
|
135
|
+
computeXVisible () {
|
|
136
|
+
const $xeScrollbar = this
|
|
137
|
+
const props = $xeScrollbar
|
|
138
|
+
|
|
139
|
+
const { visible } = props
|
|
140
|
+
const xOpts = ($xeScrollbar as any).computeXOpts as VxeScrollbarPropTypes.XConfig
|
|
141
|
+
return getDefaultConfig(xOpts.visible, visible)
|
|
142
|
+
},
|
|
143
|
+
computeYVisible () {
|
|
144
|
+
const $xeScrollbar = this
|
|
145
|
+
const props = $xeScrollbar
|
|
146
|
+
|
|
147
|
+
const { visible } = props
|
|
148
|
+
const yOpts = ($xeScrollbar as any).computeYOpts as VxeScrollbarPropTypes.YConfig
|
|
149
|
+
return getDefaultConfig(yOpts.visible, visible)
|
|
150
|
+
},
|
|
151
|
+
computeXAutoHide () {
|
|
152
|
+
const $xeScrollbar = this
|
|
153
|
+
const props = $xeScrollbar
|
|
154
|
+
|
|
155
|
+
const { autoHide } = props
|
|
156
|
+
const xOpts = ($xeScrollbar as any).computeXOpts as VxeScrollbarPropTypes.XConfig
|
|
157
|
+
return getDefaultConfig(xOpts.autoHide, autoHide)
|
|
158
|
+
},
|
|
159
|
+
computeYAutoHide () {
|
|
160
|
+
const $xeScrollbar = this
|
|
161
|
+
const props = $xeScrollbar
|
|
162
|
+
|
|
163
|
+
const { autoHide } = props
|
|
164
|
+
const yOpts = ($xeScrollbar as any).computeYOpts as VxeScrollbarPropTypes.YConfig
|
|
165
|
+
return getDefaultConfig(yOpts.autoHide, autoHide)
|
|
166
|
+
},
|
|
124
167
|
computeWrapperClss () {
|
|
125
168
|
const $xeScrollbar = this
|
|
126
169
|
const props = $xeScrollbar
|
|
@@ -128,22 +171,24 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
128
171
|
|
|
129
172
|
const { native, className, padding } = props
|
|
130
173
|
const { yThumbHeight, xThumbWidth } = reactData
|
|
131
|
-
const xOpts = ($xeScrollbar as any).computeXOpts as VxeScrollbarPropTypes.XConfig
|
|
132
|
-
const yOpts = ($xeScrollbar as any).computeYOpts as VxeScrollbarPropTypes.YConfig
|
|
133
174
|
const xToTop = ($xeScrollbar as any).computeXToTop as boolean
|
|
134
175
|
const yToLeft = ($xeScrollbar as any).computeYToLeft as boolean
|
|
176
|
+
const xVisible = ($xeScrollbar as any).computeXVisible
|
|
177
|
+
const yVisible = ($xeScrollbar as any).computeYVisible
|
|
178
|
+
const xAutoHide = ($xeScrollbar as any).computeXAutoHide
|
|
179
|
+
const yAutoHide = ($xeScrollbar as any).computeYAutoHide
|
|
135
180
|
return domUtils.buildClass([
|
|
136
181
|
'vxe-scrollbar',
|
|
137
|
-
`ov-x--${
|
|
138
|
-
`ov-y--${
|
|
182
|
+
`ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
|
|
183
|
+
`ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
|
|
139
184
|
`sx-pos--${xToTop ? 'top' : 'bottom'}`,
|
|
140
185
|
`sy-pos--${yToLeft ? 'left' : 'right'}`,
|
|
141
186
|
native ? 'is--native' : 'is--virtual',
|
|
142
187
|
className
|
|
143
188
|
], {
|
|
144
189
|
'is--padding': padding,
|
|
145
|
-
'ov-x--auto-hide':
|
|
146
|
-
'ov-y--auto-hide':
|
|
190
|
+
'ov-x--auto-hide': xAutoHide,
|
|
191
|
+
'ov-y--auto-hide': yAutoHide,
|
|
147
192
|
'overflow-y': yThumbHeight,
|
|
148
193
|
'overflow-x': xThumbWidth
|
|
149
194
|
})
|
|
@@ -540,13 +585,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
540
585
|
const props = $xeScrollbar
|
|
541
586
|
const slots = $xeScrollbar.$scopedSlots
|
|
542
587
|
|
|
543
|
-
const { id, native, loading, viewAttrs } = props
|
|
588
|
+
const { id, native, loading, viewId, viewAttrs } = props
|
|
544
589
|
const wrapperStyle = $xeScrollbar.computeWrapperStyle
|
|
545
590
|
const wrapperClss = $xeScrollbar.computeWrapperClss
|
|
546
591
|
const viewClss = $xeScrollbar.computeViewClss
|
|
547
592
|
const viewInnerClss = $xeScrollbar.computeViewInnerClss
|
|
548
|
-
const
|
|
549
|
-
const
|
|
593
|
+
const xVisible = $xeScrollbar.computeXVisible
|
|
594
|
+
const yVisible = $xeScrollbar.computeYVisible
|
|
550
595
|
const defaultSlot = slots.default
|
|
551
596
|
return h('div', {
|
|
552
597
|
ref: 'refElem',
|
|
@@ -559,7 +604,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
559
604
|
h('div', {
|
|
560
605
|
ref: 'refViewElem',
|
|
561
606
|
class: viewClss,
|
|
562
|
-
attrs:
|
|
607
|
+
attrs: {
|
|
608
|
+
id: viewId || null,
|
|
609
|
+
...viewAttrs
|
|
610
|
+
},
|
|
563
611
|
on: {
|
|
564
612
|
scroll: $xeScrollbar.scrollEvent
|
|
565
613
|
}
|
|
@@ -570,7 +618,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
570
618
|
class: viewInnerClss
|
|
571
619
|
}, defaultSlot ? defaultSlot({}) : [])
|
|
572
620
|
]),
|
|
573
|
-
native ||
|
|
621
|
+
native || xVisible === false
|
|
574
622
|
? renderEmptyElement($xeScrollbar)
|
|
575
623
|
: h('div', {
|
|
576
624
|
ref: 'refTrackXElem',
|
|
@@ -591,7 +639,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
591
639
|
}
|
|
592
640
|
})
|
|
593
641
|
]),
|
|
594
|
-
native ||
|
|
642
|
+
native || yVisible === false
|
|
595
643
|
? renderEmptyElement($xeScrollbar)
|
|
596
644
|
: h('div', {
|
|
597
645
|
ref: 'refTrackYElem',
|
|
@@ -662,6 +710,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
662
710
|
|
|
663
711
|
$xeScrollbar.reFlag++
|
|
664
712
|
},
|
|
713
|
+
computeXVisible () {
|
|
714
|
+
const $xeScrollbar = this
|
|
715
|
+
|
|
716
|
+
$xeScrollbar.$nextTick(() => {
|
|
717
|
+
$xeScrollbar.reFlag++
|
|
718
|
+
})
|
|
719
|
+
},
|
|
720
|
+
computeYVisible () {
|
|
721
|
+
const $xeScrollbar = this
|
|
722
|
+
|
|
723
|
+
$xeScrollbar.$nextTick(() => {
|
|
724
|
+
$xeScrollbar.reFlag++
|
|
725
|
+
})
|
|
726
|
+
},
|
|
665
727
|
reFlag () {
|
|
666
728
|
const $xeScrollbar = this
|
|
667
729
|
|
|
@@ -193,6 +193,24 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
193
193
|
const props = $xeTabs
|
|
194
194
|
|
|
195
195
|
return Object.assign({}, getConfig().tabs.scrollbarConfig, props.scrollbarConfig)
|
|
196
|
+
},
|
|
197
|
+
computeScrollbarProps () {
|
|
198
|
+
const $xeTabs = this
|
|
199
|
+
|
|
200
|
+
const scrollbarOpts = $xeTabs.computeScrollbarOpts as VxeTabsPropTypes.ScrollbarConfig
|
|
201
|
+
const { viewClassName, viewInnerClassName } = scrollbarOpts
|
|
202
|
+
return {
|
|
203
|
+
width: scrollbarOpts.width,
|
|
204
|
+
height: scrollbarOpts.height,
|
|
205
|
+
autoHide: scrollbarOpts.autoHide,
|
|
206
|
+
visible: scrollbarOpts.visible,
|
|
207
|
+
xConfig: scrollbarOpts.xConfig,
|
|
208
|
+
yConfig: scrollbarOpts.yConfig,
|
|
209
|
+
className: scrollbarOpts.className,
|
|
210
|
+
viewAttrs: scrollbarOpts.viewAttrs,
|
|
211
|
+
viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
212
|
+
viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? (' ' + viewInnerClassName) : '')
|
|
213
|
+
}
|
|
196
214
|
}
|
|
197
215
|
},
|
|
198
216
|
methods: {
|
|
@@ -840,8 +858,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
840
858
|
const { initNames, activeName } = reactData
|
|
841
859
|
const { name, slots } = item
|
|
842
860
|
const defaultSlot = slots ? slots.default : null
|
|
843
|
-
const
|
|
844
|
-
const { viewClassName, viewInnerClassName } = scrollbarOpts
|
|
861
|
+
const scrollbarProps = $xeTabs.computeScrollbarProps
|
|
845
862
|
if (name && initNames.includes(name)) {
|
|
846
863
|
return useScrollbar
|
|
847
864
|
? h(VxeScrollbarComponent, {
|
|
@@ -849,11 +866,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
849
866
|
class: ['vxe-tabs-pane--scrollbar-item', {
|
|
850
867
|
'is--visible': activeName === name
|
|
851
868
|
}],
|
|
852
|
-
props:
|
|
853
|
-
...scrollbarOpts,
|
|
854
|
-
viewClassName: 'vxe-tabs-pane--scrollbar-item-view' + (viewClassName ? (' ' + viewClassName) : ''),
|
|
855
|
-
viewInnerClassName: 'vxe-tabs-pane--scrollbar-item-inner' + (viewClassName ? (' ' + viewInnerClassName) : '')
|
|
856
|
-
},
|
|
869
|
+
props: scrollbarProps,
|
|
857
870
|
scopedSlots: {
|
|
858
871
|
default: () => defaultSlot ? $xeTabs.callSlot(defaultSlot, { name }, h) : []
|
|
859
872
|
}
|