vxe-pc-ui 3.17.18 → 3.17.20

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 (78) hide show
  1. package/es/button/style.css +12 -6
  2. package/es/button/style.min.css +1 -1
  3. package/es/components.js +31 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/slider/src/slider.js +38 -9
  6. package/es/space/index.js +12 -0
  7. package/es/space/src/space.js +121 -0
  8. package/es/space/style.css +36 -0
  9. package/es/space/style.min.css +1 -0
  10. package/es/style.css +1 -1
  11. package/es/style.min.css +1 -1
  12. package/es/ui/index.js +2 -1
  13. package/es/ui/src/dom.js +3 -0
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-button/style.css +12 -6
  16. package/es/vxe-button/style.min.css +1 -1
  17. package/es/vxe-space/index.js +3 -0
  18. package/es/vxe-space/style.css +36 -0
  19. package/es/vxe-space/style.min.css +1 -0
  20. package/lib/button/style/style.css +12 -6
  21. package/lib/button/style/style.min.css +1 -1
  22. package/lib/components.js +41 -2
  23. package/lib/components.min.js +1 -1
  24. package/lib/icon/style/style.css +1 -1
  25. package/lib/icon/style/style.min.css +1 -1
  26. package/lib/index.umd.js +237 -11
  27. package/lib/index.umd.min.js +1 -1
  28. package/lib/slider/src/slider.js +40 -7
  29. package/lib/slider/src/slider.min.js +1 -1
  30. package/lib/space/index.js +19 -0
  31. package/lib/space/index.min.js +1 -0
  32. package/lib/space/src/space.js +145 -0
  33. package/lib/space/src/space.min.js +1 -0
  34. package/lib/space/style/index.js +1 -0
  35. package/lib/space/style/style.css +36 -0
  36. package/lib/space/style/style.min.css +1 -0
  37. package/lib/style.css +1 -1
  38. package/lib/style.min.css +1 -1
  39. package/lib/ui/index.js +2 -1
  40. package/lib/ui/index.min.js +1 -1
  41. package/lib/ui/src/dom.js +4 -0
  42. package/lib/ui/src/dom.min.js +1 -1
  43. package/lib/ui/src/log.js +1 -1
  44. package/lib/ui/src/log.min.js +1 -1
  45. package/lib/vxe-button/style/style.css +12 -6
  46. package/lib/vxe-button/style/style.min.css +1 -1
  47. package/lib/vxe-space/index.js +22 -0
  48. package/lib/vxe-space/index.min.js +1 -0
  49. package/lib/vxe-space/style/index.js +1 -0
  50. package/lib/vxe-space/style/style.css +36 -0
  51. package/lib/vxe-space/style/style.min.css +1 -0
  52. package/package.json +1 -1
  53. package/packages/components.ts +31 -1
  54. package/packages/slider/src/slider.ts +44 -6
  55. package/packages/space/index.ts +16 -0
  56. package/packages/space/src/space.ts +132 -0
  57. package/packages/ui/index.ts +1 -0
  58. package/packages/ui/src/dom.ts +4 -0
  59. package/styles/all.scss +1 -0
  60. package/styles/components/button.scss +13 -7
  61. package/styles/components/space.scss +37 -0
  62. package/styles/theme/base.scss +20 -6
  63. package/types/all.d.ts +3 -0
  64. package/types/components/slider.d.ts +6 -0
  65. package/types/components/space.d.ts +100 -0
  66. package/types/ui/global-config.d.ts +2 -0
  67. /package/es/icon/{iconfont.1787676853197.ttf → iconfont.1787911531497.ttf} +0 -0
  68. /package/es/icon/{iconfont.1787676853197.woff → iconfont.1787911531497.woff} +0 -0
  69. /package/es/icon/{iconfont.1787676853197.woff2 → iconfont.1787911531497.woff2} +0 -0
  70. /package/es/{iconfont.1787676853197.ttf → iconfont.1787911531497.ttf} +0 -0
  71. /package/es/{iconfont.1787676853197.woff → iconfont.1787911531497.woff} +0 -0
  72. /package/es/{iconfont.1787676853197.woff2 → iconfont.1787911531497.woff2} +0 -0
  73. /package/lib/icon/style/{iconfont.1787676853197.ttf → iconfont.1787911531497.ttf} +0 -0
  74. /package/lib/icon/style/{iconfont.1787676853197.woff → iconfont.1787911531497.woff} +0 -0
  75. /package/lib/icon/style/{iconfont.1787676853197.woff2 → iconfont.1787911531497.woff2} +0 -0
  76. /package/lib/{iconfont.1787676853197.ttf → iconfont.1787911531497.ttf} +0 -0
  77. /package/lib/{iconfont.1787676853197.woff → iconfont.1787911531497.woff} +0 -0
  78. /package/lib/{iconfont.1787676853197.woff2 → iconfont.1787911531497.woff2} +0 -0
@@ -0,0 +1,132 @@
1
+ import { CreateElement, VNode, PropType } from 'vue'
2
+ import { defineVxeComponent } from '../../ui/src/comp'
3
+ import XEUtils from 'xe-utils'
4
+ import { getConfig, createEvent, globalMixins } from '../../ui'
5
+ import { getPropClass, toCssUnit } from '../../ui/src/dom'
6
+ import { eqEmptyValue } from '../../ui/src/utils'
7
+
8
+ import type { SpaceReactData, VxeSpaceEmits, VxeSpacePropTypes, ValueOf, VxeComponentSizeType, VxeComponentPermissionInfo, VxeComponentStyleType } from '../../../types'
9
+
10
+ export default /* define-vxe-component start */ defineVxeComponent({
11
+ name: 'VxeSpace',
12
+ mixins: [
13
+ globalMixins.sizeMixin,
14
+ globalMixins.permissionMixin
15
+ ],
16
+ props: {
17
+ size: {
18
+ type: String as PropType<VxeSpacePropTypes.Size>,
19
+ default: () => getConfig().space.size || getConfig().size
20
+ },
21
+ wrap: {
22
+ type: Boolean as PropType<VxeSpacePropTypes.Wrap>,
23
+ default: () => getConfig().space.wrap
24
+ },
25
+ gap: {
26
+ type: [Number, String, Array, Object] as PropType<VxeSpacePropTypes.Gap>,
27
+ default: () => getConfig().space.gap
28
+ },
29
+ vertical: {
30
+ type: Boolean as PropType<VxeSpacePropTypes.Vertical>,
31
+ default: () => getConfig().space.vertical
32
+ },
33
+ className: {
34
+ type: String as PropType<VxeSpacePropTypes.ClassName>,
35
+ default: () => getConfig().space.className
36
+ },
37
+ itemClassName: {
38
+ type: String as PropType<VxeSpacePropTypes.ItemClassName>,
39
+ default: () => getConfig().space.itemClassName
40
+ },
41
+ separator: {
42
+ type: String as PropType<VxeSpacePropTypes.Separator>,
43
+ default: () => getConfig().space.separator
44
+ }
45
+ },
46
+ data () {
47
+ const xID = XEUtils.uniqueId()
48
+ const reactData: SpaceReactData = {
49
+ activeValue: null
50
+ }
51
+ return {
52
+ xID,
53
+ reactData
54
+ }
55
+ },
56
+ computed: {
57
+ ...({} as {
58
+ computePermissionInfo(): VxeComponentPermissionInfo
59
+ computeSize(): VxeComponentSizeType
60
+ }),
61
+ computeWrapperStyle () {
62
+ const $xeSpace = this
63
+ const props = $xeSpace
64
+
65
+ const { gap } = props
66
+ const stys: VxeComponentStyleType = {}
67
+ let rowGap: string | number = ''
68
+ let columGap: string | number = ''
69
+ if (XEUtils.isNumber(gap) || XEUtils.isString(gap)) {
70
+ rowGap = gap
71
+ columGap = gap
72
+ } else if (gap) {
73
+ if (XEUtils.isArray(gap)) {
74
+ rowGap = gap[0]
75
+ columGap = gap[1]
76
+ } else {
77
+ rowGap = gap.rowGap || ''
78
+ columGap = gap.columGap || ''
79
+ }
80
+ }
81
+ if (!eqEmptyValue(rowGap)) {
82
+ stys['--vxe-ui-space-current-row-gap'] = toCssUnit(rowGap)
83
+ }
84
+ if (!eqEmptyValue(columGap)) {
85
+ stys['--vxe-ui-space-current-column-gap'] = toCssUnit(columGap)
86
+ }
87
+ return stys
88
+ }
89
+ },
90
+ methods: {
91
+ //
92
+ // Method
93
+ //
94
+ dispatchEvent (type: ValueOf<VxeSpaceEmits>, params: Record<string, any>, evnt: Event | null) {
95
+ const $xeSpace = this
96
+ $xeSpace.$emit(type, createEvent(evnt, { $space: $xeSpace }, params))
97
+ },
98
+
99
+ //
100
+ // Render
101
+ //
102
+ renderVN (h: CreateElement): VNode {
103
+ const $xeSpace = this
104
+ const props = $xeSpace
105
+ const slots = $xeSpace.$scopedSlots
106
+
107
+ const { vertical, wrap, className, itemClassName } = props
108
+ const wrapperStyle = $xeSpace.computeWrapperStyle
109
+ const vSize = $xeSpace.computeSize
110
+ const defaultSlot = slots.default
111
+ return h('div', {
112
+ ref: 'refElem',
113
+ class: ['vxe-space', getPropClass(className, {}), {
114
+ [`size--${vSize}`]: vSize,
115
+ 'is--wrap': wrap,
116
+ 'is--vertical': vertical
117
+ }],
118
+ style: wrapperStyle
119
+ }, defaultSlot
120
+ ? (defaultSlot({}) || []).map((itemVN, index) => {
121
+ return h('div', {
122
+ key: index,
123
+ class: ['vxe-space--item', getPropClass(itemClassName, { index })]
124
+ }, [itemVN])
125
+ })
126
+ : [])
127
+ }
128
+ },
129
+ render (this: any, h) {
130
+ return this.renderVN(h)
131
+ }
132
+ }) /* define-vxe-component end */
@@ -382,6 +382,7 @@ setConfig({
382
382
  max: 100,
383
383
  min: 0
384
384
  },
385
+ space: {},
385
386
  steps: {},
386
387
  switch: {},
387
388
  tabPane: {},
@@ -17,6 +17,10 @@ export function getTpImg () {
17
17
  return tpImgEl
18
18
  }
19
19
 
20
+ export function getPropClass (property: any, params: any) {
21
+ return property ? (XEUtils.isFunction(property) ? property(params) : property) || '' : ''
22
+ }
23
+
20
24
  const reClsMap: { [key: string]: any } = {}
21
25
 
22
26
  function getClsRE (cls: any) {
package/styles/all.scss CHANGED
@@ -70,6 +70,7 @@
70
70
  @use './components/split.scss';
71
71
  @use './components/split-pane.scss';
72
72
  @use './components/slider.scss';
73
+ @use './components/space.scss';
73
74
  @use './components/steps.scss';
74
75
  @use './components/switch.scss';
75
76
  @use './components/tab-pane.scss';
@@ -308,6 +308,13 @@
308
308
  @include placement.createPlacementPanel();
309
309
  }
310
310
 
311
+ .vxe-button.type--button+.vxe-button.type--button,
312
+ .vxe-button.type--button+.vxe-button--dropdown,
313
+ .vxe-button--dropdown+.vxe-button.type--button,
314
+ .vxe-button--dropdown+.vxe-button--dropdown {
315
+ margin-left: var(--vxe-ui-button-current-margin-left);
316
+ }
317
+
311
318
  .vxe-button--dropdown-wrapper {
312
319
  padding: 5px;
313
320
  background-color: var(--vxe-ui-layout-background-color);
@@ -332,11 +339,10 @@
332
339
  margin-bottom: 0;
333
340
  }
334
341
  }
335
- }
336
-
337
- .vxe-button.type--button+.vxe-button.type--button,
338
- .vxe-button.type--button+.vxe-button--dropdown,
339
- .vxe-button--dropdown+.vxe-button.type--button,
340
- .vxe-button--dropdown+.vxe-button--dropdown {
341
- margin-left: var(--vxe-ui-button-current-margin-left);
342
+ .vxe-button.type--button+.vxe-button.type--button,
343
+ .vxe-button.type--button+.vxe-button--dropdown,
344
+ .vxe-button--dropdown+.vxe-button.type--button,
345
+ .vxe-button--dropdown+.vxe-button--dropdown {
346
+ margin-left: 0;
347
+ }
342
348
  }
@@ -0,0 +1,37 @@
1
+ // 局部变量
2
+ .vxe-space {
3
+ --vxe-ui-space-current-row-gap: var(--vxe-ui-space-row-gap-default);
4
+ --vxe-ui-space-current-column-gap: var(--vxe-ui-space-column-gap-default);
5
+ &.size--xlarge {
6
+ --vxe-ui-space-current-row-gap: var(--vxe-ui-space-row-gap-xlarge);
7
+ --vxe-ui-space-current-column-gap: var(--vxe-ui-space-column-gap-xlarge);
8
+ }
9
+ &.size--large {
10
+ --vxe-ui-space-current-row-gap: var(--vxe-ui-space-row-gap-large);
11
+ --vxe-ui-space-current-column-gap: var(--vxe-ui-space-column-gap-large);
12
+ }
13
+ &.size--medium {
14
+ --vxe-ui-space-current-row-gap: var(--vxe-ui-space-row-gap-medium);
15
+ --vxe-ui-space-current-column-gap: var(--vxe-ui-space-column-gap-medium);
16
+ }
17
+ &.size--small {
18
+ --vxe-ui-space-current-row-gap: var(--vxe-ui-space-row-gap-small);
19
+ --vxe-ui-space-current-column-gap: var(--vxe-ui-space-column-gap-small);
20
+ }
21
+ &.size--mini {
22
+ --vxe-ui-space-current-row-gap: var(--vxe-ui-space-row-gap-mini);
23
+ --vxe-ui-space-current-column-gap: var(--vxe-ui-space-column-gap-mini);
24
+ }
25
+ }
26
+
27
+ .vxe-space {
28
+ display: inline-flex;
29
+ flex-direction: row;
30
+ gap: var(--vxe-ui-space-current-row-gap) var(--vxe-ui-space-current-column-gap);
31
+ &.is--wrap {
32
+ flex-wrap: wrap;
33
+ }
34
+ &.is--vertical {
35
+ flex-direction: column;
36
+ }
37
+ }
@@ -125,12 +125,12 @@
125
125
  --vxe-ui-tooltip-dark-background-color: #303133;
126
126
 
127
127
  /*form*/
128
- --vxe-ui-form-item-min-height-xlarge: 64px;
129
- --vxe-ui-form-item-min-height-large: 60px;
130
- --vxe-ui-form-item-min-height-default: 56px;
131
- --vxe-ui-form-item-min-height-medium: 52px;
132
- --vxe-ui-form-item-min-height-small: 48px;
133
- --vxe-ui-form-item-min-height-mini: 44px;
128
+ --vxe-ui-space-margin-xlarge: 64px;
129
+ --vxe-ui-space-margin-large: 60px;
130
+ --vxe-ui-space-margin-default: 56px;
131
+ --vxe-ui-space-margin-medium: 52px;
132
+ --vxe-ui-space-margin-small: 48px;
133
+ --vxe-ui-space-margin-mini: 44px;
134
134
  --vxe-ui-form-validate-error-color: var(--vxe-ui-status-error-color);
135
135
  --vxe-ui-form-item-padding-xlarge: 10px;
136
136
  --vxe-ui-form-item-padding-large: 9px;
@@ -289,4 +289,18 @@
289
289
 
290
290
  /*icon-picker*/
291
291
  --vxe-ui-icon-picker-panel-icon-font-size: 1.4em;
292
+
293
+ /*space*/
294
+ --vxe-ui-space-row-gap-xlarge: 16px;
295
+ --vxe-ui-space-row-gap-large: 14px;
296
+ --vxe-ui-space-row-gap-default: 12px;
297
+ --vxe-ui-space-row-gap-medium: 10px;
298
+ --vxe-ui-space-row-gap-small: 8px;
299
+ --vxe-ui-space-row-gap-mini: 6px;
300
+ --vxe-ui-space-column-gap-xlarge: var(--vxe-ui-space-row-gap-xlarge);
301
+ --vxe-ui-space-column-gap-large: var(--vxe-ui-space-row-gap-large);
302
+ --vxe-ui-space-column-gap-default: var(--vxe-ui-space-row-gap-default);
303
+ --vxe-ui-space-column-gap-medium: var(--vxe-ui-space-row-gap-medium);
304
+ --vxe-ui-space-column-gap-small: var(--vxe-ui-space-row-gap-small);
305
+ --vxe-ui-space-column-gap-mini: var(--vxe-ui-space-row-gap-mini);
292
306
  }
package/types/all.d.ts CHANGED
@@ -73,6 +73,7 @@ import VxeSplitterPanel from './components/splitter-panel'
73
73
  import VxeSplit from './components/split'
74
74
  import VxeSplitPane from './components/split-pane'
75
75
  import VxeSlider from './components/slider'
76
+ import VxeSpace from './components/space'
76
77
  import VxeSteps from './components/steps'
77
78
  import VxeSwitch from './components/switch'
78
79
  import VxeTabPane from './components/tab-pane'
@@ -350,6 +351,7 @@ interface UIComponents {
350
351
  VxeSplit: typeof VxeSplit
351
352
  VxeSplitPane: typeof VxeSplitPane
352
353
  VxeSlider: typeof VxeSlider
354
+ VxeSpace: typeof VxeSpace
353
355
  VxeSteps: typeof VxeSteps
354
356
  VxeSwitch: typeof VxeSwitch
355
357
  VxeTabPane: typeof VxeTabPane
@@ -519,6 +521,7 @@ export * from './components/splitter-panel'
519
521
  export * from './components/split'
520
522
  export * from './components/split-pane'
521
523
  export * from './components/slider'
524
+ export * from './components/space'
522
525
  export * from './components/steps'
523
526
  export * from './components/switch'
524
527
  export * from './components/tab-pane'
@@ -7,6 +7,7 @@ export type VxeSliderComponent = DefineVxeComponentOptions<VxeSliderProps>
7
7
 
8
8
  export type VxeSliderInstance = DefineVxeComponentInstance<{
9
9
  reactData: SliderReactData
10
+ internalData: SliderInternalData
10
11
  }, VxeSliderProps, VxeSliderPrivateComputed, VxeSliderMethods>
11
12
 
12
13
  export type VxeSliderConstructor = VxeSliderInstance
@@ -26,6 +27,7 @@ export namespace VxeSliderPropTypes {
26
27
  export type Step = number | string
27
28
  export type Readonly = boolean
28
29
  export type Disabled = boolean
30
+ export type Immediate = boolean
29
31
  }
30
32
 
31
33
  export interface VxeSliderProps {
@@ -39,6 +41,7 @@ export interface VxeSliderProps {
39
41
  step?: VxeSliderPropTypes.Step
40
42
  readonly?: VxeSliderPropTypes.Readonly
41
43
  disabled?: VxeSliderPropTypes.Disabled
44
+ immediate?: VxeSliderPropTypes.Immediate
42
45
  }
43
46
 
44
47
  export interface SliderPrivateComputed {
@@ -49,6 +52,9 @@ export interface SliderReactData {
49
52
  startValue: number
50
53
  endValue: number
51
54
  }
55
+ export interface SliderInternalData {
56
+ _isUp?: boolean
57
+ }
52
58
 
53
59
  export interface SliderMethods {
54
60
  }
@@ -0,0 +1,100 @@
1
+ import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType } from '@vxe-ui/core'
2
+
3
+ /* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
4
+
5
+ export declare const VxeSpace: DefineVxeComponentApp<VxeSpaceProps, VxeSpaceEventProps, VxeSpaceSlots, VxeSpaceMethods>
6
+ export type VxeSpaceComponent = DefineVxeComponentOptions<VxeSpaceProps>
7
+
8
+ export type VxeSpaceInstance = DefineVxeComponentInstance<{
9
+ reactData: SpaceReactData
10
+ }, VxeSpaceProps, VxeSpacePrivateComputed, VxeSpaceMethods>
11
+
12
+ export type VxeSpaceConstructor = VxeSpaceInstance
13
+
14
+ export interface SpacePrivateRef {
15
+ }
16
+ export interface VxeSpacePrivateRef extends SpacePrivateRef { }
17
+
18
+ export namespace VxeSpacePropTypes {
19
+ export type Size = VxeComponentSizeType
20
+ export type Wrap = boolean
21
+ export type Gap = number | string | number[] | VxeSpaceDefines.GapObj
22
+ export type Vertical = boolean
23
+ export type ClassName = string
24
+ export type ItemClassName = string
25
+ export type Separator = string
26
+ }
27
+
28
+ export interface VxeSpaceProps {
29
+ size?: VxeSpacePropTypes.Size
30
+ /**
31
+ * 是否自动换行
32
+ */
33
+ wrap?: VxeSpacePropTypes.Wrap
34
+ /**
35
+ * 自定义间距
36
+ */
37
+ gap?: VxeSpacePropTypes.Gap
38
+ /**
39
+ * 是否垂直布局
40
+ */
41
+ vertical?: VxeSpacePropTypes.Vertical
42
+ className?: VxeSpacePropTypes.ClassName
43
+ itemClassName?: VxeSpacePropTypes.ItemClassName
44
+ /**
45
+ * 分隔符
46
+ */
47
+ separator?: VxeSpacePropTypes.Separator
48
+ }
49
+
50
+ export interface SpacePrivateComputed {
51
+ }
52
+ export interface VxeSpacePrivateComputed extends SpacePrivateComputed { }
53
+
54
+ export interface SpaceReactData {
55
+ }
56
+
57
+ export interface SpaceMethods {
58
+ }
59
+ export interface VxeSpaceMethods extends SpaceMethods { }
60
+
61
+ export interface SpacePrivateMethods { }
62
+ export interface VxeSpacePrivateMethods extends SpacePrivateMethods { }
63
+
64
+ export type VxeSpaceEmits = [
65
+ ]
66
+
67
+ export namespace VxeSpaceDefines {
68
+ export interface GapObj {
69
+ /**
70
+ * 行间距
71
+ */
72
+ rowGap?: number | string
73
+ /**
74
+ * 列间距
75
+ */
76
+ columGap?: number | string
77
+ }
78
+ export interface SpaceEventParams extends VxeComponentEventParams {
79
+ $space: VxeSpaceConstructor
80
+ }
81
+ }
82
+
83
+ export type VxeSpaceEventProps = {}
84
+
85
+ export interface VxeSpaceListeners { }
86
+
87
+ export namespace VxeSpaceEvents { }
88
+
89
+ export namespace VxeSpaceSlotTypes {
90
+ export interface DefaultSlotParams {}
91
+ export interface SeparatorSlotParams {}
92
+ }
93
+
94
+ export interface VxeSpaceSlots {
95
+ default?: (params: VxeSpaceSlotTypes.DefaultSlotParams) => any
96
+ separator?: (params: VxeSpaceSlotTypes.SeparatorSlotParams) => any
97
+ }
98
+
99
+ export const Space: typeof VxeSpace
100
+ export default VxeSpace
@@ -71,6 +71,7 @@ import { VxeSplitterPanelProps } from '../components/splitter-panel'
71
71
  import { VxeSplitProps } from '../components/split'
72
72
  import { VxeSplitPaneProps } from '../components/split-pane'
73
73
  import { VxeSliderProps } from '../components/slider'
74
+ import { VxeSpaceProps } from '../components/space'
74
75
  import { VxeStepsProps } from '../components/steps'
75
76
  import { VxeSwitchProps } from '../components/switch'
76
77
  import { VxeTabPaneProps } from '../components/tab-pane'
@@ -184,6 +185,7 @@ declare module '@vxe-ui/core' {
184
185
  split?: VxeSplitProps
185
186
  splitPane?: VxeSplitPaneProps
186
187
  slider?: VxeSliderProps
188
+ space?: VxeSpaceProps
187
189
  steps?: VxeStepsProps
188
190
  switch?: VxeSwitchProps
189
191
  tabPane?: VxeTabPaneProps