vxe-pc-ui 3.20.9 → 3.20.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +8 -182
  9. package/es/scrollbar/src/scrollbar.js +24 -188
  10. package/es/select/src/select.js +273 -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 +17 -190
  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 +715 -741
  40. package/lib/index.umd.min.js +1 -1
  41. package/lib/list/src/list.js +6 -188
  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 +322 -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 +16 -196
  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 +11 -202
  73. package/packages/scrollbar/src/scrollbar.ts +24 -199
  74. package/packages/select/src/select.ts +304 -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 +20 -211
  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 +8 -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 +20 -20
  88. package/types/components/tree.d.ts +7 -16
  89. /package/es/icon/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  90. /package/es/icon/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  91. /package/es/icon/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
  92. /package/es/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  93. /package/es/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  94. /package/es/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
  95. /package/lib/icon/style/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  96. /package/lib/icon/style/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  97. /package/lib/icon/style/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
  98. /package/lib/{iconfont.1792139429655.ttf → iconfont.1792219842866.ttf} +0 -0
  99. /package/lib/{iconfont.1792139429655.woff → iconfont.1792219842866.woff} +0 -0
  100. /package/lib/{iconfont.1792139429655.woff2 → iconfont.1792219842866.woff2} +0 -0
@@ -1,17 +1,15 @@
1
1
  import { CreateElement, VNode, PropType } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
- import { VxeUI } from '../../ui'
4
+ import { VxeUI, globalMixins } from '../../ui'
5
5
  import { toCssUnit } from '../../ui/src/dom'
6
6
  import { getDefaultConfig } from '../../ui/src/utils'
7
7
 
8
8
  import VxeLoadingComponent from '../../loading'
9
9
 
10
- import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ValueOf, VxeScrollbarPropTypes, VxeComponentStyleType } from '../../../types'
10
+ import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ValueOf, VxeScrollbarPropTypes, VxeComponentStyleType, VxeUseSizeComputed, VxeUseInitVScrollbarComputed } from '../../../types'
11
11
 
12
- const { getConfig, createEvent, domUtils, scrollbarUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI
13
-
14
- const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils
12
+ const { getConfig, createEvent, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI
15
13
 
16
14
  function createReactData (): ScrollbarReactData {
17
15
  return {
@@ -22,7 +20,7 @@ function createReactData (): ScrollbarReactData {
22
20
 
23
21
  function createInternalData (): ScrollbarInternalData {
24
22
  return {
25
- // resizeObserver: undefined,
23
+ // scrollObserver: undefined,
26
24
  // isThumbDrag: false,
27
25
  thumbDragOffset: 0,
28
26
  yThumbTop: 0,
@@ -34,6 +32,10 @@ function createInternalData (): ScrollbarInternalData {
34
32
 
35
33
  export default /* define-vxe-component start */ defineVxeComponent({
36
34
  name: 'VxeScrollbar',
35
+ mixins: [
36
+ globalMixins.sizeMixin,
37
+ globalMixins.initVScrollbarMixin
38
+ ],
37
39
  props: {
38
40
  id: [String, Number] as PropType<VxeScrollbarPropTypes.Id>,
39
41
  viewId: [String, Number] as PropType<VxeScrollbarPropTypes.ViewId>,
@@ -86,6 +88,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
86
88
  type: String as PropType<VxeScrollbarPropTypes.ViewInnerClassName>,
87
89
  default: () => getConfig().scrollbar.viewInnerClassName
88
90
  },
91
+ size: {
92
+ type: String as PropType<VxeScrollbarPropTypes.Size>,
93
+ default: () => getConfig().scrollbar.size || getConfig().size
94
+ },
89
95
  /**
90
96
  * 已废弃
91
97
  * @deprecated
@@ -115,6 +121,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
115
121
  }
116
122
  },
117
123
  computed: {
124
+ ...({} as VxeUseSizeComputed & VxeUseInitVScrollbarComputed),
118
125
  computeWrapperStyle () {
119
126
  const $xeScrollbar = this
120
127
  const props = $xeScrollbar
@@ -198,6 +205,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
198
205
 
199
206
  const { native, theme, className, padding } = props
200
207
  const { yThumbHeight, xThumbWidth } = reactData
208
+ const vSize = $xeScrollbar.computeSize
201
209
  const xToTop = ($xeScrollbar as any).computeXToTop as boolean
202
210
  const yToLeft = ($xeScrollbar as any).computeYToLeft as boolean
203
211
  const xVisible = ($xeScrollbar as any).computeXVisible
@@ -206,6 +214,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
206
214
  const yAutoHide = ($xeScrollbar as any).computeYAutoHide
207
215
  return domUtils.buildClass([
208
216
  'vxe-scrollbar',
217
+ vSize ? `size--${vSize}` : '',
209
218
  theme ? `theme--${theme}` : '',
210
219
  `ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
211
220
  `ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
@@ -274,13 +283,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
274
283
  const $xeScrollbar = this
275
284
  $xeScrollbar.$emit(type, createEvent(evnt, { $scrollbar: $xeScrollbar }, params))
276
285
  },
277
- getViewElem () {
286
+ getScrollViewElem () {
278
287
  const $xeScrollbar = this
279
288
 
280
289
  const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
281
290
  return viewEl || null
282
291
  },
283
- getViewInnerElem () {
292
+ getScrollViewInnerElem () {
284
293
  const $xeScrollbar = this
285
294
 
286
295
  const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem as HTMLDivElement
@@ -356,64 +365,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
356
365
  $xeScrollbar.updateThumbOffset()
357
366
  return $xeScrollbar.$nextTick()
358
367
  },
359
- updateThumbSize () {
360
- const $xeScrollbar = this
361
- const reactData = $xeScrollbar.reactData
362
-
363
- const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
364
- if (!viewEl) {
365
- return
366
- }
367
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
368
- return
369
- }
370
- const trackXEl = $xeScrollbar.$refs.refTrackXElem as HTMLDivElement
371
- const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0
372
- const thumbXElem = $xeScrollbar.$refs.refThumbXElem as HTMLDivElement
373
- if (thumbXElem) {
374
- thumbXElem.style.width = xThumbWidth + 'px'
375
- }
376
- reactData.xThumbWidth = xThumbWidth
377
-
378
- const trackYEl = $xeScrollbar.$refs.refTrackYElem as HTMLDivElement
379
- const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0
380
- const thumbYElem = $xeScrollbar.$refs.refThumbYElem as HTMLDivElement
381
- if (thumbYElem) {
382
- thumbYElem.style.height = yThumbHeight + 'px'
383
- }
384
- reactData.yThumbHeight = yThumbHeight
385
- },
386
- updateThumbOffset () {
387
- const $xeScrollbar = this
388
- const reactData = $xeScrollbar.reactData
389
- const internalData = $xeScrollbar.internalData
390
-
391
- const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
392
- if (!viewEl) {
393
- return
394
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
395
- return
396
- }
397
- }
398
- const { xThumbWidth, yThumbHeight } = reactData
399
- const trackXEl = $xeScrollbar.$refs.refTrackXElem as HTMLDivElement
400
- const thumbXElem = $xeScrollbar.$refs.refThumbXElem as HTMLDivElement
401
- const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0
402
- internalData.xThumbLeft = xThumbLeft
403
- if (thumbXElem && xThumbWidth) {
404
- thumbXElem.style.width = xThumbWidth + 'px'
405
- thumbXElem.style.transform = `translateX(${xThumbLeft}px)`
406
- }
407
-
408
- const trackYEl = $xeScrollbar.$refs.refTrackYElem as HTMLDivElement
409
- const thumbYElem = $xeScrollbar.$refs.refThumbYElem as HTMLDivElement
410
- const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0
411
- internalData.yThumbTop = yThumbTop
412
- if (thumbYElem && yThumbHeight) {
413
- thumbYElem.style.height = yThumbHeight + 'px'
414
- thumbYElem.style.transform = `translateY(${yThumbTop}px)`
415
- }
416
- },
417
368
  scrollEvent (evnt: Event) {
418
369
  const $xeScrollbar = this
419
370
  const reactData = $xeScrollbar.reactData
@@ -490,132 +441,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
490
441
  scrollWidth: scrollWidth
491
442
  }, evnt)
492
443
  },
493
- clickTrackXEvent (evnt: MouseEvent) {
494
- const $xeScrollbar = this
495
- const reactData = $xeScrollbar.reactData
496
-
497
- const trackEl = evnt.currentTarget as HTMLDivElement
498
- if (trackEl !== evnt.target) {
499
- return
500
- }
501
- const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
502
- if (!viewEl) {
503
- return
504
- }
505
- const { xThumbWidth } = reactData
506
- const trackRect = trackEl.getBoundingClientRect()
507
- viewEl.scrollTo({
508
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
509
- behavior: 'auto'
510
- })
511
- },
512
- clickTrackYEvent (evnt: MouseEvent) {
513
- const $xeScrollbar = this
514
- const reactData = $xeScrollbar.reactData
515
-
516
- const trackEl = evnt.currentTarget as HTMLDivElement
517
- if (trackEl !== evnt.target) {
518
- return
519
- }
520
- const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
521
- if (!viewEl) {
522
- return
523
- }
524
- const { yThumbHeight } = reactData
525
- const trackRect = trackEl.getBoundingClientRect()
526
- viewEl.scrollTo({
527
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
528
- behavior: 'auto'
529
- })
530
- },
531
- pointerdownThumbXEvent (evnt: PointerEvent) {
532
- const $xeScrollbar = this
533
- const reactData = $xeScrollbar.reactData
534
- const internalData = $xeScrollbar.internalData
535
-
536
- const thumbEl = evnt.currentTarget as HTMLDivElement
537
- internalData.isThumbDrag = true
538
- thumbEl.setPointerCapture(evnt.pointerId)
539
-
540
- const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
541
- if (!viewEl) {
542
- return
543
- }
544
- const { xThumbWidth } = reactData
545
- const trackEl = thumbEl.parentElement as HTMLDivElement
546
- const trackRect = trackEl.getBoundingClientRect()
547
- const pointerPosition = evnt.clientX - trackRect.left
548
- // 记录 thumb 的偏移
549
- const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
550
- internalData.thumbDragOffset = pointerPosition - thumbOffset
551
- },
552
- pointermoveThumbXEvent (evnt: PointerEvent) {
553
- const $xeScrollbar = this
554
- const reactData = $xeScrollbar.reactData
555
- const internalData = $xeScrollbar.internalData
556
-
557
- const { isThumbDrag, thumbDragOffset } = internalData
558
- if (isThumbDrag) {
559
- const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
560
- if (!viewEl) {
561
- return
562
- }
563
- const { xThumbWidth } = reactData
564
- const thumbEl = evnt.currentTarget as HTMLDivElement
565
- const trackEl = thumbEl.parentElement as HTMLDivElement
566
- const trackRect = trackEl.getBoundingClientRect()
567
- // 更新偏移
568
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth)
569
- }
570
- },
571
- cleatPointerThumbEvent (evnt: PointerEvent) {
572
- const $xeScrollbar = this
573
- const internalData = $xeScrollbar.internalData
574
-
575
- const thumbEl = evnt.currentTarget as HTMLDivElement
576
- thumbEl.releasePointerCapture(evnt.pointerId)
577
- internalData.isThumbDrag = false
578
- },
579
- pointerdownThumbYEvent (evnt: PointerEvent) {
580
- const $xeScrollbar = this
581
- const reactData = $xeScrollbar.reactData
582
- const internalData = $xeScrollbar.internalData
583
-
584
- const thumbEl = evnt.currentTarget as HTMLDivElement
585
- internalData.isThumbDrag = true
586
- thumbEl.setPointerCapture(evnt.pointerId)
587
-
588
- const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
589
- if (!viewEl) {
590
- return
591
- }
592
- const { yThumbHeight } = reactData
593
- const trackEl = thumbEl.parentElement as HTMLDivElement
594
- const trackRect = trackEl.getBoundingClientRect()
595
- const pointerPosition = evnt.clientY - trackRect.top
596
- // 记录 thumb 的偏移
597
- const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
598
- internalData.thumbDragOffset = pointerPosition - thumbOffset
599
- },
600
- pointermoveThumbYEvent (evnt: PointerEvent) {
601
- const $xeScrollbar = this
602
- const reactData = $xeScrollbar.reactData
603
- const internalData = $xeScrollbar.internalData
604
-
605
- const { isThumbDrag, thumbDragOffset } = internalData
606
- if (isThumbDrag) {
607
- const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
608
- if (!viewEl) {
609
- return
610
- }
611
- const { yThumbHeight } = reactData
612
- const thumbEl = evnt.currentTarget as HTMLDivElement
613
- const trackEl = thumbEl.parentElement as HTMLDivElement
614
- const trackRect = trackEl.getBoundingClientRect()
615
- // 更新偏移
616
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight)
617
- }
618
- },
619
444
 
620
445
  //
621
446
  // Render
@@ -797,18 +622,18 @@ export default /* define-vxe-component start */ defineVxeComponent({
797
622
  const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
798
623
  const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem as HTMLDivElement
799
624
  if (autoResize) {
800
- const resizeObserver = globalResize.create(() => {
625
+ const scrollObserver = globalResize.create(() => {
801
626
  if (props.autoResize) {
802
627
  $xeScrollbar.reFlag++
803
628
  }
804
629
  })
805
630
  if (viewEl) {
806
- resizeObserver.observe(viewEl)
631
+ scrollObserver.observe(viewEl)
807
632
  }
808
633
  if (viewInnerEl) {
809
- resizeObserver.observe(viewInnerEl)
634
+ scrollObserver.observe(viewInnerEl)
810
635
  }
811
- internalData.resizeObserver = resizeObserver
636
+ internalData.scrollObserver = scrollObserver
812
637
  }
813
638
 
814
639
  $xeScrollbar.reFlag++
@@ -820,9 +645,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
820
645
  const $xeScrollbar = this
821
646
  const internalData = $xeScrollbar.internalData
822
647
 
823
- const { resizeObserver } = internalData
824
- if (resizeObserver) {
825
- resizeObserver.disconnect()
648
+ const { scrollObserver } = internalData
649
+ if (scrollObserver) {
650
+ scrollObserver.disconnect()
826
651
  }
827
652
  globalEvents.off($xeScrollbar, 'resize')
828
653
  },