vxe-pc-ui 4.20.0 → 4.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/dist/all.esm.js +594 -130
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/card/src/card.js +17 -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 +19 -11
- package/es/list/src/list.js +79 -36
- package/es/list/style.css +25 -8
- package/es/list/style.min.css +1 -1
- package/es/scrollbar/src/scrollbar.js +59 -17
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tabs.js +19 -4
- package/es/tree/src/tree.js +393 -55
- 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 +17 -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 +610 -140
- 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 +7 -7
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/layout-body/src/layout-body.js +27 -21
- package/lib/layout-body/src/layout-body.min.js +1 -1
- package/lib/list/src/list.js +70 -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 +67 -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 +22 -10
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tree/src/tree.js +397 -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 +18 -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 +23 -14
- package/packages/list/src/list.ts +87 -42
- package/packages/scrollbar/src/scrollbar.ts +63 -16
- package/packages/tabs/src/tabs.ts +19 -5
- package/packages/tree/src/tree.ts +432 -64
- 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 +17 -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.1791880413927.ttf → iconfont.1791950625324.ttf} +0 -0
- /package/es/icon/{iconfont.1791880413927.woff → iconfont.1791950625324.woff} +0 -0
- /package/es/icon/{iconfont.1791880413927.woff2 → iconfont.1791950625324.woff2} +0 -0
- /package/es/{iconfont.1791880413927.ttf → iconfont.1791950625324.ttf} +0 -0
- /package/es/{iconfont.1791880413927.woff → iconfont.1791950625324.woff} +0 -0
- /package/es/{iconfont.1791880413927.woff2 → iconfont.1791950625324.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1791880413927.ttf → iconfont.1791950625324.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1791880413927.woff → iconfont.1791950625324.woff} +0 -0
- /package/lib/icon/style/{iconfont.1791880413927.woff2 → iconfont.1791950625324.woff2} +0 -0
- /package/lib/{iconfont.1791880413927.ttf → iconfont.1791950625324.ttf} +0 -0
- /package/lib/{iconfont.1791880413927.woff → iconfont.1791950625324.woff} +0 -0
- /package/lib/{iconfont.1791880413927.woff2 → iconfont.1791950625324.woff2} +0 -0
package/es/list/src/list.js
CHANGED
|
@@ -4,7 +4,7 @@ import XEUtils from 'xe-utils';
|
|
|
4
4
|
import { VxeUI, getConfig, getIcon, getI18n, domUtils, menus, globalEvents, globalResize, useSize, createEvent, renderEmptyElement } from '../../ui';
|
|
5
5
|
import { getCrossListDragRowInfo } from './store';
|
|
6
6
|
import { isScale, removeClass, addClass, getTpImg, toCssUnit, hasClass } 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 { createComponentLog } from '../../ui/src/log';
|
|
9
9
|
import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime';
|
|
10
10
|
import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from '../../scrollbar/src/util';
|
|
@@ -152,7 +152,6 @@ export default defineVxeComponent({
|
|
|
152
152
|
const refFooterElem = ref();
|
|
153
153
|
const refVirtualWrapper = ref();
|
|
154
154
|
const refVirtualBody = ref();
|
|
155
|
-
const refViewInnerElem = ref();
|
|
156
155
|
const refTrackXElem = ref();
|
|
157
156
|
const refTrackYElem = ref();
|
|
158
157
|
const refThumbXElem = ref();
|
|
@@ -205,17 +204,18 @@ export default defineVxeComponent({
|
|
|
205
204
|
});
|
|
206
205
|
const computeWrapperStyles = computed(() => {
|
|
207
206
|
const rowHeight = computeRowHeight.value;
|
|
207
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
208
208
|
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
209
209
|
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
210
|
+
const barWidth = getDefaultConfig(getDefaultConfig(scrollbarYOpts.width, scrollbarOpts.width), getConfig().scrollbar.width);
|
|
211
|
+
const barHeight = getDefaultConfig(getDefaultConfig(scrollbarXOpts.height, scrollbarOpts.height), getConfig().scrollbar.height);
|
|
210
212
|
const stys = {};
|
|
211
213
|
if (rowHeight) {
|
|
212
214
|
stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
|
|
213
215
|
}
|
|
214
|
-
if (
|
|
215
|
-
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(
|
|
216
|
-
|
|
217
|
-
if (scrollbarXOpts.height) {
|
|
218
|
-
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(scrollbarXOpts.height);
|
|
216
|
+
if (barWidth || barHeight) {
|
|
217
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
|
|
218
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
|
|
219
219
|
}
|
|
220
220
|
return stys;
|
|
221
221
|
});
|
|
@@ -243,24 +243,46 @@ export default defineVxeComponent({
|
|
|
243
243
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
244
244
|
return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
|
|
245
245
|
});
|
|
246
|
+
const computeScrollXVisible = computed(() => {
|
|
247
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
248
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
249
|
+
return getDefaultConfig(scrollbarXOpts.visible, scrollbarOpts.visible);
|
|
250
|
+
});
|
|
251
|
+
const computeScrollYVisible = computed(() => {
|
|
252
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
253
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
254
|
+
return getDefaultConfig(scrollbarYOpts.visible, scrollbarOpts.visible);
|
|
255
|
+
});
|
|
256
|
+
const computeScrollXAutoHide = computed(() => {
|
|
257
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
258
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
259
|
+
return getDefaultConfig(getDefaultConfig(scrollbarXOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
|
|
260
|
+
});
|
|
261
|
+
const computeScrollYAutoHide = computed(() => {
|
|
262
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
263
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
264
|
+
return getDefaultConfig(getDefaultConfig(scrollbarYOpts.autoHide, scrollbarOpts.autoHide), getConfig().scrollbar.autoHide);
|
|
265
|
+
});
|
|
246
266
|
const computeScrollbarWrapperClss = computed(() => {
|
|
247
267
|
const scrollbarOpts = computeScrollbarOpts.value;
|
|
248
268
|
const { padding } = scrollbarOpts;
|
|
249
269
|
const { yThumbHeight, xThumbWidth } = reactData;
|
|
250
|
-
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
251
|
-
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
252
270
|
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
253
271
|
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
272
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
273
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
274
|
+
const scrollXAutoHide = computeScrollXAutoHide.value;
|
|
275
|
+
const scrollYAutoHide = computeScrollYAutoHide.value;
|
|
254
276
|
return domUtils.buildClass([
|
|
255
277
|
'vxe-scrollbar is--virtual',
|
|
256
|
-
`ov-x--${
|
|
257
|
-
`ov-y--${
|
|
278
|
+
`ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}`,
|
|
279
|
+
`ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}`,
|
|
258
280
|
`sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`,
|
|
259
281
|
`sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`
|
|
260
282
|
], {
|
|
261
283
|
'is--padding': padding,
|
|
262
|
-
'ov-x--auto-hide':
|
|
263
|
-
'ov-y--auto-hide':
|
|
284
|
+
'ov-x--auto-hide': scrollXAutoHide,
|
|
285
|
+
'ov-y--auto-hide': scrollYAutoHide,
|
|
264
286
|
'overflow-y': yThumbHeight,
|
|
265
287
|
'overflow-x': xThumbWidth
|
|
266
288
|
});
|
|
@@ -2139,7 +2161,7 @@ export default defineVxeComponent({
|
|
|
2139
2161
|
};
|
|
2140
2162
|
const renderVN = () => {
|
|
2141
2163
|
const { showCheckbox, className, loading, useScrollbar } = props;
|
|
2142
|
-
const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate } = reactData;
|
|
2164
|
+
const { bodyHeight, topSpaceHeight, rowList, isAllChecked, isAllIndeterminate, xThumbWidth, yThumbHeight } = reactData;
|
|
2143
2165
|
const defaultSlot = slots.default;
|
|
2144
2166
|
const headerSlot = slots.header;
|
|
2145
2167
|
const footerSlot = slots.footer;
|
|
@@ -2154,22 +2176,38 @@ export default defineVxeComponent({
|
|
|
2154
2176
|
const rowOpts = computeRowOpts.value;
|
|
2155
2177
|
const { isHover, padding } = rowOpts;
|
|
2156
2178
|
const isDrag = computeIsDrag.value;
|
|
2157
|
-
const
|
|
2158
|
-
const
|
|
2179
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
2180
|
+
const scrollXVisible = computeScrollXVisible.value;
|
|
2181
|
+
const scrollYVisible = computeScrollYVisible.value;
|
|
2182
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
2183
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
2184
|
+
const scrollXAutoHide = computeScrollXAutoHide.value;
|
|
2185
|
+
const scrollYAutoHide = computeScrollYAutoHide.value;
|
|
2159
2186
|
const scrollbarWrapperClss = computeScrollbarWrapperClss.value;
|
|
2160
2187
|
const showDefChekboxHead = showCheckbox && showHeader !== false;
|
|
2161
2188
|
const leOns = {};
|
|
2162
2189
|
if (isCrossListDrag && !rowList.length) {
|
|
2163
2190
|
leOns.onDragover = $xeList.handleCrossListRowDragoverEmptyEvent;
|
|
2164
2191
|
}
|
|
2165
|
-
return h('div', Object.assign({ ref: refElem, class: [
|
|
2192
|
+
return h('div', Object.assign({ ref: refElem, class: [
|
|
2193
|
+
'vxe-list',
|
|
2194
|
+
useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '',
|
|
2195
|
+
useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '',
|
|
2196
|
+
useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '',
|
|
2197
|
+
useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '',
|
|
2198
|
+
className ? (XEUtils.isFunction(className) ? className({ $list: $xeList }) : className) : '',
|
|
2199
|
+
{
|
|
2166
2200
|
[`size--${vSize}`]: vSize,
|
|
2167
2201
|
'is--virtual-scrollbar': useScrollbar,
|
|
2168
|
-
'ov-
|
|
2169
|
-
'ov-
|
|
2202
|
+
'ov-padding': useScrollbar && scrollbarOpts.padding,
|
|
2203
|
+
'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
|
|
2204
|
+
'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
|
|
2205
|
+
'overflow-y': yThumbHeight,
|
|
2206
|
+
'overflow-x': xThumbWidth,
|
|
2170
2207
|
'is--drag': isDrag,
|
|
2171
2208
|
'is--loading': loading
|
|
2172
|
-
}
|
|
2209
|
+
}
|
|
2210
|
+
], style: wrapperStyles }, leOns), [
|
|
2173
2211
|
headerSlot || showDefChekboxHead
|
|
2174
2212
|
? h('div', {
|
|
2175
2213
|
ref: refHeaderElem,
|
|
@@ -2226,15 +2264,7 @@ export default defineVxeComponent({
|
|
|
2226
2264
|
style: {
|
|
2227
2265
|
marginTop: topSpaceHeight ? `${topSpaceHeight}px` : ''
|
|
2228
2266
|
}
|
|
2229
|
-
},
|
|
2230
|
-
? (defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => renderRow(row, i)))
|
|
2231
|
-
: [
|
|
2232
|
-
h('div', {
|
|
2233
|
-
key: 'vi',
|
|
2234
|
-
ref: refViewInnerElem,
|
|
2235
|
-
class: 'vxe-scrollbar--view-inner'
|
|
2236
|
-
}, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => renderRow(row, i)))
|
|
2237
|
-
])
|
|
2267
|
+
}, defaultSlot ? defaultSlot({ items: rowList, $list: $xeList }) : rowList.map((row, i) => renderRow(row, i)))
|
|
2238
2268
|
]),
|
|
2239
2269
|
footerSlot
|
|
2240
2270
|
? h('div', {
|
|
@@ -2249,7 +2279,7 @@ export default defineVxeComponent({
|
|
|
2249
2279
|
? h('div', {
|
|
2250
2280
|
class: scrollbarWrapperClss
|
|
2251
2281
|
}, [
|
|
2252
|
-
|
|
2282
|
+
scrollXVisible === false
|
|
2253
2283
|
? renderEmptyElement($xeList)
|
|
2254
2284
|
: h('div', {
|
|
2255
2285
|
ref: refTrackXElem,
|
|
@@ -2266,7 +2296,7 @@ export default defineVxeComponent({
|
|
|
2266
2296
|
onLostpointercapture: cleatPointerThumbEvent
|
|
2267
2297
|
})
|
|
2268
2298
|
]),
|
|
2269
|
-
|
|
2299
|
+
scrollYVisible === false
|
|
2270
2300
|
? renderEmptyElement($xeList)
|
|
2271
2301
|
: h('div', {
|
|
2272
2302
|
ref: refTrackYElem,
|
|
@@ -2318,11 +2348,24 @@ export default defineVxeComponent({
|
|
|
2318
2348
|
watch(() => props.syncResize, () => {
|
|
2319
2349
|
reFlag.value++;
|
|
2320
2350
|
});
|
|
2351
|
+
watch(() => props.useScrollbar, () => {
|
|
2352
|
+
reFlag.value++;
|
|
2353
|
+
});
|
|
2321
2354
|
watch(computeRowHeight, () => {
|
|
2322
2355
|
reFlag.value++;
|
|
2323
2356
|
});
|
|
2324
|
-
watch(
|
|
2357
|
+
watch(computeScrollXVisible, () => {
|
|
2325
2358
|
nextTick(() => {
|
|
2359
|
+
reFlag.value++;
|
|
2360
|
+
});
|
|
2361
|
+
});
|
|
2362
|
+
watch(computeScrollYVisible, () => {
|
|
2363
|
+
nextTick(() => {
|
|
2364
|
+
reFlag.value++;
|
|
2365
|
+
});
|
|
2366
|
+
});
|
|
2367
|
+
watch(reFlag, () => {
|
|
2368
|
+
recalculate().then(() => {
|
|
2326
2369
|
recalculate();
|
|
2327
2370
|
});
|
|
2328
2371
|
});
|
|
@@ -2372,13 +2415,13 @@ export default defineVxeComponent({
|
|
|
2372
2415
|
}
|
|
2373
2416
|
if (useScrollbar || autoResize) {
|
|
2374
2417
|
const el = refElem.value;
|
|
2375
|
-
const viewInnerEl =
|
|
2418
|
+
const viewInnerEl = refVirtualBody.value;
|
|
2376
2419
|
const resizeObserver = globalResize.create(() => {
|
|
2377
2420
|
reFlag.value++;
|
|
2378
2421
|
});
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
if (
|
|
2422
|
+
if (el) {
|
|
2423
|
+
resizeObserver.observe(el);
|
|
2424
|
+
if (autoResize) {
|
|
2382
2425
|
resizeObserver.observe(el.parentElement);
|
|
2383
2426
|
}
|
|
2384
2427
|
}
|
package/es/list/style.css
CHANGED
|
@@ -376,17 +376,24 @@
|
|
|
376
376
|
vertical-align: middle;
|
|
377
377
|
}
|
|
378
378
|
|
|
379
|
-
.vxe-list
|
|
380
|
-
|
|
379
|
+
.vxe-list.ov-padding.overflow-x.sx-pos--top {
|
|
380
|
+
padding-top: var(--vxe-ui-scrollbar-x-height);
|
|
381
381
|
}
|
|
382
|
-
.vxe-list.
|
|
383
|
-
|
|
384
|
-
-ms-overflow-style: none;
|
|
382
|
+
.vxe-list.ov-padding.overflow-x.sx-pos--bottom {
|
|
383
|
+
padding-bottom: var(--vxe-ui-scrollbar-x-height);
|
|
385
384
|
}
|
|
386
|
-
.vxe-list.
|
|
387
|
-
|
|
385
|
+
.vxe-list.ov-padding.overflow-y.sy-pos--left {
|
|
386
|
+
padding-left: var(--vxe-ui-scrollbar-y-width);
|
|
387
|
+
}
|
|
388
|
+
.vxe-list.ov-padding.overflow-y.sy-pos--right {
|
|
389
|
+
padding-right: var(--vxe-ui-scrollbar-y-width);
|
|
390
|
+
}
|
|
391
|
+
.vxe-list.ov-x--hidden > .vxe-list--virtual-wrapper {
|
|
392
|
+
overflow-x: hidden;
|
|
393
|
+
}
|
|
394
|
+
.vxe-list.ov-y--hidden > .vxe-list--virtual-wrapper {
|
|
395
|
+
overflow-y: hidden;
|
|
388
396
|
}
|
|
389
|
-
|
|
390
397
|
.vxe-list.is--virtual-scrollbar.ov-x--auto-hide:hover > .vxe-scrollbar > .vxe-scrollbar--track-x {
|
|
391
398
|
opacity: 1;
|
|
392
399
|
}
|
|
@@ -400,4 +407,14 @@
|
|
|
400
407
|
.vxe-list.is--virtual-scrollbar.ov-y--auto-hide > .vxe-scrollbar > .vxe-scrollbar--track-y {
|
|
401
408
|
opacity: 0;
|
|
402
409
|
transition: opacity 0.8s ease-in-out;
|
|
410
|
+
}
|
|
411
|
+
.vxe-list > .vxe-scrollbar {
|
|
412
|
+
position: unset;
|
|
413
|
+
}
|
|
414
|
+
.vxe-list.is--virtual-scrollbar > .vxe-list--virtual-wrapper {
|
|
415
|
+
scrollbar-width: none;
|
|
416
|
+
-ms-overflow-style: none;
|
|
417
|
+
}
|
|
418
|
+
.vxe-list.is--virtual-scrollbar > .vxe-list--virtual-wrapper::-webkit-scrollbar {
|
|
419
|
+
display: none;
|
|
403
420
|
}
|
package/es/list/style.min.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";.vxe-list{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-list.size--medium{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-medium)}.vxe-list.size--small{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-small)}.vxe-list.size--mini{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-mini)}.vxe-list{position:relative;display:block;padding:0;font-size:var(--vxe-ui-list-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);direction:ltr}.vxe-list .vxe-list--virtual-wrapper{position:relative;overflow-x:auto;overflow-y:auto;outline:0}.vxe-list .vxe-list--y-space{width:0;float:left}.vxe-list .vxe-list--body,.vxe-list .vxe-list--virtual-wrapper{padding:0;margin:0;border:0;outline:0}.vxe-list--header-wrapper{display:flex;flex-direction:row;align-items:center;min-height:var(--vxe-ui-list-row-height)}.vxe-list--header-left{display:flex;flex-direction:row;align-items:center;flex-shrink:0}.vxe-list--header-content{flex-grow:1;overflow:auto}.vxe-list--body.trigger--row>.vxe-list--row:not(.is--drag-disabled):active{cursor:grabbing}.vxe-list--body.is--padding>.vxe-list--row{padding:0 var(--vxe-ui-list-current-padding)}.vxe-list--body.checkbox--highlight .vxe-list--row.is-checkbox--checked{background-color:var(--vxe-ui-list-row-checkbox-checked-background-color)}.vxe-list--body.radio--highlight .vxe-list--row.is-radio--checked{background-color:var(--vxe-ui-list-row-radio-checked-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover{background-color:var(--vxe-ui-list-row-hover-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover.is--current{background-color:var(--vxe-ui-list-row-hover-current-background-color)}.vxe-list--body.row--hover.radio--highlight .vxe-list--row.is-radio--checked:hover{background-color:var(--vxe-ui-list-row-hover-radio-checked-background-color)}.vxe-list--body.row--hover.checkbox--highlight .vxe-list--row.is-checkbox--checked:hover{background-color:var(--vxe-ui-list-row-hover-checkbox-checked-background-color)}.vxe-list--row.is--current{background-color:var(--vxe-ui-list-row-current-background-color)}.vxe-list--virtual-wrapper{height:100px}.vxe-list--row{display:flex;flex-direction:row;align-items:center}.vxe-list--row-content,.vxe-list--row-drag,.vxe-list--row-extra{display:flex;flex-direction:row;align-items:center}.vxe-list--row-drag{flex-shrink:0;padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--row-content{flex-grow:1;height:var(--vxe-ui-list-row-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--row-extra{flex-shrink:0}.vxe-list--drag-handle:not(.is--disabled){cursor:grab}.vxe-list--drag-handle:not(.is--disabled):active{cursor:grabbing}.vxe-list--drag-handle:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-handle.is--disabled{color:var(--vxe-ui-input-disabled-color);cursor:not-allowed}.vxe-list--row.row--drag-move{transition:transform .5s ease}.vxe-list--row.row--drag-origin{opacity:.3}.vxe-list--drag-row-line{display:none;position:absolute;top:0;left:0;z-index:11;pointer-events:none}.vxe-list--drag-row-line{width:100%;height:1px;border:2px solid transparent}.vxe-list--drag-row-line[drag-pos=top]{border-top-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-pos=bottom]{border-bottom-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-to-child=y]{border-top-color:transparent;border-bottom-color:transparent;border-left-color:var(--vxe-ui-status-success-color)}.vxe-list--drag-row-line.is--guides{background-color:var(--vxe-ui-list-drag-over-background-color)}.vxe-body--row-list-move{transition-property:transform;transition-duration:.35s}.vxe-list--drag-sort-tip{display:none;position:absolute;top:0;left:0;padding:.6em 1.4em;max-width:50%;min-width:100px;border-radius:var(--vxe-ui-border-radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;background-color:var(--vxe-ui-layout-background-color);box-shadow:0 0 10px 0 rgba(0,0,0,.2);z-index:33}.vxe-list--drag-sort-tip[drag-status=normal] .vxe-list--drag-sort-tip-normal-status{display:block}.vxe-list--drag-sort-tip[drag-status=sub] .vxe-list--drag-sort-tip-sub-status{display:block}.vxe-list--drag-sort-tip[drag-status=disabled] .vxe-list--drag-sort-tip-disabled-status{display:block}.vxe-list--drag-sort-tip-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-list--drag-sort-tip-status{padding-right:.4em}.vxe-list--drag-sort-tip-disabled-status{display:none;flex-shrink:0;color:var(--vxe-ui-status-error-color)}.vxe-list--drag-sort-tip-normal-status,.vxe-list--drag-sort-tip-sub-status{display:none}.vxe-list--drag-sort-tip-content{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--checkbox-header{padding-right:var(--vxe-ui-list-current-padding);-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-list--checkbox-header{cursor:pointer}.vxe-list--checkbox-header .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-header .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-list--checkbox-header.is--checked,.vxe-list--checkbox-header.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-header.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--hidden{cursor:default}.vxe-list--checkbox-header.is--readonly{cursor:auto}.vxe-list--checkbox-header.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-header.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-header .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--checkbox-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--checkbox-option{cursor:pointer}.vxe-list--checkbox-option .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-option .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-list--checkbox-option.is--checked,.vxe-list--checkbox-option.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--hidden{cursor:default}.vxe-list--checkbox-option.is--readonly{cursor:auto}.vxe-list--checkbox-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-option .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--radio-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--radio-option{cursor:pointer}.vxe-list--radio-option .vxe-radio--icon{font-size:1.26em;transition:all .2s ease-in-out}.vxe-list--radio-option .vxe-radio--icon{color:var(--vxe-ui-input-border-color);border-radius:50%;vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-list--radio-option.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--readonly{cursor:auto}.vxe-list--radio-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--radio-option.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--radio-option .vxe-radio--label{padding-left:.4em;vertical-align:middle}.vxe-list
|
|
1
|
+
@charset "UTF-8";.vxe-list{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-list.size--medium{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-medium)}.vxe-list.size--small{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-small)}.vxe-list.size--mini{--vxe-ui-list-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-list-current-padding:var(--vxe-ui-layout-padding-mini)}.vxe-list{position:relative;display:block;padding:0;font-size:var(--vxe-ui-list-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);direction:ltr}.vxe-list .vxe-list--virtual-wrapper{position:relative;overflow-x:auto;overflow-y:auto;outline:0}.vxe-list .vxe-list--y-space{width:0;float:left}.vxe-list .vxe-list--body,.vxe-list .vxe-list--virtual-wrapper{padding:0;margin:0;border:0;outline:0}.vxe-list--header-wrapper{display:flex;flex-direction:row;align-items:center;min-height:var(--vxe-ui-list-row-height)}.vxe-list--header-left{display:flex;flex-direction:row;align-items:center;flex-shrink:0}.vxe-list--header-content{flex-grow:1;overflow:auto}.vxe-list--body.trigger--row>.vxe-list--row:not(.is--drag-disabled):active{cursor:grabbing}.vxe-list--body.is--padding>.vxe-list--row{padding:0 var(--vxe-ui-list-current-padding)}.vxe-list--body.checkbox--highlight .vxe-list--row.is-checkbox--checked{background-color:var(--vxe-ui-list-row-checkbox-checked-background-color)}.vxe-list--body.radio--highlight .vxe-list--row.is-radio--checked{background-color:var(--vxe-ui-list-row-radio-checked-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover{background-color:var(--vxe-ui-list-row-hover-background-color)}.vxe-list--body.row--hover .vxe-list--row:hover.is--current{background-color:var(--vxe-ui-list-row-hover-current-background-color)}.vxe-list--body.row--hover.radio--highlight .vxe-list--row.is-radio--checked:hover{background-color:var(--vxe-ui-list-row-hover-radio-checked-background-color)}.vxe-list--body.row--hover.checkbox--highlight .vxe-list--row.is-checkbox--checked:hover{background-color:var(--vxe-ui-list-row-hover-checkbox-checked-background-color)}.vxe-list--row.is--current{background-color:var(--vxe-ui-list-row-current-background-color)}.vxe-list--virtual-wrapper{height:100px}.vxe-list--row{display:flex;flex-direction:row;align-items:center}.vxe-list--row-content,.vxe-list--row-drag,.vxe-list--row-extra{display:flex;flex-direction:row;align-items:center}.vxe-list--row-drag{flex-shrink:0;padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--row-content{flex-grow:1;height:var(--vxe-ui-list-row-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--row-extra{flex-shrink:0}.vxe-list--drag-handle:not(.is--disabled){cursor:grab}.vxe-list--drag-handle:not(.is--disabled):active{cursor:grabbing}.vxe-list--drag-handle:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-handle.is--disabled{color:var(--vxe-ui-input-disabled-color);cursor:not-allowed}.vxe-list--row.row--drag-move{transition:transform .5s ease}.vxe-list--row.row--drag-origin{opacity:.3}.vxe-list--drag-row-line{display:none;position:absolute;top:0;left:0;z-index:11;pointer-events:none}.vxe-list--drag-row-line{width:100%;height:1px;border:2px solid transparent}.vxe-list--drag-row-line[drag-pos=top]{border-top-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-pos=bottom]{border-bottom-color:var(--vxe-ui-font-primary-color)}.vxe-list--drag-row-line[drag-to-child=y]{border-top-color:transparent;border-bottom-color:transparent;border-left-color:var(--vxe-ui-status-success-color)}.vxe-list--drag-row-line.is--guides{background-color:var(--vxe-ui-list-drag-over-background-color)}.vxe-body--row-list-move{transition-property:transform;transition-duration:.35s}.vxe-list--drag-sort-tip{display:none;position:absolute;top:0;left:0;padding:.6em 1.4em;max-width:50%;min-width:100px;border-radius:var(--vxe-ui-border-radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;background-color:var(--vxe-ui-layout-background-color);box-shadow:0 0 10px 0 rgba(0,0,0,.2);z-index:33}.vxe-list--drag-sort-tip[drag-status=normal] .vxe-list--drag-sort-tip-normal-status{display:block}.vxe-list--drag-sort-tip[drag-status=sub] .vxe-list--drag-sort-tip-sub-status{display:block}.vxe-list--drag-sort-tip[drag-status=disabled] .vxe-list--drag-sort-tip-disabled-status{display:block}.vxe-list--drag-sort-tip-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-list--drag-sort-tip-status{padding-right:.4em}.vxe-list--drag-sort-tip-disabled-status{display:none;flex-shrink:0;color:var(--vxe-ui-status-error-color)}.vxe-list--drag-sort-tip-normal-status,.vxe-list--drag-sort-tip-sub-status{display:none}.vxe-list--drag-sort-tip-content{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-list--checkbox-header{padding-right:var(--vxe-ui-list-current-padding);-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-list--checkbox-header{cursor:pointer}.vxe-list--checkbox-header .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-header .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-list--checkbox-header.is--checked,.vxe-list--checkbox-header.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-header.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-header.is--hidden{cursor:default}.vxe-list--checkbox-header.is--readonly{cursor:auto}.vxe-list--checkbox-header.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-header.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-header .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--checkbox-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--checkbox-option{cursor:pointer}.vxe-list--checkbox-option .vxe-checkbox--icon{font-size:1.22em;transition:all .2s ease-in-out}.vxe-list--checkbox-option .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-list--checkbox-option.is--checked,.vxe-list--checkbox-option.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--checked .vxe-checkbox--icon,.vxe-list--checkbox-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--checkbox-option.is--hidden{cursor:default}.vxe-list--checkbox-option.is--readonly{cursor:auto}.vxe-list--checkbox-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--checkbox-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--checkbox-option .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-list--radio-option{padding-right:var(--vxe-ui-list-current-padding)}.vxe-list--radio-option{cursor:pointer}.vxe-list--radio-option .vxe-radio--icon{font-size:1.26em;transition:all .2s ease-in-out}.vxe-list--radio-option .vxe-radio--icon{color:var(--vxe-ui-input-border-color);border-radius:50%;vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-list--radio-option.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-list--radio-option.is--readonly{cursor:auto}.vxe-list--radio-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-list--radio-option.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-list--radio-option .vxe-radio--label{padding-left:.4em;vertical-align:middle}.vxe-list.ov-padding.overflow-x.sx-pos--top{padding-top:var(--vxe-ui-scrollbar-x-height)}.vxe-list.ov-padding.overflow-x.sx-pos--bottom{padding-bottom:var(--vxe-ui-scrollbar-x-height)}.vxe-list.ov-padding.overflow-y.sy-pos--left{padding-left:var(--vxe-ui-scrollbar-y-width)}.vxe-list.ov-padding.overflow-y.sy-pos--right{padding-right:var(--vxe-ui-scrollbar-y-width)}.vxe-list.ov-x--hidden>.vxe-list--virtual-wrapper{overflow-x:hidden}.vxe-list.ov-y--hidden>.vxe-list--virtual-wrapper{overflow-y:hidden}.vxe-list.is--virtual-scrollbar.ov-x--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:1}.vxe-list.is--virtual-scrollbar.ov-x--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-list.is--virtual-scrollbar.ov-y--auto-hide:hover>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:1}.vxe-list.is--virtual-scrollbar.ov-y--auto-hide>.vxe-scrollbar>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-list>.vxe-scrollbar{position:unset}.vxe-list.is--virtual-scrollbar>.vxe-list--virtual-wrapper{scrollbar-width:none;-ms-overflow-style:none}.vxe-list.is--virtual-scrollbar>.vxe-list--virtual-wrapper::-webkit-scrollbar{display:none}
|
|
@@ -4,6 +4,7 @@ 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';
|
|
7
8
|
import VxeLoadingComponent from '../../loading';
|
|
8
9
|
const { getConfig, createEvent, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI;
|
|
9
10
|
function createReactData() {
|
|
@@ -27,6 +28,7 @@ export default defineVxeComponent({
|
|
|
27
28
|
name: 'VxeScrollbar',
|
|
28
29
|
props: {
|
|
29
30
|
id: [String, Number],
|
|
31
|
+
viewId: [String, Number],
|
|
30
32
|
width: [String, Number],
|
|
31
33
|
height: [String, Number],
|
|
32
34
|
minWidth: [String, Number],
|
|
@@ -42,6 +44,14 @@ export default defineVxeComponent({
|
|
|
42
44
|
type: Boolean,
|
|
43
45
|
default: () => getConfig().scrollbar.padding
|
|
44
46
|
},
|
|
47
|
+
autoHide: {
|
|
48
|
+
type: Boolean,
|
|
49
|
+
default: () => getConfig().scrollbar.autoHide
|
|
50
|
+
},
|
|
51
|
+
visible: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: () => getConfig().scrollbar.visible
|
|
54
|
+
},
|
|
45
55
|
xConfig: Object,
|
|
46
56
|
yConfig: Object,
|
|
47
57
|
className: {
|
|
@@ -86,6 +96,8 @@ export default defineVxeComponent({
|
|
|
86
96
|
const { width, height, minWidth, minHeight, maxWidth, maxHeight } = props;
|
|
87
97
|
const xOpts = computeXOpts.value;
|
|
88
98
|
const yOpts = computeYOpts.value;
|
|
99
|
+
const barWidth = yOpts.width;
|
|
100
|
+
const barHeight = xOpts.height;
|
|
89
101
|
const stys = {};
|
|
90
102
|
if (width) {
|
|
91
103
|
stys.width = toCssUnit(width);
|
|
@@ -105,33 +117,53 @@ export default defineVxeComponent({
|
|
|
105
117
|
if (maxHeight) {
|
|
106
118
|
stys.maxHeight = toCssUnit(maxHeight);
|
|
107
119
|
}
|
|
108
|
-
if (
|
|
109
|
-
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(
|
|
110
|
-
|
|
111
|
-
if (xOpts.height) {
|
|
112
|
-
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(xOpts.height);
|
|
120
|
+
if (barWidth || barHeight) {
|
|
121
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(barWidth || barHeight);
|
|
122
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(barHeight || barWidth);
|
|
113
123
|
}
|
|
114
124
|
return stys;
|
|
115
125
|
});
|
|
126
|
+
const computeXVisible = computed(() => {
|
|
127
|
+
const { visible } = props;
|
|
128
|
+
const xOpts = computeXOpts.value;
|
|
129
|
+
return getDefaultConfig(xOpts.visible, visible);
|
|
130
|
+
});
|
|
131
|
+
const computeYVisible = computed(() => {
|
|
132
|
+
const { visible } = props;
|
|
133
|
+
const yOpts = computeYOpts.value;
|
|
134
|
+
return getDefaultConfig(yOpts.visible, visible);
|
|
135
|
+
});
|
|
136
|
+
const computeXAutoHide = computed(() => {
|
|
137
|
+
const { autoHide } = props;
|
|
138
|
+
const xOpts = computeXOpts.value;
|
|
139
|
+
return getDefaultConfig(xOpts.autoHide, autoHide);
|
|
140
|
+
});
|
|
141
|
+
const computeYAutoHide = computed(() => {
|
|
142
|
+
const { autoHide } = props;
|
|
143
|
+
const yOpts = computeYOpts.value;
|
|
144
|
+
return getDefaultConfig(yOpts.autoHide, autoHide);
|
|
145
|
+
});
|
|
116
146
|
const computeWrapperClss = computed(() => {
|
|
117
147
|
const { native, className, padding } = props;
|
|
118
148
|
const { yThumbHeight, xThumbWidth } = reactData;
|
|
119
|
-
const xOpts = computeXOpts.value;
|
|
120
|
-
const yOpts = computeYOpts.value;
|
|
121
149
|
const xToTop = computeXToTop.value;
|
|
122
150
|
const yToLeft = computeYToLeft.value;
|
|
151
|
+
const xVisible = computeXVisible.value;
|
|
152
|
+
const yVisible = computeYVisible.value;
|
|
153
|
+
const xAutoHide = computeXAutoHide.value;
|
|
154
|
+
const yAutoHide = computeYAutoHide.value;
|
|
123
155
|
return domUtils.buildClass([
|
|
124
156
|
'vxe-scrollbar',
|
|
125
|
-
`ov-x--${
|
|
126
|
-
`ov-y--${
|
|
157
|
+
`ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
|
|
158
|
+
`ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
|
|
127
159
|
`sx-pos--${xToTop ? 'top' : 'bottom'}`,
|
|
128
160
|
`sy-pos--${yToLeft ? 'left' : 'right'}`,
|
|
129
161
|
native ? 'is--native' : 'is--virtual',
|
|
130
162
|
className
|
|
131
163
|
], {
|
|
132
164
|
'is--padding': padding,
|
|
133
|
-
'ov-x--auto-hide':
|
|
134
|
-
'ov-y--auto-hide':
|
|
165
|
+
'ov-x--auto-hide': xAutoHide,
|
|
166
|
+
'ov-y--auto-hide': yAutoHide,
|
|
135
167
|
'overflow-y': yThumbHeight,
|
|
136
168
|
'overflow-x': xThumbWidth
|
|
137
169
|
});
|
|
@@ -471,13 +503,13 @@ export default defineVxeComponent({
|
|
|
471
503
|
const scrollbarPrivateMethods = {};
|
|
472
504
|
Object.assign($xeScrollbar, scrollbarMethods, scrollbarPrivateMethods);
|
|
473
505
|
const renderVN = () => {
|
|
474
|
-
const { id, native, loading, viewAttrs } = props;
|
|
506
|
+
const { id, native, loading, viewId, viewAttrs } = props;
|
|
475
507
|
const wrapperStyle = computeWrapperStyle.value;
|
|
476
508
|
const wrapperClss = computeWrapperClss.value;
|
|
477
509
|
const viewClss = computeViewClss.value;
|
|
478
510
|
const viewInnerClss = computeViewInnerClss.value;
|
|
479
|
-
const
|
|
480
|
-
const
|
|
511
|
+
const xVisible = computeXVisible.value;
|
|
512
|
+
const yVisible = computeYVisible.value;
|
|
481
513
|
const defaultSlot = slots.default;
|
|
482
514
|
return h('div', {
|
|
483
515
|
ref: refElem,
|
|
@@ -485,14 +517,14 @@ export default defineVxeComponent({
|
|
|
485
517
|
class: wrapperClss,
|
|
486
518
|
style: wrapperStyle
|
|
487
519
|
}, [
|
|
488
|
-
h('div', Object.assign({ ref: refViewElem, class: viewClss, onScroll: scrollEvent }, viewAttrs), [
|
|
520
|
+
h('div', Object.assign({ ref: refViewElem, class: viewClss, onScroll: scrollEvent, id: viewId || null }, viewAttrs), [
|
|
489
521
|
h('div', {
|
|
490
522
|
key: 'vi',
|
|
491
523
|
ref: refViewInnerElem,
|
|
492
524
|
class: viewInnerClss
|
|
493
525
|
}, defaultSlot ? defaultSlot({}) : [])
|
|
494
526
|
]),
|
|
495
|
-
native ||
|
|
527
|
+
native || xVisible === false
|
|
496
528
|
? renderEmptyElement($xeScrollbar)
|
|
497
529
|
: h('div', {
|
|
498
530
|
ref: refTrackXElem,
|
|
@@ -509,7 +541,7 @@ export default defineVxeComponent({
|
|
|
509
541
|
onLostpointercapture: cleatPointerThumbEvent
|
|
510
542
|
})
|
|
511
543
|
]),
|
|
512
|
-
native ||
|
|
544
|
+
native || yVisible === false
|
|
513
545
|
? renderEmptyElement($xeScrollbar)
|
|
514
546
|
: h('div', {
|
|
515
547
|
ref: refTrackYElem,
|
|
@@ -557,6 +589,16 @@ export default defineVxeComponent({
|
|
|
557
589
|
watch(() => props.syncResize, () => {
|
|
558
590
|
reFlag.value++;
|
|
559
591
|
});
|
|
592
|
+
watch(computeXVisible, () => {
|
|
593
|
+
nextTick(() => {
|
|
594
|
+
reFlag.value++;
|
|
595
|
+
});
|
|
596
|
+
});
|
|
597
|
+
watch(computeYVisible, () => {
|
|
598
|
+
nextTick(() => {
|
|
599
|
+
reFlag.value++;
|
|
600
|
+
});
|
|
601
|
+
});
|
|
560
602
|
watch(reFlag, () => {
|
|
561
603
|
$xeScrollbar.recalculate().then(() => {
|
|
562
604
|
$xeScrollbar.recalculate();
|