vxe-pc-ui 3.20.9 → 3.20.11

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.
Files changed (100) hide show
  1. package/es/date-panel/src/date-panel.js +70 -39
  2. package/es/date-panel/style.css +22 -20
  3. package/es/date-panel/style.min.css +1 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/icon-picker/src/icon-picker.js +11 -3
  6. package/es/icon-picker/style.css +9 -3
  7. package/es/icon-picker/style.min.css +1 -1
  8. package/es/list/src/list.js +12 -183
  9. package/es/scrollbar/src/scrollbar.js +24 -188
  10. package/es/select/src/select.js +276 -8
  11. package/es/select/style.css +44 -0
  12. package/es/select/style.min.css +1 -1
  13. package/es/style.css +1 -1
  14. package/es/style.min.css +1 -1
  15. package/es/tooltip/src/tooltip.js +2 -4
  16. package/es/tooltip/style.css +2 -0
  17. package/es/tooltip/style.min.css +1 -1
  18. package/es/tree/src/tree.js +21 -191
  19. package/es/ui/index.js +1 -1
  20. package/es/ui/src/log.js +1 -1
  21. package/es/vxe-date-panel/style.css +22 -20
  22. package/es/vxe-date-panel/style.min.css +1 -1
  23. package/es/vxe-icon-picker/style.css +9 -3
  24. package/es/vxe-icon-picker/style.min.css +1 -1
  25. package/es/vxe-select/style.css +44 -0
  26. package/es/vxe-select/style.min.css +1 -1
  27. package/es/vxe-tooltip/style.css +2 -0
  28. package/es/vxe-tooltip/style.min.css +1 -1
  29. package/lib/date-panel/src/date-panel.js +74 -43
  30. package/lib/date-panel/src/date-panel.min.js +1 -1
  31. package/lib/date-panel/style/style.css +22 -20
  32. package/lib/date-panel/style/style.min.css +1 -1
  33. package/lib/icon/style/style.css +1 -1
  34. package/lib/icon/style/style.min.css +1 -1
  35. package/lib/icon-picker/src/icon-picker.js +56 -38
  36. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  37. package/lib/icon-picker/style/style.css +9 -3
  38. package/lib/icon-picker/style/style.min.css +1 -1
  39. package/lib/index.umd.js +726 -743
  40. package/lib/index.umd.min.js +1 -1
  41. package/lib/list/src/list.js +10 -189
  42. package/lib/list/src/list.min.js +1 -1
  43. package/lib/scrollbar/src/scrollbar.js +21 -192
  44. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  45. package/lib/select/src/select.js +325 -69
  46. package/lib/select/src/select.min.js +1 -1
  47. package/lib/select/style/style.css +44 -0
  48. package/lib/select/style/style.min.css +1 -1
  49. package/lib/style.css +1 -1
  50. package/lib/style.min.css +1 -1
  51. package/lib/tooltip/src/tooltip.js +2 -4
  52. package/lib/tooltip/src/tooltip.min.js +1 -1
  53. package/lib/tooltip/style/style.css +2 -0
  54. package/lib/tooltip/style/style.min.css +1 -1
  55. package/lib/tree/src/tree.js +20 -197
  56. package/lib/tree/src/tree.min.js +1 -1
  57. package/lib/ui/index.js +1 -1
  58. package/lib/ui/index.min.js +1 -1
  59. package/lib/ui/src/log.js +1 -1
  60. package/lib/ui/src/log.min.js +1 -1
  61. package/lib/vxe-date-panel/style/style.css +22 -20
  62. package/lib/vxe-date-panel/style/style.min.css +1 -1
  63. package/lib/vxe-icon-picker/style/style.css +9 -3
  64. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  65. package/lib/vxe-select/style/style.css +44 -0
  66. package/lib/vxe-select/style/style.min.css +1 -1
  67. package/lib/vxe-tooltip/style/style.css +2 -0
  68. package/lib/vxe-tooltip/style/style.min.css +1 -1
  69. package/package.json +2 -2
  70. package/packages/date-panel/src/date-panel.ts +70 -39
  71. package/packages/icon-picker/src/icon-picker.ts +12 -3
  72. package/packages/list/src/list.ts +15 -203
  73. package/packages/scrollbar/src/scrollbar.ts +24 -199
  74. package/packages/select/src/select.ts +307 -11
  75. package/packages/tabs/src/tabs.ts +2 -4
  76. package/packages/tooltip/src/tooltip.ts +2 -4
  77. package/packages/tree/src/tree.ts +24 -212
  78. package/styles/components/date-panel.scss +31 -29
  79. package/styles/components/icon-picker.scss +9 -3
  80. package/styles/components/select.scss +77 -0
  81. package/styles/components/tooltip.scss +1 -0
  82. package/types/components/gantt-module/gantt-view.d.ts +17 -17
  83. package/types/components/icon-picker.d.ts +21 -1
  84. package/types/components/list.d.ts +4 -0
  85. package/types/components/scrollbar.d.ts +7 -14
  86. package/types/components/select.d.ts +28 -3
  87. package/types/components/table.d.ts +30 -20
  88. package/types/components/tree.d.ts +7 -16
  89. /package/es/icon/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  90. /package/es/icon/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  91. /package/es/icon/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
  92. /package/es/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  93. /package/es/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  94. /package/es/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
  95. /package/lib/icon/style/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  96. /package/lib/icon/style/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  97. /package/lib/icon/style/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
  98. /package/lib/{iconfont.1792139429655.ttf → iconfont.1792226835421.ttf} +0 -0
  99. /package/lib/{iconfont.1792139429655.woff → iconfont.1792226835421.woff} +0 -0
  100. /package/lib/{iconfont.1792139429655.woff2 → iconfont.1792226835421.woff2} +0 -0
@@ -9,8 +9,7 @@ import { createComponentLog } from '../../ui/src/log';
9
9
  import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime';
10
10
  import { getItemCacheObj } from './util';
11
11
  import VxeLoadingComponent from '../../loading';
12
- const { getConfig, getIcon, getI18n, domUtils, scrollbarUtils, menus, globalEvents, globalResize } = VxeUI;
13
- const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils;
12
+ const { getConfig, getIcon, getI18n, domUtils, menus, globalEvents, globalResize } = VxeUI;
14
13
  const { warnLog, errLog } = createComponentLog('tree');
15
14
  let crossListDragRowObj = null;
16
15
  function eqRowKey(rowKey1, rowKey2) {
@@ -86,7 +85,8 @@ export default {
86
85
  name: 'VxeList',
87
86
  mixins: [
88
87
  globalMixins.sizeMixin,
89
- globalMixins.vScrollbarMixin
88
+ globalMixins.vScrollbarMixin,
89
+ globalMixins.initVScrollbarMixin
90
90
  ],
91
91
  props: {
92
92
  data: Array,
@@ -325,6 +325,11 @@ export default {
325
325
  }
326
326
  return [];
327
327
  },
328
+ getScrollViewElem() {
329
+ const $xeList = this;
330
+ const viewEl = $xeList.$refs.refVirtualWrapper;
331
+ return viewEl || null;
332
+ },
328
333
  getRowId(row) {
329
334
  const $xeList = this;
330
335
  const keyField = $xeList.computeKeyField;
@@ -692,7 +697,10 @@ export default {
692
697
  const scrollLeft = scrollBodyElem.scrollLeft;
693
698
  const isX = scrollLeft !== internalData.lastScrollLeft;
694
699
  const isY = scrollTop !== internalData.lastScrollTop;
695
- $xeList.updateThumbOffset();
700
+ const isVScrollbar = $xeList.computeIsVScrollbar;
701
+ if (isVScrollbar) {
702
+ $xeList.updateThumbOffset();
703
+ }
696
704
  internalData.lastScrollTop = scrollTop;
697
705
  internalData.lastScrollLeft = scrollLeft;
698
706
  if (reactData.scrollYLoad) {
@@ -1972,185 +1980,6 @@ export default {
1972
1980
  }
1973
1981
  }
1974
1982
  },
1975
- updateThumbSize() {
1976
- const $xeList = this;
1977
- const reactData = $xeList.reactData;
1978
- const viewEl = $xeList.$refs.refVirtualWrapper;
1979
- if (!viewEl) {
1980
- return;
1981
- }
1982
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
1983
- return;
1984
- }
1985
- const trackXEl = $xeList.$refs.refTrackXElem;
1986
- const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
1987
- const thumbXElem = $xeList.$refs.refThumbXElem;
1988
- if (thumbXElem) {
1989
- thumbXElem.style.width = xThumbWidth + 'px';
1990
- }
1991
- reactData.xThumbWidth = xThumbWidth;
1992
- const trackYEl = $xeList.$refs.refTrackYElem;
1993
- const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
1994
- const thumbYElem = $xeList.$refs.refThumbYElem;
1995
- if (thumbYElem) {
1996
- thumbYElem.style.height = yThumbHeight + 'px';
1997
- }
1998
- reactData.yThumbHeight = yThumbHeight;
1999
- },
2000
- updateThumbOffset() {
2001
- const $xeList = this;
2002
- const reactData = $xeList.reactData;
2003
- const internalData = $xeList.internalData;
2004
- const viewEl = $xeList.$refs.refVirtualWrapper;
2005
- if (!viewEl) {
2006
- return;
2007
- }
2008
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
2009
- return;
2010
- }
2011
- const { xThumbWidth, yThumbHeight } = reactData;
2012
- const trackXEl = $xeList.$refs.refTrackXElem;
2013
- const thumbXElem = $xeList.$refs.refThumbXElem;
2014
- const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
2015
- internalData.xThumbLeft = xThumbLeft;
2016
- if (thumbXElem && xThumbWidth) {
2017
- thumbXElem.style.width = xThumbWidth + 'px';
2018
- thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
2019
- }
2020
- const trackYEl = $xeList.$refs.refTrackYElem;
2021
- const thumbYElem = $xeList.$refs.refThumbYElem;
2022
- const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
2023
- internalData.yThumbTop = yThumbTop;
2024
- if (thumbYElem && yThumbHeight) {
2025
- thumbYElem.style.height = yThumbHeight + 'px';
2026
- thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
2027
- }
2028
- },
2029
- clickTrackXEvent(evnt) {
2030
- const $xeList = this;
2031
- const reactData = $xeList.reactData;
2032
- const trackEl = evnt.currentTarget;
2033
- if (trackEl !== evnt.target) {
2034
- return;
2035
- }
2036
- const viewEl = $xeList.$refs.refVirtualWrapper;
2037
- if (!viewEl) {
2038
- return;
2039
- }
2040
- const { xThumbWidth } = reactData;
2041
- const trackRect = trackEl.getBoundingClientRect();
2042
- viewEl.scrollTo({
2043
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
2044
- behavior: 'auto'
2045
- });
2046
- },
2047
- clickTrackYEvent(evnt) {
2048
- const $xeList = this;
2049
- const reactData = $xeList.reactData;
2050
- const trackEl = evnt.currentTarget;
2051
- if (trackEl !== evnt.target) {
2052
- return;
2053
- }
2054
- const viewEl = $xeList.$refs.refVirtualWrapper;
2055
- if (!viewEl) {
2056
- return;
2057
- }
2058
- const { yThumbHeight } = reactData;
2059
- const trackRect = trackEl.getBoundingClientRect();
2060
- viewEl.scrollTo({
2061
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
2062
- behavior: 'auto'
2063
- });
2064
- },
2065
- pointerdownThumbXEvent(evnt) {
2066
- const $xeList = this;
2067
- const reactData = $xeList.reactData;
2068
- const internalData = $xeList.internalData;
2069
- const thumbEl = evnt.currentTarget;
2070
- internalData.isThumbDrag = true;
2071
- thumbEl.setPointerCapture(evnt.pointerId);
2072
- const viewEl = $xeList.$refs.refVirtualWrapper;
2073
- if (!viewEl) {
2074
- return;
2075
- }
2076
- const { xThumbWidth } = reactData;
2077
- const trackEl = thumbEl.parentElement;
2078
- const trackRect = trackEl.getBoundingClientRect();
2079
- const pointerPosition = evnt.clientX - trackRect.left;
2080
- // 记录 thumb 的偏移
2081
- const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
2082
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
2083
- },
2084
- pointermoveThumbXEvent(evnt) {
2085
- const $xeList = this;
2086
- const reactData = $xeList.reactData;
2087
- const internalData = $xeList.internalData;
2088
- const thumbEl = evnt.currentTarget;
2089
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
2090
- return;
2091
- }
2092
- const { isThumbDrag, thumbDragOffset } = internalData;
2093
- if (isThumbDrag) {
2094
- const viewEl = $xeList.$refs.refVirtualWrapper;
2095
- if (!viewEl) {
2096
- return;
2097
- }
2098
- const { xThumbWidth } = reactData;
2099
- const thumbEl = evnt.currentTarget;
2100
- const trackEl = thumbEl.parentElement;
2101
- const trackRect = trackEl.getBoundingClientRect();
2102
- // 更新偏移
2103
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
2104
- }
2105
- },
2106
- cleatPointerThumbEvent(evnt) {
2107
- const $xeList = this;
2108
- const internalData = $xeList.internalData;
2109
- const thumbEl = evnt.currentTarget;
2110
- thumbEl.releasePointerCapture(evnt.pointerId);
2111
- internalData.isThumbDrag = false;
2112
- },
2113
- pointerdownThumbYEvent(evnt) {
2114
- const $xeList = this;
2115
- const reactData = $xeList.reactData;
2116
- const internalData = $xeList.internalData;
2117
- const thumbEl = evnt.currentTarget;
2118
- internalData.isThumbDrag = true;
2119
- thumbEl.setPointerCapture(evnt.pointerId);
2120
- const viewEl = $xeList.$refs.refVirtualWrapper;
2121
- if (!viewEl) {
2122
- return;
2123
- }
2124
- const { yThumbHeight } = reactData;
2125
- const trackEl = thumbEl.parentElement;
2126
- const trackRect = trackEl.getBoundingClientRect();
2127
- const pointerPosition = evnt.clientY - trackRect.top;
2128
- // 记录 thumb 的偏移
2129
- const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
2130
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
2131
- },
2132
- pointermoveThumbYEvent(evnt) {
2133
- const $xeList = this;
2134
- const reactData = $xeList.reactData;
2135
- const internalData = $xeList.internalData;
2136
- const thumbEl = evnt.currentTarget;
2137
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
2138
- return;
2139
- }
2140
- const { isThumbDrag, thumbDragOffset } = internalData;
2141
- if (isThumbDrag) {
2142
- const viewEl = $xeList.$refs.refVirtualWrapper;
2143
- if (!viewEl) {
2144
- return;
2145
- }
2146
- const { yThumbHeight } = reactData;
2147
- const thumbEl = evnt.currentTarget;
2148
- const trackEl = thumbEl.parentElement;
2149
- const trackRect = trackEl.getBoundingClientRect();
2150
- // 更新偏移
2151
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
2152
- }
2153
- },
2154
1983
  //
2155
1984
  // Render
2156
1985
  //
@@ -1,11 +1,10 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
- import { VxeUI } from '../../ui';
3
+ import { VxeUI, globalMixins } from '../../ui';
4
4
  import { toCssUnit } from '../../ui/src/dom';
5
5
  import { getDefaultConfig } from '../../ui/src/utils';
6
6
  import VxeLoadingComponent from '../../loading';
7
- const { getConfig, createEvent, domUtils, scrollbarUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI;
8
- const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils;
7
+ const { getConfig, createEvent, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI;
9
8
  function createReactData() {
10
9
  return {
11
10
  yThumbHeight: 0,
@@ -14,7 +13,7 @@ function createReactData() {
14
13
  }
15
14
  function createInternalData() {
16
15
  return {
17
- // resizeObserver: undefined,
16
+ // scrollObserver: undefined,
18
17
  // isThumbDrag: false,
19
18
  thumbDragOffset: 0,
20
19
  yThumbTop: 0,
@@ -25,6 +24,10 @@ function createInternalData() {
25
24
  }
26
25
  export default {
27
26
  name: 'VxeScrollbar',
27
+ mixins: [
28
+ globalMixins.sizeMixin,
29
+ globalMixins.initVScrollbarMixin
30
+ ],
28
31
  props: {
29
32
  id: [String, Number],
30
33
  viewId: [String, Number],
@@ -77,6 +80,10 @@ export default {
77
80
  type: String,
78
81
  default: () => getConfig().scrollbar.viewInnerClassName
79
82
  },
83
+ size: {
84
+ type: String,
85
+ default: () => getConfig().scrollbar.size || getConfig().size
86
+ },
80
87
  /**
81
88
  * 已废弃
82
89
  * @deprecated
@@ -97,8 +104,7 @@ export default {
97
104
  return Object.assign(Object.assign({}, {}), { xID,
98
105
  reactData, reFlag: 0 });
99
106
  },
100
- computed: {
101
- computeWrapperStyle() {
107
+ computed: Object.assign(Object.assign({}, {}), { computeWrapperStyle() {
102
108
  const $xeScrollbar = this;
103
109
  const props = $xeScrollbar;
104
110
  const { width, height, minWidth, minHeight, maxWidth, maxHeight } = props;
@@ -173,6 +179,7 @@ export default {
173
179
  const reactData = $xeScrollbar.reactData;
174
180
  const { native, theme, className, padding } = props;
175
181
  const { yThumbHeight, xThumbWidth } = reactData;
182
+ const vSize = $xeScrollbar.computeSize;
176
183
  const xToTop = $xeScrollbar.computeXToTop;
177
184
  const yToLeft = $xeScrollbar.computeYToLeft;
178
185
  const xVisible = $xeScrollbar.computeXVisible;
@@ -181,6 +188,7 @@ export default {
181
188
  const yAutoHide = $xeScrollbar.computeYAutoHide;
182
189
  return domUtils.buildClass([
183
190
  'vxe-scrollbar',
191
+ vSize ? `size--${vSize}` : '',
184
192
  theme ? `theme--${theme}` : '',
185
193
  `ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
186
194
  `ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
@@ -233,8 +241,7 @@ export default {
233
241
  const $xeScrollbar = this;
234
242
  const yOpts = $xeScrollbar.computeYOpts;
235
243
  return yOpts.position === 'left';
236
- }
237
- },
244
+ } }),
238
245
  methods: {
239
246
  //
240
247
  // Method
@@ -243,12 +250,12 @@ export default {
243
250
  const $xeScrollbar = this;
244
251
  $xeScrollbar.$emit(type, createEvent(evnt, { $scrollbar: $xeScrollbar }, params));
245
252
  },
246
- getViewElem() {
253
+ getScrollViewElem() {
247
254
  const $xeScrollbar = this;
248
255
  const viewEl = $xeScrollbar.$refs.refViewElem;
249
256
  return viewEl || null;
250
257
  },
251
- getViewInnerElem() {
258
+ getScrollViewInnerElem() {
252
259
  const $xeScrollbar = this;
253
260
  const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem;
254
261
  return viewInnerEl || null;
@@ -316,60 +323,6 @@ export default {
316
323
  $xeScrollbar.updateThumbOffset();
317
324
  return $xeScrollbar.$nextTick();
318
325
  },
319
- updateThumbSize() {
320
- const $xeScrollbar = this;
321
- const reactData = $xeScrollbar.reactData;
322
- const viewEl = $xeScrollbar.$refs.refViewElem;
323
- if (!viewEl) {
324
- return;
325
- }
326
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
327
- return;
328
- }
329
- const trackXEl = $xeScrollbar.$refs.refTrackXElem;
330
- const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
331
- const thumbXElem = $xeScrollbar.$refs.refThumbXElem;
332
- if (thumbXElem) {
333
- thumbXElem.style.width = xThumbWidth + 'px';
334
- }
335
- reactData.xThumbWidth = xThumbWidth;
336
- const trackYEl = $xeScrollbar.$refs.refTrackYElem;
337
- const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
338
- const thumbYElem = $xeScrollbar.$refs.refThumbYElem;
339
- if (thumbYElem) {
340
- thumbYElem.style.height = yThumbHeight + 'px';
341
- }
342
- reactData.yThumbHeight = yThumbHeight;
343
- },
344
- updateThumbOffset() {
345
- const $xeScrollbar = this;
346
- const reactData = $xeScrollbar.reactData;
347
- const internalData = $xeScrollbar.internalData;
348
- const viewEl = $xeScrollbar.$refs.refViewElem;
349
- if (!viewEl) {
350
- return;
351
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
352
- return;
353
- }
354
- }
355
- const { xThumbWidth, yThumbHeight } = reactData;
356
- const trackXEl = $xeScrollbar.$refs.refTrackXElem;
357
- const thumbXElem = $xeScrollbar.$refs.refThumbXElem;
358
- const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
359
- internalData.xThumbLeft = xThumbLeft;
360
- if (thumbXElem && xThumbWidth) {
361
- thumbXElem.style.width = xThumbWidth + 'px';
362
- thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
363
- }
364
- const trackYEl = $xeScrollbar.$refs.refTrackYElem;
365
- const thumbYElem = $xeScrollbar.$refs.refThumbYElem;
366
- const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
367
- internalData.yThumbTop = yThumbTop;
368
- if (thumbYElem && yThumbHeight) {
369
- thumbYElem.style.height = yThumbHeight + 'px';
370
- thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
371
- }
372
- },
373
326
  scrollEvent(evnt) {
374
327
  const $xeScrollbar = this;
375
328
  const reactData = $xeScrollbar.reactData;
@@ -447,123 +400,6 @@ export default {
447
400
  scrollWidth: scrollWidth
448
401
  }, evnt);
449
402
  },
450
- clickTrackXEvent(evnt) {
451
- const $xeScrollbar = this;
452
- const reactData = $xeScrollbar.reactData;
453
- const trackEl = evnt.currentTarget;
454
- if (trackEl !== evnt.target) {
455
- return;
456
- }
457
- const viewEl = $xeScrollbar.$refs.refViewElem;
458
- if (!viewEl) {
459
- return;
460
- }
461
- const { xThumbWidth } = reactData;
462
- const trackRect = trackEl.getBoundingClientRect();
463
- viewEl.scrollTo({
464
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
465
- behavior: 'auto'
466
- });
467
- },
468
- clickTrackYEvent(evnt) {
469
- const $xeScrollbar = this;
470
- const reactData = $xeScrollbar.reactData;
471
- const trackEl = evnt.currentTarget;
472
- if (trackEl !== evnt.target) {
473
- return;
474
- }
475
- const viewEl = $xeScrollbar.$refs.refViewElem;
476
- if (!viewEl) {
477
- return;
478
- }
479
- const { yThumbHeight } = reactData;
480
- const trackRect = trackEl.getBoundingClientRect();
481
- viewEl.scrollTo({
482
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
483
- behavior: 'auto'
484
- });
485
- },
486
- pointerdownThumbXEvent(evnt) {
487
- const $xeScrollbar = this;
488
- const reactData = $xeScrollbar.reactData;
489
- const internalData = $xeScrollbar.internalData;
490
- const thumbEl = evnt.currentTarget;
491
- internalData.isThumbDrag = true;
492
- thumbEl.setPointerCapture(evnt.pointerId);
493
- const viewEl = $xeScrollbar.$refs.refViewElem;
494
- if (!viewEl) {
495
- return;
496
- }
497
- const { xThumbWidth } = reactData;
498
- const trackEl = thumbEl.parentElement;
499
- const trackRect = trackEl.getBoundingClientRect();
500
- const pointerPosition = evnt.clientX - trackRect.left;
501
- // 记录 thumb 的偏移
502
- const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
503
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
504
- },
505
- pointermoveThumbXEvent(evnt) {
506
- const $xeScrollbar = this;
507
- const reactData = $xeScrollbar.reactData;
508
- const internalData = $xeScrollbar.internalData;
509
- const { isThumbDrag, thumbDragOffset } = internalData;
510
- if (isThumbDrag) {
511
- const viewEl = $xeScrollbar.$refs.refViewElem;
512
- if (!viewEl) {
513
- return;
514
- }
515
- const { xThumbWidth } = reactData;
516
- const thumbEl = evnt.currentTarget;
517
- const trackEl = thumbEl.parentElement;
518
- const trackRect = trackEl.getBoundingClientRect();
519
- // 更新偏移
520
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
521
- }
522
- },
523
- cleatPointerThumbEvent(evnt) {
524
- const $xeScrollbar = this;
525
- const internalData = $xeScrollbar.internalData;
526
- const thumbEl = evnt.currentTarget;
527
- thumbEl.releasePointerCapture(evnt.pointerId);
528
- internalData.isThumbDrag = false;
529
- },
530
- pointerdownThumbYEvent(evnt) {
531
- const $xeScrollbar = this;
532
- const reactData = $xeScrollbar.reactData;
533
- const internalData = $xeScrollbar.internalData;
534
- const thumbEl = evnt.currentTarget;
535
- internalData.isThumbDrag = true;
536
- thumbEl.setPointerCapture(evnt.pointerId);
537
- const viewEl = $xeScrollbar.$refs.refViewElem;
538
- if (!viewEl) {
539
- return;
540
- }
541
- const { yThumbHeight } = reactData;
542
- const trackEl = thumbEl.parentElement;
543
- const trackRect = trackEl.getBoundingClientRect();
544
- const pointerPosition = evnt.clientY - trackRect.top;
545
- // 记录 thumb 的偏移
546
- const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
547
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
548
- },
549
- pointermoveThumbYEvent(evnt) {
550
- const $xeScrollbar = this;
551
- const reactData = $xeScrollbar.reactData;
552
- const internalData = $xeScrollbar.internalData;
553
- const { isThumbDrag, thumbDragOffset } = internalData;
554
- if (isThumbDrag) {
555
- const viewEl = $xeScrollbar.$refs.refViewElem;
556
- if (!viewEl) {
557
- return;
558
- }
559
- const { yThumbHeight } = reactData;
560
- const thumbEl = evnt.currentTarget;
561
- const trackEl = thumbEl.parentElement;
562
- const trackRect = trackEl.getBoundingClientRect();
563
- // 更新偏移
564
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
565
- }
566
- },
567
403
  //
568
404
  // Render
569
405
  //
@@ -725,18 +561,18 @@ export default {
725
561
  const viewEl = $xeScrollbar.$refs.refViewElem;
726
562
  const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem;
727
563
  if (autoResize) {
728
- const resizeObserver = globalResize.create(() => {
564
+ const scrollObserver = globalResize.create(() => {
729
565
  if (props.autoResize) {
730
566
  $xeScrollbar.reFlag++;
731
567
  }
732
568
  });
733
569
  if (viewEl) {
734
- resizeObserver.observe(viewEl);
570
+ scrollObserver.observe(viewEl);
735
571
  }
736
572
  if (viewInnerEl) {
737
- resizeObserver.observe(viewInnerEl);
573
+ scrollObserver.observe(viewInnerEl);
738
574
  }
739
- internalData.resizeObserver = resizeObserver;
575
+ internalData.scrollObserver = scrollObserver;
740
576
  }
741
577
  $xeScrollbar.reFlag++;
742
578
  globalEvents.on($xeScrollbar, 'resize', () => {
@@ -746,9 +582,9 @@ export default {
746
582
  beforeDestroy() {
747
583
  const $xeScrollbar = this;
748
584
  const internalData = $xeScrollbar.internalData;
749
- const { resizeObserver } = internalData;
750
- if (resizeObserver) {
751
- resizeObserver.disconnect();
585
+ const { scrollObserver } = internalData;
586
+ if (scrollObserver) {
587
+ scrollObserver.disconnect();
752
588
  }
753
589
  globalEvents.off($xeScrollbar, 'resize');
754
590
  },