vxe-pc-ui 4.17.29 → 4.18.0

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 (109) hide show
  1. package/dist/all.esm.js +239 -201
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/button/src/button.js +10 -9
  5. package/es/cascader/src/cascader.js +8 -17
  6. package/es/color-picker/src/color-picker.js +8 -17
  7. package/es/date-picker/src/date-picker.js +8 -17
  8. package/es/date-range-picker/src/date-range-picker.js +9 -18
  9. package/es/icon/style.css +1 -1
  10. package/es/icon-picker/src/icon-picker.js +16 -16
  11. package/es/number-input/src/number-input.js +1 -1
  12. package/es/pulldown/src/pulldown.js +30 -44
  13. package/es/select/src/select.js +8 -17
  14. package/es/slider/src/slider.js +77 -3
  15. package/es/slider/style.css +53 -6
  16. package/es/slider/style.min.css +1 -1
  17. package/es/space/src/space.js +43 -5
  18. package/es/space/style.css +7 -0
  19. package/es/space/style.min.css +1 -1
  20. package/es/style.css +1 -1
  21. package/es/style.min.css +1 -1
  22. package/es/table-select/src/table-select.js +8 -17
  23. package/es/tree-select/src/tree-select.js +8 -17
  24. package/es/ui/index.js +5 -2
  25. package/es/ui/src/dom.js +1 -1
  26. package/es/ui/src/log.js +1 -1
  27. package/es/vxe-slider/style.css +53 -6
  28. package/es/vxe-slider/style.min.css +1 -1
  29. package/es/vxe-space/style.css +7 -0
  30. package/es/vxe-space/style.min.css +1 -1
  31. package/lib/button/src/button.js +12 -9
  32. package/lib/button/src/button.min.js +1 -1
  33. package/lib/cascader/src/cascader.js +10 -18
  34. package/lib/cascader/src/cascader.min.js +1 -1
  35. package/lib/color-picker/src/color-picker.js +10 -18
  36. package/lib/color-picker/src/color-picker.min.js +1 -1
  37. package/lib/date-picker/src/date-picker.js +10 -18
  38. package/lib/date-picker/src/date-picker.min.js +1 -1
  39. package/lib/date-range-picker/src/date-range-picker.js +11 -19
  40. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  41. package/lib/icon/style/style.css +1 -1
  42. package/lib/icon/style/style.min.css +1 -1
  43. package/lib/icon-picker/src/icon-picker.js +20 -17
  44. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  45. package/lib/index.umd.js +282 -211
  46. package/lib/index.umd.min.js +1 -1
  47. package/lib/number-input/src/number-input.js +1 -1
  48. package/lib/number-input/src/number-input.min.js +1 -1
  49. package/lib/pulldown/src/pulldown.js +31 -47
  50. package/lib/pulldown/src/pulldown.min.js +1 -1
  51. package/lib/select/src/select.js +10 -18
  52. package/lib/select/src/select.min.js +1 -1
  53. package/lib/slider/src/slider.js +88 -1
  54. package/lib/slider/src/slider.min.js +1 -1
  55. package/lib/slider/style/style.css +53 -6
  56. package/lib/slider/style/style.min.css +1 -1
  57. package/lib/space/src/space.js +51 -5
  58. package/lib/space/src/space.min.js +1 -1
  59. package/lib/space/style/style.css +7 -0
  60. package/lib/space/style/style.min.css +1 -1
  61. package/lib/style.css +1 -1
  62. package/lib/style.min.css +1 -1
  63. package/lib/table-select/src/table-select.js +10 -18
  64. package/lib/table-select/src/table-select.min.js +1 -1
  65. package/lib/tree-select/src/tree-select.js +10 -18
  66. package/lib/tree-select/src/tree-select.min.js +1 -1
  67. package/lib/ui/index.js +5 -2
  68. package/lib/ui/index.min.js +1 -1
  69. package/lib/ui/src/dom.js +1 -1
  70. package/lib/ui/src/dom.min.js +1 -1
  71. package/lib/ui/src/log.js +1 -1
  72. package/lib/ui/src/log.min.js +1 -1
  73. package/lib/vxe-slider/style/style.css +53 -6
  74. package/lib/vxe-slider/style/style.min.css +1 -1
  75. package/lib/vxe-space/style/style.css +7 -0
  76. package/lib/vxe-space/style/style.min.css +1 -1
  77. package/package.json +1 -1
  78. package/packages/button/src/button.ts +12 -10
  79. package/packages/cascader/src/cascader.ts +9 -17
  80. package/packages/color-picker/src/color-picker.ts +9 -17
  81. package/packages/date-picker/src/date-picker.ts +9 -17
  82. package/packages/date-range-picker/src/date-range-picker.ts +10 -18
  83. package/packages/icon-picker/src/icon-picker.ts +18 -16
  84. package/packages/number-input/src/number-input.ts +1 -1
  85. package/packages/pulldown/src/pulldown.ts +33 -46
  86. package/packages/select/src/select.ts +9 -17
  87. package/packages/slider/src/slider.ts +84 -3
  88. package/packages/space/src/space.ts +43 -5
  89. package/packages/table-select/src/table-select.ts +9 -17
  90. package/packages/tree-select/src/tree-select.ts +9 -17
  91. package/packages/ui/index.ts +4 -1
  92. package/packages/ui/src/dom.ts +1 -1
  93. package/styles/components/slider.scss +15 -1
  94. package/styles/components/space.scss +9 -0
  95. package/types/components/number-input.d.ts +1 -1
  96. package/types/components/slider.d.ts +12 -0
  97. package/types/components/space.d.ts +10 -0
  98. /package/es/icon/{iconfont.1788486194527.ttf → iconfont.1788505334427.ttf} +0 -0
  99. /package/es/icon/{iconfont.1788486194527.woff → iconfont.1788505334427.woff} +0 -0
  100. /package/es/icon/{iconfont.1788486194527.woff2 → iconfont.1788505334427.woff2} +0 -0
  101. /package/es/{iconfont.1788486194527.ttf → iconfont.1788505334427.ttf} +0 -0
  102. /package/es/{iconfont.1788486194527.woff → iconfont.1788505334427.woff} +0 -0
  103. /package/es/{iconfont.1788486194527.woff2 → iconfont.1788505334427.woff2} +0 -0
  104. /package/lib/icon/style/{iconfont.1788486194527.ttf → iconfont.1788505334427.ttf} +0 -0
  105. /package/lib/icon/style/{iconfont.1788486194527.woff → iconfont.1788505334427.woff} +0 -0
  106. /package/lib/icon/style/{iconfont.1788486194527.woff2 → iconfont.1788505334427.woff2} +0 -0
  107. /package/lib/{iconfont.1788486194527.ttf → iconfont.1788505334427.ttf} +0 -0
  108. /package/lib/{iconfont.1788486194527.woff → iconfont.1788505334427.woff} +0 -0
  109. /package/lib/{iconfont.1788486194527.woff2 → iconfont.1788505334427.woff2} +0 -0
@@ -747,21 +747,6 @@ export default defineVxeComponent({
747
747
  }
748
748
  reactData.reactFlag++;
749
749
  };
750
- const handleGlobalMousewheelEvent = (evnt) => {
751
- const { visiblePanel } = reactData;
752
- const isDisabled = computeIsDisabled.value;
753
- if (!isDisabled) {
754
- if (visiblePanel) {
755
- const panelElem = refOptionPanel.value;
756
- if (getEventTargetNode(evnt, panelElem).flag) {
757
- updatePlacement();
758
- }
759
- else {
760
- hideOptionPanel(evnt);
761
- }
762
- }
763
- }
764
- };
765
750
  const handleGlobalMousedownEvent = (evnt) => {
766
751
  const { visiblePanel } = reactData;
767
752
  const isDisabled = computeIsDisabled.value;
@@ -924,6 +909,12 @@ export default defineVxeComponent({
924
909
  updatePlacement();
925
910
  }
926
911
  };
912
+ const handleGlobalScrollEvent = () => {
913
+ const { visiblePanel } = reactData;
914
+ if (visiblePanel) {
915
+ updatePlacement();
916
+ }
917
+ };
927
918
  const handleFocusSearch = () => {
928
919
  if (props.filterable) {
929
920
  nextTick(() => {
@@ -1728,18 +1719,18 @@ export default defineVxeComponent({
1728
1719
  loadData(options);
1729
1720
  }
1730
1721
  });
1731
- globalEvents.on($xeSelect, 'mousewheel', handleGlobalMousewheelEvent);
1732
1722
  globalEvents.on($xeSelect, 'mousedown', handleGlobalMousedownEvent);
1733
1723
  globalEvents.on($xeSelect, 'keydown', handleGlobalKeydownEvent);
1734
1724
  globalEvents.on($xeSelect, 'blur', handleGlobalBlurEvent);
1735
1725
  globalEvents.on($xeSelect, 'resize', handleGlobalResizeEvent);
1726
+ globalEvents.on($xeSelect, 'scroll', handleGlobalScrollEvent);
1736
1727
  });
1737
1728
  onUnmounted(() => {
1738
- globalEvents.off($xeSelect, 'mousewheel');
1739
1729
  globalEvents.off($xeSelect, 'mousedown');
1740
1730
  globalEvents.off($xeSelect, 'keydown');
1741
1731
  globalEvents.off($xeSelect, 'blur');
1742
1732
  globalEvents.off($xeSelect, 'resize');
1733
+ globalEvents.off($xeSelect, 'scroll');
1743
1734
  XEUtils.assign(reactData, createReactData());
1744
1735
  XEUtils.assign(internalData, createInternalData());
1745
1736
  });
@@ -1,10 +1,13 @@
1
1
  import { ref, h, reactive, watch, computed, inject, onMounted, onBeforeUnmount } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import XEUtils from 'xe-utils';
4
- import { getConfig, createEvent, renderEmptyElement, useSize } from '../../ui';
4
+ import { VxeUI, getConfig, createEvent, renderEmptyElement, useSize } from '../../ui';
5
+ import { getText } from '../../ui/src/utils';
5
6
  function createInternalData() {
6
7
  return {
7
8
  // _isUp: false,
9
+ isDragStatus: false,
10
+ isBtnActive: false,
8
11
  currValue: 0,
9
12
  startValue: 0,
10
13
  endValue: 0
@@ -48,10 +51,19 @@ export default defineVxeComponent({
48
51
  type: Boolean,
49
52
  default: null
50
53
  },
54
+ status: {
55
+ type: String,
56
+ default: () => getConfig().slider.status
57
+ },
51
58
  immediate: {
52
59
  type: Boolean,
53
60
  default: () => getConfig().slider.immediate
54
- }
61
+ },
62
+ showTooltip: {
63
+ type: Boolean,
64
+ default: () => getConfig().slider.showTooltip
65
+ },
66
+ tooltipConfig: Object
55
67
  },
56
68
  emits: [
57
69
  'update:modelValue',
@@ -108,6 +120,9 @@ export default defineVxeComponent({
108
120
  const { range, startValue, endValue } = props;
109
121
  return range ? `${startValue || ''}${endValue || ''}` : '';
110
122
  });
123
+ const computeTooltipOpts = computed(() => {
124
+ return Object.assign({}, getConfig().slider.tooltipConfig, props.tooltipConfig);
125
+ });
111
126
  const computeMaps = {};
112
127
  const $xeSlider = {
113
128
  xID,
@@ -260,6 +275,38 @@ export default defineVxeComponent({
260
275
  const raw = minNum + ratio * (maxNum - minNum);
261
276
  return Math.floor(raw);
262
277
  };
278
+ const handleShowTip = (btnElem) => {
279
+ const { showTooltip } = props;
280
+ if (showTooltip) {
281
+ if (VxeUI.tooltip) {
282
+ const { currValue } = internalData;
283
+ const tooltipOpts = computeTooltipOpts.value;
284
+ const { contentMethod } = tooltipOpts;
285
+ const content = getText(contentMethod
286
+ ? contentMethod({
287
+ $slider: $xeSlider,
288
+ value: currValue
289
+ })
290
+ : '' + currValue);
291
+ if (content) {
292
+ VxeUI.tooltip.open(btnElem, Object.assign({}, Object.assign(Object.assign({}, tooltipOpts), { content }), {
293
+ contentMethod: undefined
294
+ }));
295
+ }
296
+ else {
297
+ VxeUI.tooltip.close();
298
+ }
299
+ }
300
+ }
301
+ };
302
+ const handleHideTip = () => {
303
+ const { showTooltip } = props;
304
+ if (showTooltip) {
305
+ if (VxeUI.tooltip) {
306
+ VxeUI.tooltip.close();
307
+ }
308
+ }
309
+ };
263
310
  const handleBtnMousedownEvent = (evnt) => {
264
311
  const { range, immediate } = props;
265
312
  const btnElem = evnt.currentTarget;
@@ -271,6 +318,7 @@ export default defineVxeComponent({
271
318
  evnt.preventDefault();
272
319
  const el = refElem.value;
273
320
  const barElem = refBarElem.value;
321
+ internalData.isDragStatus = true;
274
322
  if (el && barElem) {
275
323
  const btnType = btnElem.getAttribute('data-type');
276
324
  const barRect = barElem.getBoundingClientRect();
@@ -297,10 +345,12 @@ export default defineVxeComponent({
297
345
  changeEvent(evnt);
298
346
  }
299
347
  updateTrackStyle();
348
+ handleShowTip(btnElem);
300
349
  };
301
350
  document.onmouseup = (evnt) => {
302
351
  document.onmousemove = null;
303
352
  document.onmouseup = null;
353
+ internalData.isDragStatus = false;
304
354
  dispatchEvent('track-dragend', {
305
355
  currentValue: internalData.currValue,
306
356
  startValue: internalData.startValue,
@@ -308,18 +358,37 @@ export default defineVxeComponent({
308
358
  }, evnt);
309
359
  changeEvent(evnt);
310
360
  updateTrackStyle();
361
+ if (!internalData.isBtnActive) {
362
+ handleHideTip();
363
+ }
311
364
  };
312
365
  dispatchEvent('track-dragstart', {
313
366
  currentValue: internalData.currValue,
314
367
  startValue: internalData.startValue,
315
368
  endValue: internalData.endValue
316
369
  }, evnt);
370
+ internalData.isDragStatus = false;
371
+ }
372
+ };
373
+ const handleBtnMouseenterEvent = (evnt) => {
374
+ const { startValue, endValue } = internalData;
375
+ const btnElem = evnt.currentTarget;
376
+ const btnType = btnElem.getAttribute('data-type');
377
+ internalData.currValue = btnType === '1' ? startValue : endValue;
378
+ internalData.isBtnActive = true;
379
+ handleShowTip(btnElem);
380
+ };
381
+ const handleBtnMouseleaveEvent = () => {
382
+ const { isDragStatus } = internalData;
383
+ internalData.isBtnActive = false;
384
+ if (!isDragStatus) {
385
+ handleHideTip();
317
386
  }
318
387
  };
319
388
  const collapsePanePrivateMethods = {};
320
389
  Object.assign($xeSlider, collapsePaneMethods, collapsePanePrivateMethods);
321
390
  const renderVN = () => {
322
- const { vertical, range } = props;
391
+ const { status, vertical, range } = props;
323
392
  const vSize = computeSize.value;
324
393
  const formReadonly = computeFormReadonly.value;
325
394
  const isDisabled = computeIsDisabled.value;
@@ -327,6 +396,7 @@ export default defineVxeComponent({
327
396
  ref: refElem,
328
397
  class: ['vxe-slider', {
329
398
  [`size--${vSize}`]: vSize,
399
+ [`theme--${status}`]: status,
330
400
  'is--vertical': vertical,
331
401
  'is--readonly': formReadonly,
332
402
  'is--disabled': isDisabled
@@ -349,6 +419,8 @@ export default defineVxeComponent({
349
419
  ref: refStartBtnElem,
350
420
  class: 'vxe-slider--bar-btn',
351
421
  'data-type': '1',
422
+ onMouseenter: handleBtnMouseenterEvent,
423
+ onMouseleave: handleBtnMouseleaveEvent,
352
424
  onMousedown: handleBtnMousedownEvent
353
425
  }),
354
426
  formReadonly
@@ -357,6 +429,8 @@ export default defineVxeComponent({
357
429
  ref: refEndBtnElem,
358
430
  class: 'vxe-slider--bar-btn',
359
431
  'data-type': '2',
432
+ onMouseenter: handleBtnMouseenterEvent,
433
+ onMouseleave: handleBtnMouseleaveEvent,
360
434
  onMousedown: handleBtnMousedownEvent
361
435
  })
362
436
  ])
@@ -13,7 +13,14 @@
13
13
  background-color: var(--vxe-ui-font-primary-darken-color);
14
14
  }
15
15
  .vxe-slider.theme--primary .vxe-slider--bar-btn {
16
- background-color: var(--vxe-ui-font-primary-color);
16
+ border-color: var(--vxe-ui-font-primary-color);
17
+ }
18
+ .vxe-slider.theme--primary.is--disabled .vxe-slider--bar-track {
19
+ background-color: var(--vxe-ui-font-primary-disabled-color);
20
+ }
21
+ .vxe-slider.theme--primary.is--disabled .vxe-slider--bar-btn {
22
+ border-color: var(--vxe-ui-font-primary-disabled-color);
23
+ cursor: not-allowed;
17
24
  }
18
25
  .vxe-slider.theme--success .vxe-slider--bar-track {
19
26
  background-color: var(--vxe-ui-status-success-color);
@@ -25,7 +32,14 @@
25
32
  background-color: var(--vxe-ui-status-success-darken-color);
26
33
  }
27
34
  .vxe-slider.theme--success .vxe-slider--bar-btn {
28
- background-color: var(--vxe-ui-status-success-color);
35
+ border-color: var(--vxe-ui-status-success-color);
36
+ }
37
+ .vxe-slider.theme--success.is--disabled .vxe-slider--bar-track {
38
+ background-color: var(--vxe-ui-status-success-disabled-color);
39
+ }
40
+ .vxe-slider.theme--success.is--disabled .vxe-slider--bar-btn {
41
+ border-color: var(--vxe-ui-status-success-disabled-color);
42
+ cursor: not-allowed;
29
43
  }
30
44
  .vxe-slider.theme--info .vxe-slider--bar-track {
31
45
  background-color: var(--vxe-ui-status-info-color);
@@ -37,7 +51,14 @@
37
51
  background-color: var(--vxe-ui-status-info-darken-color);
38
52
  }
39
53
  .vxe-slider.theme--info .vxe-slider--bar-btn {
40
- background-color: var(--vxe-ui-status-info-color);
54
+ border-color: var(--vxe-ui-status-info-color);
55
+ }
56
+ .vxe-slider.theme--info.is--disabled .vxe-slider--bar-track {
57
+ background-color: var(--vxe-ui-status-info-disabled-color);
58
+ }
59
+ .vxe-slider.theme--info.is--disabled .vxe-slider--bar-btn {
60
+ border-color: var(--vxe-ui-status-info-disabled-color);
61
+ cursor: not-allowed;
41
62
  }
42
63
  .vxe-slider.theme--warning .vxe-slider--bar-track {
43
64
  background-color: var(--vxe-ui-status-warning-color);
@@ -49,7 +70,14 @@
49
70
  background-color: var(--vxe-ui-status-warning-darken-color);
50
71
  }
51
72
  .vxe-slider.theme--warning .vxe-slider--bar-btn {
52
- background-color: var(--vxe-ui-status-warning-color);
73
+ border-color: var(--vxe-ui-status-warning-color);
74
+ }
75
+ .vxe-slider.theme--warning.is--disabled .vxe-slider--bar-track {
76
+ background-color: var(--vxe-ui-status-warning-disabled-color);
77
+ }
78
+ .vxe-slider.theme--warning.is--disabled .vxe-slider--bar-btn {
79
+ border-color: var(--vxe-ui-status-warning-disabled-color);
80
+ cursor: not-allowed;
53
81
  }
54
82
  .vxe-slider.theme--danger .vxe-slider--bar-track {
55
83
  background-color: var(--vxe-ui-status-danger-color);
@@ -61,7 +89,14 @@
61
89
  background-color: var(--vxe-ui-status-danger-darken-color);
62
90
  }
63
91
  .vxe-slider.theme--danger .vxe-slider--bar-btn {
64
- background-color: var(--vxe-ui-status-danger-color);
92
+ border-color: var(--vxe-ui-status-danger-color);
93
+ }
94
+ .vxe-slider.theme--danger.is--disabled .vxe-slider--bar-track {
95
+ background-color: var(--vxe-ui-status-danger-disabled-color);
96
+ }
97
+ .vxe-slider.theme--danger.is--disabled .vxe-slider--bar-btn {
98
+ border-color: var(--vxe-ui-status-danger-disabled-color);
99
+ cursor: not-allowed;
65
100
  }
66
101
  .vxe-slider.theme--error .vxe-slider--bar-track {
67
102
  background-color: var(--vxe-ui-status-error-color);
@@ -73,9 +108,20 @@
73
108
  background-color: var(--vxe-ui-status-error-darken-color);
74
109
  }
75
110
  .vxe-slider.theme--error .vxe-slider--bar-btn {
76
- background-color: var(--vxe-ui-status-error-color);
111
+ border-color: var(--vxe-ui-status-error-color);
112
+ }
113
+ .vxe-slider.theme--error.is--disabled .vxe-slider--bar-track {
114
+ background-color: var(--vxe-ui-status-error-disabled-color);
115
+ }
116
+ .vxe-slider.theme--error.is--disabled .vxe-slider--bar-btn {
117
+ border-color: var(--vxe-ui-status-error-disabled-color);
118
+ cursor: not-allowed;
119
+ }
120
+ .vxe-slider.is--disabled .vxe-slider--bar-track {
121
+ background-color: var(--vxe-ui-font-primary-disabled-color);
77
122
  }
78
123
  .vxe-slider.is--disabled .vxe-slider--bar-btn {
124
+ border-color: var(--vxe-ui-font-primary-disabled-color);
79
125
  cursor: not-allowed;
80
126
  }
81
127
  .vxe-slider:not(.is--disabled) .vxe-slider--bar-wrapper,
@@ -87,6 +133,7 @@
87
133
  }
88
134
  .vxe-slider:not(.is--disabled) .vxe-slider--bar-btn:active {
89
135
  transform: translate(-50%, -50%) scale(1.1);
136
+ cursor: grab;
90
137
  }
91
138
  .vxe-slider.is--readonly .vxe-slider--bar-wrapper,
92
139
  .vxe-slider.is--readonly .vxe-slider--inner {
@@ -1 +1 @@
1
- .vxe-slider{position:relative;display:block;padding:.8em}.vxe-slider.theme--primary .vxe-slider--bar-track{background-color:var(--vxe-ui-font-primary-color)}.vxe-slider.theme--primary .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-slider.theme--primary .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-font-primary-darken-color)}.vxe-slider.theme--primary .vxe-slider--bar-btn{background-color:var(--vxe-ui-font-primary-color)}.vxe-slider.theme--success .vxe-slider--bar-track{background-color:var(--vxe-ui-status-success-color)}.vxe-slider.theme--success .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-success-lighten-color)}.vxe-slider.theme--success .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-success-darken-color)}.vxe-slider.theme--success .vxe-slider--bar-btn{background-color:var(--vxe-ui-status-success-color)}.vxe-slider.theme--info .vxe-slider--bar-track{background-color:var(--vxe-ui-status-info-color)}.vxe-slider.theme--info .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-info-lighten-color)}.vxe-slider.theme--info .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-info-darken-color)}.vxe-slider.theme--info .vxe-slider--bar-btn{background-color:var(--vxe-ui-status-info-color)}.vxe-slider.theme--warning .vxe-slider--bar-track{background-color:var(--vxe-ui-status-warning-color)}.vxe-slider.theme--warning .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-warning-lighten-color)}.vxe-slider.theme--warning .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-warning-darken-color)}.vxe-slider.theme--warning .vxe-slider--bar-btn{background-color:var(--vxe-ui-status-warning-color)}.vxe-slider.theme--danger .vxe-slider--bar-track{background-color:var(--vxe-ui-status-danger-color)}.vxe-slider.theme--danger .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-danger-lighten-color)}.vxe-slider.theme--danger .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-danger-darken-color)}.vxe-slider.theme--danger .vxe-slider--bar-btn{background-color:var(--vxe-ui-status-danger-color)}.vxe-slider.theme--error .vxe-slider--bar-track{background-color:var(--vxe-ui-status-error-color)}.vxe-slider.theme--error .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-error-lighten-color)}.vxe-slider.theme--error .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-error-darken-color)}.vxe-slider.theme--error .vxe-slider--bar-btn{background-color:var(--vxe-ui-status-error-color)}.vxe-slider.is--disabled .vxe-slider--bar-btn{cursor:not-allowed}.vxe-slider:not(.is--disabled) .vxe-slider--bar-wrapper,.vxe-slider:not(.is--disabled) .vxe-slider--inner{cursor:pointer}.vxe-slider:not(.is--disabled) .vxe-slider--bar-btn:hover{transform:translate(-50%,-50%) scale(1.2)}.vxe-slider:not(.is--disabled) .vxe-slider--bar-btn:active{transform:translate(-50%,-50%) scale(1.1)}.vxe-slider.is--readonly .vxe-slider--bar-wrapper,.vxe-slider.is--readonly .vxe-slider--inner{cursor:default}.vxe-slider--inner{position:relative}.vxe-slider--bar-wrapper{background-color:#e4e7ed}.vxe-slider--bar-track{position:absolute;left:0;top:0;z-index:1;background-color:var(--vxe-ui-font-primary-color)}.vxe-slider--bar-track:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-slider--bar-track:active{background-color:var(--vxe-ui-font-primary-darken-color)}.vxe-slider--bar-track,.vxe-slider--bar-wrapper{height:.3em;border-radius:var(--vxe-ui-base-border-radius)}.vxe-slider--bar-btn{position:absolute;width:1.2em;height:1.2em;top:50%;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--vxe-ui-font-primary-color);background-color:#fff;cursor:pointer;z-index:1;transition:transform .1s ease-in-out}
1
+ .vxe-slider{position:relative;display:block;padding:.8em}.vxe-slider.theme--primary .vxe-slider--bar-track{background-color:var(--vxe-ui-font-primary-color)}.vxe-slider.theme--primary .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-slider.theme--primary .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-font-primary-darken-color)}.vxe-slider.theme--primary .vxe-slider--bar-btn{border-color:var(--vxe-ui-font-primary-color)}.vxe-slider.theme--primary.is--disabled .vxe-slider--bar-track{background-color:var(--vxe-ui-font-primary-disabled-color)}.vxe-slider.theme--primary.is--disabled .vxe-slider--bar-btn{border-color:var(--vxe-ui-font-primary-disabled-color);cursor:not-allowed}.vxe-slider.theme--success .vxe-slider--bar-track{background-color:var(--vxe-ui-status-success-color)}.vxe-slider.theme--success .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-success-lighten-color)}.vxe-slider.theme--success .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-success-darken-color)}.vxe-slider.theme--success .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-success-color)}.vxe-slider.theme--success.is--disabled .vxe-slider--bar-track{background-color:var(--vxe-ui-status-success-disabled-color)}.vxe-slider.theme--success.is--disabled .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-success-disabled-color);cursor:not-allowed}.vxe-slider.theme--info .vxe-slider--bar-track{background-color:var(--vxe-ui-status-info-color)}.vxe-slider.theme--info .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-info-lighten-color)}.vxe-slider.theme--info .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-info-darken-color)}.vxe-slider.theme--info .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-info-color)}.vxe-slider.theme--info.is--disabled .vxe-slider--bar-track{background-color:var(--vxe-ui-status-info-disabled-color)}.vxe-slider.theme--info.is--disabled .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-info-disabled-color);cursor:not-allowed}.vxe-slider.theme--warning .vxe-slider--bar-track{background-color:var(--vxe-ui-status-warning-color)}.vxe-slider.theme--warning .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-warning-lighten-color)}.vxe-slider.theme--warning .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-warning-darken-color)}.vxe-slider.theme--warning .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-warning-color)}.vxe-slider.theme--warning.is--disabled .vxe-slider--bar-track{background-color:var(--vxe-ui-status-warning-disabled-color)}.vxe-slider.theme--warning.is--disabled .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-warning-disabled-color);cursor:not-allowed}.vxe-slider.theme--danger .vxe-slider--bar-track{background-color:var(--vxe-ui-status-danger-color)}.vxe-slider.theme--danger .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-danger-lighten-color)}.vxe-slider.theme--danger .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-danger-darken-color)}.vxe-slider.theme--danger .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-danger-color)}.vxe-slider.theme--danger.is--disabled .vxe-slider--bar-track{background-color:var(--vxe-ui-status-danger-disabled-color)}.vxe-slider.theme--danger.is--disabled .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-danger-disabled-color);cursor:not-allowed}.vxe-slider.theme--error .vxe-slider--bar-track{background-color:var(--vxe-ui-status-error-color)}.vxe-slider.theme--error .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-error-lighten-color)}.vxe-slider.theme--error .vxe-slider--bar-track:hover{background-color:var(--vxe-ui-status-error-darken-color)}.vxe-slider.theme--error .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-error-color)}.vxe-slider.theme--error.is--disabled .vxe-slider--bar-track{background-color:var(--vxe-ui-status-error-disabled-color)}.vxe-slider.theme--error.is--disabled .vxe-slider--bar-btn{border-color:var(--vxe-ui-status-error-disabled-color);cursor:not-allowed}.vxe-slider.is--disabled .vxe-slider--bar-track{background-color:var(--vxe-ui-font-primary-disabled-color)}.vxe-slider.is--disabled .vxe-slider--bar-btn{border-color:var(--vxe-ui-font-primary-disabled-color);cursor:not-allowed}.vxe-slider:not(.is--disabled) .vxe-slider--bar-wrapper,.vxe-slider:not(.is--disabled) .vxe-slider--inner{cursor:pointer}.vxe-slider:not(.is--disabled) .vxe-slider--bar-btn:hover{transform:translate(-50%,-50%) scale(1.2)}.vxe-slider:not(.is--disabled) .vxe-slider--bar-btn:active{transform:translate(-50%,-50%) scale(1.1);cursor:grab}.vxe-slider.is--readonly .vxe-slider--bar-wrapper,.vxe-slider.is--readonly .vxe-slider--inner{cursor:default}.vxe-slider--inner{position:relative}.vxe-slider--bar-wrapper{background-color:#e4e7ed}.vxe-slider--bar-track{position:absolute;left:0;top:0;z-index:1;background-color:var(--vxe-ui-font-primary-color)}.vxe-slider--bar-track:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-slider--bar-track:active{background-color:var(--vxe-ui-font-primary-darken-color)}.vxe-slider--bar-track,.vxe-slider--bar-wrapper{height:.3em;border-radius:var(--vxe-ui-base-border-radius)}.vxe-slider--bar-btn{position:absolute;width:1.2em;height:1.2em;top:50%;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--vxe-ui-font-primary-color);background-color:#fff;cursor:pointer;z-index:1;transition:transform .1s ease-in-out}
@@ -38,6 +38,26 @@ export default defineVxeComponent({
38
38
  align: {
39
39
  type: String,
40
40
  default: () => getConfig().space.align
41
+ },
42
+ fill: {
43
+ type: Boolean,
44
+ default: () => getConfig().space.fill
45
+ },
46
+ itemWidth: {
47
+ type: [String, Number],
48
+ default: () => getConfig().space.itemWidth
49
+ },
50
+ itemMinWidth: {
51
+ type: [String, Number],
52
+ default: () => getConfig().space.itemMinWidth
53
+ },
54
+ itemMaxWidth: {
55
+ type: [String, Number],
56
+ default: () => getConfig().space.itemMaxWidth
57
+ },
58
+ separatorWidth: {
59
+ type: [String, Number],
60
+ default: () => getConfig().space.separatorWidth
41
61
  }
42
62
  },
43
63
  emits: [],
@@ -100,20 +120,36 @@ export default defineVxeComponent({
100
120
  const spacePrivateMethods = {};
101
121
  Object.assign($xeSpace, spaceMethods, spacePrivateMethods);
102
122
  const renderItems = () => {
103
- const { separator, itemClassName } = props;
123
+ const { separator, itemClassName, itemWidth, itemMinWidth, itemMaxWidth, separatorWidth } = props;
104
124
  const itemVNs = [];
105
125
  const defaultSlot = slots.default;
106
126
  const separatorSlot = slots.separator;
127
+ const srStys = {};
128
+ if (separatorWidth) {
129
+ srStys.width = toCssUnit(itemWidth);
130
+ }
131
+ const itemStys = {};
132
+ if (itemWidth) {
133
+ itemStys.width = toCssUnit(itemWidth);
134
+ }
135
+ if (itemMinWidth) {
136
+ itemStys.minWidth = toCssUnit(itemMinWidth);
137
+ }
138
+ if (itemMaxWidth) {
139
+ itemStys.maxWidth = toCssUnit(itemMaxWidth);
140
+ }
107
141
  if (defaultSlot) {
108
142
  XEUtils.each(defaultSlot({}), (itemVN, index, items) => {
109
143
  itemVNs.push(h('div', {
110
144
  key: 'i' + index,
111
- class: ['vxe-space--item', getPropClass(itemClassName, { index })]
145
+ class: ['vxe-space--item', getPropClass(itemClassName, { index })],
146
+ style: itemStys
112
147
  }, [itemVN]));
113
148
  if ((separator || separatorSlot) && index < items.length - 1) {
114
149
  itemVNs.push(h('div', {
115
150
  key: 's' + index,
116
- class: 'vxe-space--separator'
151
+ class: 'vxe-space--separator',
152
+ style: srStys
117
153
  }, separatorSlot ? separatorSlot({}) : ('' + separator)));
118
154
  }
119
155
  });
@@ -121,7 +157,7 @@ export default defineVxeComponent({
121
157
  return itemVNs;
122
158
  };
123
159
  const renderVN = () => {
124
- const { vertical, wrap, className } = props;
160
+ const { vertical, wrap, className, fill, itemWidth, itemMinWidth, itemMaxWidth } = props;
125
161
  const wrapperStyle = computeWrapperStyle.value;
126
162
  const vSize = computeSize.value;
127
163
  return h('div', {
@@ -129,7 +165,9 @@ export default defineVxeComponent({
129
165
  class: ['vxe-space', getPropClass(className, {}), {
130
166
  [`size--${vSize}`]: vSize,
131
167
  'is--wrap': wrap,
132
- 'is--vertical': vertical
168
+ 'is--vertical': vertical,
169
+ 'is--fill': fill,
170
+ 'is--width': itemWidth || itemMinWidth || itemMaxWidth
133
171
  }],
134
172
  style: wrapperStyle
135
173
  }, renderItems());
@@ -34,4 +34,11 @@
34
34
  }
35
35
  .vxe-space.is--vertical {
36
36
  flex-direction: column;
37
+ }
38
+ .vxe-space.is--fill > .vxe-space--item {
39
+ flex-grow: 1;
40
+ }
41
+
42
+ .vxe-space--separator {
43
+ flex-shrink: 0;
37
44
  }
@@ -1 +1 @@
1
- .vxe-space{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-default);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-default)}.vxe-space.size--xlarge{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-xlarge);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-xlarge)}.vxe-space.size--large{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-large);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-large)}.vxe-space.size--medium{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-medium);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-medium)}.vxe-space.size--small{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-small);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-small)}.vxe-space.size--mini{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-mini);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-mini)}.vxe-space{display:inline-flex;flex-direction:row;align-items:center;gap:var(--vxe-ui-space-current-row-gap) var(--vxe-ui-space-current-column-gap)}.vxe-space.is--wrap{flex-wrap:wrap}.vxe-space.is--vertical{flex-direction:column}
1
+ .vxe-space{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-default);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-default)}.vxe-space.size--xlarge{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-xlarge);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-xlarge)}.vxe-space.size--large{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-large);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-large)}.vxe-space.size--medium{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-medium);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-medium)}.vxe-space.size--small{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-small);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-small)}.vxe-space.size--mini{--vxe-ui-space-current-row-gap:var(--vxe-ui-space-row-gap-mini);--vxe-ui-space-current-column-gap:var(--vxe-ui-space-column-gap-mini)}.vxe-space{display:inline-flex;flex-direction:row;align-items:center;gap:var(--vxe-ui-space-current-row-gap) var(--vxe-ui-space-current-column-gap)}.vxe-space.is--wrap{flex-wrap:wrap}.vxe-space.is--vertical{flex-direction:column}.vxe-space.is--fill>.vxe-space--item{flex-grow:1}.vxe-space--separator{flex-shrink:0}