@vxe-ui/core 3.4.35 → 3.4.37
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/src/core.js +1 -1
- package/es/src/log.js +1 -1
- package/es/src/mixins.js +206 -11
- package/es/src/popper-utils.js +1 -1
- package/lib/index.umd.js +237 -12
- package/lib/index.umd.min.js +1 -1
- package/lib/src/core.js +1 -1
- package/lib/src/core.min.js +1 -1
- package/lib/src/log.js +1 -1
- package/lib/src/log.min.js +1 -1
- package/lib/src/mixins.js +234 -11
- package/lib/src/mixins.min.js +1 -1
- package/lib/src/popper-utils.js +1 -1
- package/lib/src/popper-utils.min.js +1 -1
- package/package.json +1 -1
- package/packages/src/mixins.ts +240 -11
- package/packages/src/popper-utils.ts +1 -1
- package/types/core/mixins.d.ts +101 -9
package/es/src/core.js
CHANGED
package/es/src/log.js
CHANGED
package/es/src/mixins.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import XEUtils from 'xe-utils';
|
|
2
2
|
import Vue from 'vue';
|
|
3
3
|
import { handleCheckInfo } from './permission';
|
|
4
|
+
import { scrollbarUtils } from './scrollbar-utils';
|
|
5
|
+
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils;
|
|
6
|
+
function getVmInternalData($xeVm) {
|
|
7
|
+
// 新版本 $xeVm.internalData
|
|
8
|
+
// 老版本 $xeVm
|
|
9
|
+
return $xeVm.internalData || $xeVm;
|
|
10
|
+
}
|
|
11
|
+
function getVmReactData($xeVm) {
|
|
12
|
+
// 新版本 $xeVm.reactData
|
|
13
|
+
// 老版本 $xeVm
|
|
14
|
+
return $xeVm.reactData || $xeVm;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 组件尺寸上下文
|
|
18
|
+
*/
|
|
4
19
|
export const sizeMixin = Vue.extend({
|
|
5
20
|
inject: {
|
|
6
21
|
$xeSizeInfo: {
|
|
@@ -22,15 +37,28 @@ export const sizeMixin = Vue.extend({
|
|
|
22
37
|
}
|
|
23
38
|
}
|
|
24
39
|
});
|
|
40
|
+
/**
|
|
41
|
+
* 权限码处理
|
|
42
|
+
*/
|
|
43
|
+
export const permissionMixin = Vue.extend({
|
|
44
|
+
computed: {
|
|
45
|
+
computePermissionInfo() {
|
|
46
|
+
return handleCheckInfo(this.permissionCode, this.permissionMethod);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* 虚拟滚动条是否启用
|
|
52
|
+
*/
|
|
25
53
|
export const vScrollbarMixin = Vue.extend({
|
|
26
54
|
inject: {
|
|
27
|
-
$
|
|
55
|
+
$xeVmInfo: {
|
|
28
56
|
default: null
|
|
29
57
|
}
|
|
30
58
|
},
|
|
31
59
|
provide() {
|
|
32
60
|
return {
|
|
33
|
-
$
|
|
61
|
+
$xeVmInfo: {
|
|
34
62
|
getIsVScrollbar: () => this.computeIsVScrollbar
|
|
35
63
|
}
|
|
36
64
|
};
|
|
@@ -38,20 +66,187 @@ export const vScrollbarMixin = Vue.extend({
|
|
|
38
66
|
computed: {
|
|
39
67
|
computeIsVScrollbar() {
|
|
40
68
|
const { useScrollbar } = this;
|
|
41
|
-
const $
|
|
42
|
-
return XEUtils.isBoolean(useScrollbar) ? useScrollbar : ($
|
|
69
|
+
const $xeVmInfo = this.$xeVmInfo;
|
|
70
|
+
return XEUtils.isBoolean(useScrollbar) ? useScrollbar : ($xeVmInfo ? $xeVmInfo.getIsVScrollbar() : null);
|
|
43
71
|
}
|
|
44
72
|
}
|
|
45
73
|
});
|
|
46
|
-
export const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
74
|
+
export const initVScrollbarMixin = Vue.extend(Object.assign(Object.assign({}, {}), { methods: {
|
|
75
|
+
updateThumbSize() {
|
|
76
|
+
const $xeVm = this;
|
|
77
|
+
const reactData = getVmReactData($xeVm);
|
|
78
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
79
|
+
if (!viewEl) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const trackXEl = $xeVm.$refs.refTrackXElem;
|
|
86
|
+
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
87
|
+
const thumbXElem = $xeVm.$refs.refThumbXElem;
|
|
88
|
+
if (thumbXElem) {
|
|
89
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
90
|
+
}
|
|
91
|
+
reactData.xThumbWidth = xThumbWidth;
|
|
92
|
+
const trackYEl = $xeVm.$refs.refTrackYElem;
|
|
93
|
+
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
94
|
+
const thumbYElem = $xeVm.$refs.refThumbYElem;
|
|
95
|
+
if (thumbYElem) {
|
|
96
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
97
|
+
}
|
|
98
|
+
reactData.yThumbHeight = yThumbHeight;
|
|
99
|
+
},
|
|
100
|
+
updateThumbOffset() {
|
|
101
|
+
const $xeVm = this;
|
|
102
|
+
const reactData = getVmReactData($xeVm);
|
|
103
|
+
const internalData = getVmInternalData($xeVm);
|
|
104
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
105
|
+
if (!viewEl) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const { xThumbWidth, yThumbHeight } = reactData;
|
|
112
|
+
const trackXEl = $xeVm.$refs.refTrackXElem;
|
|
113
|
+
const thumbXElem = $xeVm.$refs.refThumbXElem;
|
|
114
|
+
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
|
|
115
|
+
internalData.xThumbLeft = xThumbLeft;
|
|
116
|
+
if (thumbXElem && xThumbWidth) {
|
|
117
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
118
|
+
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
|
|
119
|
+
}
|
|
120
|
+
const trackYEl = $xeVm.$refs.refTrackYElem;
|
|
121
|
+
const thumbYElem = $xeVm.$refs.refThumbYElem;
|
|
122
|
+
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
123
|
+
internalData.yThumbTop = yThumbTop;
|
|
124
|
+
if (thumbYElem && yThumbHeight) {
|
|
125
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
126
|
+
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
clickTrackXEvent(evnt) {
|
|
130
|
+
const $xeVm = this;
|
|
131
|
+
const reactData = getVmReactData($xeVm);
|
|
132
|
+
const trackEl = evnt.currentTarget;
|
|
133
|
+
if (trackEl !== evnt.target) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
137
|
+
if (!viewEl) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const { xThumbWidth } = reactData;
|
|
141
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
142
|
+
viewEl.scrollTo({
|
|
143
|
+
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
144
|
+
behavior: 'auto'
|
|
145
|
+
});
|
|
146
|
+
},
|
|
147
|
+
clickTrackYEvent(evnt) {
|
|
148
|
+
const $xeVm = this;
|
|
149
|
+
const reactData = getVmReactData($xeVm);
|
|
150
|
+
const trackEl = evnt.currentTarget;
|
|
151
|
+
if (trackEl !== evnt.target) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
155
|
+
if (!viewEl) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const { yThumbHeight } = reactData;
|
|
159
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
160
|
+
viewEl.scrollTo({
|
|
161
|
+
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
162
|
+
behavior: 'auto'
|
|
163
|
+
});
|
|
164
|
+
},
|
|
165
|
+
pointerdownThumbXEvent(evnt) {
|
|
166
|
+
const $xeVm = this;
|
|
167
|
+
const reactData = getVmReactData($xeVm);
|
|
168
|
+
const internalData = getVmInternalData($xeVm);
|
|
169
|
+
const thumbEl = evnt.currentTarget;
|
|
170
|
+
internalData.isThumbDrag = true;
|
|
171
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
172
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
173
|
+
if (!viewEl) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const { xThumbWidth } = reactData;
|
|
177
|
+
const trackEl = thumbEl.parentElement;
|
|
178
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
179
|
+
const pointerPosition = evnt.clientX - trackRect.left;
|
|
180
|
+
// 记录 thumb 的偏移
|
|
181
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
182
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
183
|
+
},
|
|
184
|
+
pointermoveThumbXEvent(evnt) {
|
|
185
|
+
const $xeVm = this;
|
|
186
|
+
const reactData = getVmReactData($xeVm);
|
|
187
|
+
const internalData = getVmInternalData($xeVm);
|
|
188
|
+
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
189
|
+
if (isThumbDrag) {
|
|
190
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
191
|
+
if (!viewEl) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
const { xThumbWidth } = reactData;
|
|
195
|
+
const thumbEl = evnt.currentTarget;
|
|
196
|
+
const trackEl = thumbEl.parentElement;
|
|
197
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
198
|
+
// 更新偏移
|
|
199
|
+
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
cleatPointerThumbEvent(evnt) {
|
|
203
|
+
const $xeVm = this;
|
|
204
|
+
const internalData = getVmInternalData($xeVm);
|
|
205
|
+
const thumbEl = evnt.currentTarget;
|
|
206
|
+
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
207
|
+
internalData.isThumbDrag = false;
|
|
208
|
+
},
|
|
209
|
+
pointerdownThumbYEvent(evnt) {
|
|
210
|
+
const $xeVm = this;
|
|
211
|
+
const reactData = getVmReactData($xeVm);
|
|
212
|
+
const internalData = getVmInternalData($xeVm);
|
|
213
|
+
const thumbEl = evnt.currentTarget;
|
|
214
|
+
internalData.isThumbDrag = true;
|
|
215
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
216
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
217
|
+
if (!viewEl) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const { yThumbHeight } = reactData;
|
|
221
|
+
const trackEl = thumbEl.parentElement;
|
|
222
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
223
|
+
const pointerPosition = evnt.clientY - trackRect.top;
|
|
224
|
+
// 记录 thumb 的偏移
|
|
225
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
226
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
227
|
+
},
|
|
228
|
+
pointermoveThumbYEvent(evnt) {
|
|
229
|
+
const $xeVm = this;
|
|
230
|
+
const reactData = getVmReactData($xeVm);
|
|
231
|
+
const internalData = getVmInternalData($xeVm);
|
|
232
|
+
const { isThumbDrag, thumbDragOffset } = internalData;
|
|
233
|
+
if (isThumbDrag) {
|
|
234
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
235
|
+
if (!viewEl) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const { yThumbHeight } = reactData;
|
|
239
|
+
const thumbEl = evnt.currentTarget;
|
|
240
|
+
const trackEl = thumbEl.parentElement;
|
|
241
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
242
|
+
// 更新偏移
|
|
243
|
+
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
244
|
+
}
|
|
50
245
|
}
|
|
51
|
-
}
|
|
52
|
-
});
|
|
246
|
+
} }));
|
|
53
247
|
export const globalMixins = {
|
|
54
248
|
sizeMixin,
|
|
249
|
+
permissionMixin,
|
|
55
250
|
vScrollbarMixin,
|
|
56
|
-
|
|
251
|
+
initVScrollbarMixin
|
|
57
252
|
};
|
package/es/src/popper-utils.js
CHANGED
|
@@ -35,7 +35,7 @@ export const popperUtils = {
|
|
|
35
35
|
const { defaultTop, defaultLeft, placement, defaultPlacement, appendTo, teleportTo, marginSize, isMinWidth } = Object.assign({
|
|
36
36
|
appendTo: '',
|
|
37
37
|
teleportTo: false,
|
|
38
|
-
marginSize:
|
|
38
|
+
marginSize: 12,
|
|
39
39
|
isMinWidth: true
|
|
40
40
|
}, options);
|
|
41
41
|
let panelPlacement = 'bottom';
|
package/lib/index.umd.js
CHANGED
|
@@ -2529,6 +2529,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
2529
2529
|
handleCheckInfo: function() { return /* reexport */ handleCheckInfo; },
|
|
2530
2530
|
hasComponent: function() { return /* reexport */ hasComponent; },
|
|
2531
2531
|
hasLanguage: function() { return /* reexport */ hasLanguage; },
|
|
2532
|
+
initVScrollbarMixin: function() { return /* reexport */ initVScrollbarMixin; },
|
|
2532
2533
|
interceptor: function() { return /* reexport */ interceptor; },
|
|
2533
2534
|
log: function() { return /* reexport */ log; },
|
|
2534
2535
|
menus: function() { return /* reexport */ menus; },
|
|
@@ -2572,7 +2573,7 @@ if (typeof window !== 'undefined') {
|
|
|
2572
2573
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
|
|
2573
2574
|
var es_array_push = __webpack_require__(4114);
|
|
2574
2575
|
;// ./packages/src/core.ts
|
|
2575
|
-
const coreVersion = "3.4.
|
|
2576
|
+
const coreVersion = "3.4.37";
|
|
2576
2577
|
const VxeCore = {
|
|
2577
2578
|
coreVersion,
|
|
2578
2579
|
uiVersion: '',
|
|
@@ -3225,7 +3226,7 @@ function createLog(type, name) {
|
|
|
3225
3226
|
return msg;
|
|
3226
3227
|
};
|
|
3227
3228
|
}
|
|
3228
|
-
const version = "3.4.
|
|
3229
|
+
const version = "3.4.37";
|
|
3229
3230
|
const log = {
|
|
3230
3231
|
create: createLog,
|
|
3231
3232
|
warn: createLog('warn', `v${version}`),
|
|
@@ -3877,7 +3878,7 @@ const popperUtils = {
|
|
|
3877
3878
|
} = Object.assign({
|
|
3878
3879
|
appendTo: '',
|
|
3879
3880
|
teleportTo: false,
|
|
3880
|
-
marginSize:
|
|
3881
|
+
marginSize: 12,
|
|
3881
3882
|
isMinWidth: true
|
|
3882
3883
|
}, options);
|
|
3883
3884
|
let panelPlacement = 'bottom';
|
|
@@ -4026,6 +4027,26 @@ const popperUtils = {
|
|
|
4026
4027
|
|
|
4027
4028
|
|
|
4028
4029
|
|
|
4030
|
+
|
|
4031
|
+
const {
|
|
4032
|
+
getThumbOffsetSize,
|
|
4033
|
+
getThumbSize,
|
|
4034
|
+
getScrollFromClick,
|
|
4035
|
+
getScrollFromDrag
|
|
4036
|
+
} = scrollbarUtils;
|
|
4037
|
+
function getVmInternalData($xeVm) {
|
|
4038
|
+
// 新版本 $xeVm.internalData
|
|
4039
|
+
// 老版本 $xeVm
|
|
4040
|
+
return $xeVm.internalData || $xeVm;
|
|
4041
|
+
}
|
|
4042
|
+
function getVmReactData($xeVm) {
|
|
4043
|
+
// 新版本 $xeVm.reactData
|
|
4044
|
+
// 老版本 $xeVm
|
|
4045
|
+
return $xeVm.reactData || $xeVm;
|
|
4046
|
+
}
|
|
4047
|
+
/**
|
|
4048
|
+
* 组件尺寸上下文
|
|
4049
|
+
*/
|
|
4029
4050
|
const sizeMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend({
|
|
4030
4051
|
inject: {
|
|
4031
4052
|
$xeSizeInfo: {
|
|
@@ -4049,15 +4070,28 @@ const sizeMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend(
|
|
|
4049
4070
|
}
|
|
4050
4071
|
}
|
|
4051
4072
|
});
|
|
4073
|
+
/**
|
|
4074
|
+
* 权限码处理
|
|
4075
|
+
*/
|
|
4076
|
+
const permissionMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend({
|
|
4077
|
+
computed: {
|
|
4078
|
+
computePermissionInfo() {
|
|
4079
|
+
return handleCheckInfo(this.permissionCode, this.permissionMethod);
|
|
4080
|
+
}
|
|
4081
|
+
}
|
|
4082
|
+
});
|
|
4083
|
+
/**
|
|
4084
|
+
* 虚拟滚动条是否启用
|
|
4085
|
+
*/
|
|
4052
4086
|
const vScrollbarMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend({
|
|
4053
4087
|
inject: {
|
|
4054
|
-
$
|
|
4088
|
+
$xeVmInfo: {
|
|
4055
4089
|
default: null
|
|
4056
4090
|
}
|
|
4057
4091
|
},
|
|
4058
4092
|
provide() {
|
|
4059
4093
|
return {
|
|
4060
|
-
$
|
|
4094
|
+
$xeVmInfo: {
|
|
4061
4095
|
getIsVScrollbar: () => this.computeIsVScrollbar
|
|
4062
4096
|
}
|
|
4063
4097
|
};
|
|
@@ -4067,22 +4101,213 @@ const vScrollbarMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().e
|
|
|
4067
4101
|
const {
|
|
4068
4102
|
useScrollbar
|
|
4069
4103
|
} = this;
|
|
4070
|
-
const $
|
|
4071
|
-
return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(useScrollbar) ? useScrollbar : $
|
|
4104
|
+
const $xeVmInfo = this.$xeVmInfo;
|
|
4105
|
+
return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(useScrollbar) ? useScrollbar : $xeVmInfo ? $xeVmInfo.getIsVScrollbar() : null;
|
|
4072
4106
|
}
|
|
4073
4107
|
}
|
|
4074
4108
|
});
|
|
4075
|
-
const
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4109
|
+
const initVScrollbarMixin = external_commonjs_vue_commonjs2_vue_root_Vue_default().extend({
|
|
4110
|
+
...{},
|
|
4111
|
+
methods: {
|
|
4112
|
+
updateThumbSize() {
|
|
4113
|
+
const $xeVm = this;
|
|
4114
|
+
const reactData = getVmReactData($xeVm);
|
|
4115
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
4116
|
+
if (!viewEl) {
|
|
4117
|
+
return;
|
|
4118
|
+
}
|
|
4119
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
4120
|
+
return;
|
|
4121
|
+
}
|
|
4122
|
+
const trackXEl = $xeVm.$refs.refTrackXElem;
|
|
4123
|
+
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
4124
|
+
const thumbXElem = $xeVm.$refs.refThumbXElem;
|
|
4125
|
+
if (thumbXElem) {
|
|
4126
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
4127
|
+
}
|
|
4128
|
+
reactData.xThumbWidth = xThumbWidth;
|
|
4129
|
+
const trackYEl = $xeVm.$refs.refTrackYElem;
|
|
4130
|
+
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
4131
|
+
const thumbYElem = $xeVm.$refs.refThumbYElem;
|
|
4132
|
+
if (thumbYElem) {
|
|
4133
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
4134
|
+
}
|
|
4135
|
+
reactData.yThumbHeight = yThumbHeight;
|
|
4136
|
+
},
|
|
4137
|
+
updateThumbOffset() {
|
|
4138
|
+
const $xeVm = this;
|
|
4139
|
+
const reactData = getVmReactData($xeVm);
|
|
4140
|
+
const internalData = getVmInternalData($xeVm);
|
|
4141
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
4142
|
+
if (!viewEl) {
|
|
4143
|
+
return;
|
|
4144
|
+
}
|
|
4145
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
4146
|
+
return;
|
|
4147
|
+
}
|
|
4148
|
+
const {
|
|
4149
|
+
xThumbWidth,
|
|
4150
|
+
yThumbHeight
|
|
4151
|
+
} = reactData;
|
|
4152
|
+
const trackXEl = $xeVm.$refs.refTrackXElem;
|
|
4153
|
+
const thumbXElem = $xeVm.$refs.refThumbXElem;
|
|
4154
|
+
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
|
|
4155
|
+
internalData.xThumbLeft = xThumbLeft;
|
|
4156
|
+
if (thumbXElem && xThumbWidth) {
|
|
4157
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
4158
|
+
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
|
|
4159
|
+
}
|
|
4160
|
+
const trackYEl = $xeVm.$refs.refTrackYElem;
|
|
4161
|
+
const thumbYElem = $xeVm.$refs.refThumbYElem;
|
|
4162
|
+
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
4163
|
+
internalData.yThumbTop = yThumbTop;
|
|
4164
|
+
if (thumbYElem && yThumbHeight) {
|
|
4165
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
4166
|
+
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
4167
|
+
}
|
|
4168
|
+
},
|
|
4169
|
+
clickTrackXEvent(evnt) {
|
|
4170
|
+
const $xeVm = this;
|
|
4171
|
+
const reactData = getVmReactData($xeVm);
|
|
4172
|
+
const trackEl = evnt.currentTarget;
|
|
4173
|
+
if (trackEl !== evnt.target) {
|
|
4174
|
+
return;
|
|
4175
|
+
}
|
|
4176
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
4177
|
+
if (!viewEl) {
|
|
4178
|
+
return;
|
|
4179
|
+
}
|
|
4180
|
+
const {
|
|
4181
|
+
xThumbWidth
|
|
4182
|
+
} = reactData;
|
|
4183
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
4184
|
+
viewEl.scrollTo({
|
|
4185
|
+
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
4186
|
+
behavior: 'auto'
|
|
4187
|
+
});
|
|
4188
|
+
},
|
|
4189
|
+
clickTrackYEvent(evnt) {
|
|
4190
|
+
const $xeVm = this;
|
|
4191
|
+
const reactData = getVmReactData($xeVm);
|
|
4192
|
+
const trackEl = evnt.currentTarget;
|
|
4193
|
+
if (trackEl !== evnt.target) {
|
|
4194
|
+
return;
|
|
4195
|
+
}
|
|
4196
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
4197
|
+
if (!viewEl) {
|
|
4198
|
+
return;
|
|
4199
|
+
}
|
|
4200
|
+
const {
|
|
4201
|
+
yThumbHeight
|
|
4202
|
+
} = reactData;
|
|
4203
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
4204
|
+
viewEl.scrollTo({
|
|
4205
|
+
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
4206
|
+
behavior: 'auto'
|
|
4207
|
+
});
|
|
4208
|
+
},
|
|
4209
|
+
pointerdownThumbXEvent(evnt) {
|
|
4210
|
+
const $xeVm = this;
|
|
4211
|
+
const reactData = getVmReactData($xeVm);
|
|
4212
|
+
const internalData = getVmInternalData($xeVm);
|
|
4213
|
+
const thumbEl = evnt.currentTarget;
|
|
4214
|
+
internalData.isThumbDrag = true;
|
|
4215
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
4216
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
4217
|
+
if (!viewEl) {
|
|
4218
|
+
return;
|
|
4219
|
+
}
|
|
4220
|
+
const {
|
|
4221
|
+
xThumbWidth
|
|
4222
|
+
} = reactData;
|
|
4223
|
+
const trackEl = thumbEl.parentElement;
|
|
4224
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
4225
|
+
const pointerPosition = evnt.clientX - trackRect.left;
|
|
4226
|
+
// 记录 thumb 的偏移
|
|
4227
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
4228
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
4229
|
+
},
|
|
4230
|
+
pointermoveThumbXEvent(evnt) {
|
|
4231
|
+
const $xeVm = this;
|
|
4232
|
+
const reactData = getVmReactData($xeVm);
|
|
4233
|
+
const internalData = getVmInternalData($xeVm);
|
|
4234
|
+
const {
|
|
4235
|
+
isThumbDrag,
|
|
4236
|
+
thumbDragOffset
|
|
4237
|
+
} = internalData;
|
|
4238
|
+
if (isThumbDrag) {
|
|
4239
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
4240
|
+
if (!viewEl) {
|
|
4241
|
+
return;
|
|
4242
|
+
}
|
|
4243
|
+
const {
|
|
4244
|
+
xThumbWidth
|
|
4245
|
+
} = reactData;
|
|
4246
|
+
const thumbEl = evnt.currentTarget;
|
|
4247
|
+
const trackEl = thumbEl.parentElement;
|
|
4248
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
4249
|
+
// 更新偏移
|
|
4250
|
+
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
4251
|
+
}
|
|
4252
|
+
},
|
|
4253
|
+
cleatPointerThumbEvent(evnt) {
|
|
4254
|
+
const $xeVm = this;
|
|
4255
|
+
const internalData = getVmInternalData($xeVm);
|
|
4256
|
+
const thumbEl = evnt.currentTarget;
|
|
4257
|
+
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
4258
|
+
internalData.isThumbDrag = false;
|
|
4259
|
+
},
|
|
4260
|
+
pointerdownThumbYEvent(evnt) {
|
|
4261
|
+
const $xeVm = this;
|
|
4262
|
+
const reactData = getVmReactData($xeVm);
|
|
4263
|
+
const internalData = getVmInternalData($xeVm);
|
|
4264
|
+
const thumbEl = evnt.currentTarget;
|
|
4265
|
+
internalData.isThumbDrag = true;
|
|
4266
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
4267
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
4268
|
+
if (!viewEl) {
|
|
4269
|
+
return;
|
|
4270
|
+
}
|
|
4271
|
+
const {
|
|
4272
|
+
yThumbHeight
|
|
4273
|
+
} = reactData;
|
|
4274
|
+
const trackEl = thumbEl.parentElement;
|
|
4275
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
4276
|
+
const pointerPosition = evnt.clientY - trackRect.top;
|
|
4277
|
+
// 记录 thumb 的偏移
|
|
4278
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
4279
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
4280
|
+
},
|
|
4281
|
+
pointermoveThumbYEvent(evnt) {
|
|
4282
|
+
const $xeVm = this;
|
|
4283
|
+
const reactData = getVmReactData($xeVm);
|
|
4284
|
+
const internalData = getVmInternalData($xeVm);
|
|
4285
|
+
const {
|
|
4286
|
+
isThumbDrag,
|
|
4287
|
+
thumbDragOffset
|
|
4288
|
+
} = internalData;
|
|
4289
|
+
if (isThumbDrag) {
|
|
4290
|
+
const viewEl = $xeVm.getScrollViewElem();
|
|
4291
|
+
if (!viewEl) {
|
|
4292
|
+
return;
|
|
4293
|
+
}
|
|
4294
|
+
const {
|
|
4295
|
+
yThumbHeight
|
|
4296
|
+
} = reactData;
|
|
4297
|
+
const thumbEl = evnt.currentTarget;
|
|
4298
|
+
const trackEl = thumbEl.parentElement;
|
|
4299
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
4300
|
+
// 更新偏移
|
|
4301
|
+
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
4302
|
+
}
|
|
4079
4303
|
}
|
|
4080
4304
|
}
|
|
4081
4305
|
});
|
|
4082
4306
|
const globalMixins = {
|
|
4083
4307
|
sizeMixin,
|
|
4308
|
+
permissionMixin,
|
|
4084
4309
|
vScrollbarMixin,
|
|
4085
|
-
|
|
4310
|
+
initVScrollbarMixin
|
|
4086
4311
|
};
|
|
4087
4312
|
;// ./packages/index.ts
|
|
4088
4313
|
|