@liuzengwei/element-ui 2.15.5-xn.47 → 2.15.5-xn.49

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 (53) hide show
  1. package/lib/affix.js +2 -2
  2. package/lib/autocomplete.js +2 -2
  3. package/lib/avatar.js +2 -2
  4. package/lib/calendar.js +2 -2
  5. package/lib/carousel.js +2 -2
  6. package/lib/cascader-panel.js +2 -2
  7. package/lib/cascader.js +8 -8
  8. package/lib/col.js +2 -2
  9. package/lib/color-picker.js +2 -2
  10. package/lib/date-picker.js +5 -5
  11. package/lib/descriptions-item.js +2 -2
  12. package/lib/descriptions.js +10 -10
  13. package/lib/dialog.js +2 -2
  14. package/lib/drawer.js +2 -2
  15. package/lib/dropdown.js +4 -4
  16. package/lib/element-ui.common.js +318 -18
  17. package/lib/image.js +5 -5
  18. package/lib/index.js +1 -1
  19. package/lib/infinite-scroll.js +10 -10
  20. package/lib/loading.js +2 -2
  21. package/lib/message-box.js +4 -4
  22. package/lib/message.js +5 -5
  23. package/lib/notification.js +2 -2
  24. package/lib/popconfirm.js +2 -2
  25. package/lib/rate.js +2 -2
  26. package/lib/row.js +2 -2
  27. package/lib/scrollbar.js +10 -10
  28. package/lib/segmented.js +523 -0
  29. package/lib/select.js +4 -4
  30. package/lib/submenu.js +2 -2
  31. package/lib/table-column.js +2 -2
  32. package/lib/table.js +8 -8
  33. package/lib/tabs.js +2 -2
  34. package/lib/tag.js +2 -2
  35. package/lib/theme-chalk/index.css +1 -1
  36. package/lib/theme-chalk/segmented.css +1 -0
  37. package/lib/time-picker.js +2 -2
  38. package/lib/time-select.js +2 -2
  39. package/lib/timeline.js +2 -2
  40. package/lib/tooltip.js +2 -2
  41. package/lib/transfer.js +2 -2
  42. package/lib/trigger.js +8 -8
  43. package/package.json +1 -1
  44. package/packages/segmented/index.js +8 -0
  45. package/packages/segmented/src/main.vue +183 -0
  46. package/packages/theme-chalk/lib/index.css +1 -1
  47. package/packages/theme-chalk/lib/segmented.css +1 -0
  48. package/packages/theme-chalk/src/common/var.scss +1 -1
  49. package/packages/theme-chalk/src/index.scss +1 -0
  50. package/packages/theme-chalk/src/segmented.scss +165 -0
  51. package/src/index.js +5 -2
  52. package/types/element-ui.d.ts +4 -0
  53. package/types/segmented.d.ts +51 -0
@@ -0,0 +1 @@
1
+ .el-segmented{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding:0;background-color:transparent;border-radius:2px;position:relative}.el-segmented.is-disabled{opacity:.6;cursor:not-allowed}.el-segmented--block{width:100%}.el-segmented--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:auto}.el-segmented--large .el-segmented__item{padding:12px 15px;font-size:14px}.el-segmented--small .el-segmented__item{padding:8px 12px;font-size:13px}.el-segmented__item{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:10px;cursor:pointer;border-radius:0;-webkit-transition:all .2s cubic-bezier(.645,.045,.355,1);transition:all .2s cubic-bezier(.645,.045,.355,1);font-size:14px;line-height:20px;color:#86909C;position:relative;background-color:#FFF;border:1px solid #F2F2F2}.el-segmented__item:not(:first-child){border-left:none}.el-segmented__item:first-child{border-radius:2px 0 0 2px}.el-segmented__item:last-child{border-radius:0 2px 2px 0}.el-segmented__item:first-child:last-child{border-radius:2px}.el-segmented__item:hover{background-color:rgba(72,133,248,.1)}.el-segmented__item.is-selected{background-color:#4885F8;color:#FFF;border-color:#4885F8;z-index:1}.el-segmented__item.is-selected:hover{background-color:#4885F8}.el-segmented__item.is-disabled{cursor:not-allowed;color:#86909C;background-color:#F5F7FA}.el-segmented__item.is-disabled:hover{background-color:#F5F7FA}.el-segmented__item.is-disabled.is-selected{background-color:#F5F7FA;color:#86909C;border-color:#F2F2F2}.el-segmented__item-input{position:absolute;opacity:0;pointer-events:none}.el-segmented__item-label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%}.el-segmented.el-segmented--block .el-segmented__item{min-width:0}.el-segmented.el-segmented--stretch{width:100%;background-color:#FFF;border:1px solid #F2F2F2;border-radius:2px}.el-segmented.el-segmented--stretch .el-segmented__item{-webkit-box-flex:0;-ms-flex:none;flex:none;border:none;border-right:1px solid #F2F2F2}.el-segmented.el-segmented--vertical{width:auto}.el-segmented.el-segmented--vertical .el-segmented__item{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.el-segmented.el-segmented--vertical .el-segmented__item:not(:first-child){border-top:none;border-left:1px solid #F2F2F2}.el-segmented.el-segmented--vertical .el-segmented__item:first-child{border-radius:2px 2px 0 0}.el-segmented.el-segmented--vertical .el-segmented__item:last-child{border-radius:0 0 2px 2px}.el-segmented.el-segmented--vertical .el-segmented__item:first-child:last-child{border-radius:2px}
@@ -44,7 +44,7 @@ $--color-base: #202131 !default;
44
44
  // Background
45
45
  /// color|1|Background Color|4
46
46
  $--background-color-base: #F5F7FA !default;
47
- $--background-color-base-well: #FAFCFE !default;
47
+ $--background-color-light-base: #FAFCFE !default;
48
48
  $--background-color-input-base: #F7F8FA !default;
49
49
  $--background-color-table-header: #F7F8FA !default;
50
50
 
@@ -93,3 +93,4 @@
93
93
  @import "./area-picker.scss";
94
94
  @import "./trigger.scss";
95
95
  @import "./lazy-load.scss";
96
+ @import "./segmented.scss";
@@ -0,0 +1,165 @@
1
+ @charset "UTF-8";
2
+ @import "common/var";
3
+ @import "mixins/mixins";
4
+ @import "mixins/utils";
5
+
6
+ @include b(segmented) {
7
+ display: inline-flex;
8
+ padding: 0;
9
+ background-color: transparent;
10
+ border-radius: $--border-radius-base;
11
+ position: relative;
12
+
13
+ @include when(disabled) {
14
+ opacity: 0.6;
15
+ cursor: not-allowed;
16
+ }
17
+
18
+ @include m(block) {
19
+ width: 100%;
20
+ }
21
+
22
+ @include m(vertical) {
23
+ flex-direction: column;
24
+ width: auto;
25
+ }
26
+
27
+ @include m(large) {
28
+ @include e(item) {
29
+ padding: 12px 15px;
30
+ font-size: $--font-size-base;
31
+ }
32
+ }
33
+
34
+ @include m(small) {
35
+ @include e(item) {
36
+ padding: 8px 12px;
37
+ font-size: $--font-size-small;
38
+ }
39
+ }
40
+
41
+ @include e(item) {
42
+ flex: 1;
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: center;
46
+ padding: 10px;
47
+ cursor: pointer;
48
+ border-radius: 0;
49
+ transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
50
+ font-size: 14px;
51
+ line-height: 20px;
52
+ color: #86909C;
53
+ position: relative;
54
+ background-color: $--color-white;
55
+ border: 1px solid #F2F2F2;
56
+
57
+ &:not(:first-child) {
58
+ border-left: none;
59
+ }
60
+
61
+ &:first-child {
62
+ border-radius: 2px 0 0 2px;
63
+ }
64
+
65
+ &:last-child {
66
+ border-radius: 0 2px 2px 0;
67
+ }
68
+
69
+ &:first-child:last-child {
70
+ border-radius: 2px;
71
+ }
72
+
73
+ &:hover {
74
+ background-color: rgba($--color-primary, 0.1);
75
+ }
76
+
77
+ @include when(selected) {
78
+ background-color: $--color-primary;
79
+ color: $--color-white;
80
+ border-color: $--color-primary;
81
+ z-index: 1;
82
+
83
+ &:hover {
84
+ background-color: $--color-primary;
85
+ }
86
+ }
87
+
88
+ @include when(disabled) {
89
+ cursor: not-allowed;
90
+ color: $--color-text-placeholder;
91
+ background-color: $--disabled-fill-base;
92
+
93
+ &:hover {
94
+ background-color: $--disabled-fill-base;
95
+ }
96
+
97
+ @include when(selected) {
98
+ background-color: $--disabled-fill-base;
99
+ color: $--color-text-placeholder;
100
+ border-color: #F2F2F2;
101
+ }
102
+ }
103
+ }
104
+
105
+ @include e(item-input) {
106
+ position: absolute;
107
+ opacity: 0;
108
+ pointer-events: none;
109
+ }
110
+
111
+ @include e(item-label) {
112
+ display: flex;
113
+ align-items: center;
114
+ justify-content: center;
115
+ width: 100%;
116
+ }
117
+
118
+ // Block modifier
119
+ &.el-segmented--block {
120
+ .el-segmented__item {
121
+ min-width: 0;
122
+ }
123
+ }
124
+
125
+ // Stretch modifier
126
+ &.el-segmented--stretch {
127
+ width: 100%;
128
+ background-color: $--color-white;
129
+ border: 1px solid #F2F2F2;
130
+ border-radius: 2px;
131
+
132
+ .el-segmented__item {
133
+ flex: none;
134
+ border: none;
135
+ border-right: 1px solid #F2F2F2;
136
+ }
137
+ }
138
+
139
+ // Vertical modifier
140
+ &.el-segmented--vertical {
141
+ width: auto;
142
+
143
+ .el-segmented__item {
144
+ justify-content: flex-start;
145
+ width: 100%;
146
+
147
+ &:not(:first-child) {
148
+ border-top: none;
149
+ border-left: 1px solid #F2F2F2;
150
+ }
151
+
152
+ &:first-child {
153
+ border-radius: 2px 2px 0 0;
154
+ }
155
+
156
+ &:last-child {
157
+ border-radius: 0 0 2px 2px;
158
+ }
159
+
160
+ &:first-child:last-child {
161
+ border-radius: 2px;
162
+ }
163
+ }
164
+ }
165
+ }
package/src/index.js CHANGED
@@ -97,6 +97,7 @@ import SelectableTagGroup from '../packages/selectable-tag-group/index.js';
97
97
  import AreaPicker from '../packages/area-picker/index.js';
98
98
  import Trigger from '../packages/trigger/index.js';
99
99
  import LazyLoad from '../packages/lazy-load/index.js';
100
+ import Segmented from '../packages/segmented/index.js';
100
101
  import locale from 'element-ui/src/locale';
101
102
  import CollapseTransition from 'element-ui/src/transitions/collapse-transition';
102
103
 
@@ -193,6 +194,7 @@ const components = [
193
194
  AreaPicker,
194
195
  Trigger,
195
196
  LazyLoad,
197
+ Segmented,
196
198
  CollapseTransition
197
199
  ];
198
200
 
@@ -228,7 +230,7 @@ if (typeof window !== 'undefined' && window.Vue) {
228
230
  }
229
231
 
230
232
  export default {
231
- version: '2.15.5-xn.47',
233
+ version: '2.15.5-xn.49',
232
234
  locale: locale.use,
233
235
  i18n: locale.i18n,
234
236
  install,
@@ -329,5 +331,6 @@ export default {
329
331
  SelectableTagGroup,
330
332
  AreaPicker,
331
333
  Trigger,
332
- LazyLoad
334
+ LazyLoad,
335
+ Segmented
333
336
  };
@@ -3,6 +3,7 @@
3
3
 
4
4
  import { ElTrigger } from './trigger'
5
5
  import { ElLazyLoad } from './lazy-load'
6
+ import { ElSegmented } from './segmented'
6
7
 
7
8
  export class SelectableTag extends ElSelectableTag {}
8
9
 
@@ -14,3 +15,6 @@ export class Trigger extends ElTrigger {}
14
15
 
15
16
  /** LazyLoad Component */
16
17
  export class LazyLoad extends ElLazyLoad {}
18
+
19
+ /** Segmented Component */
20
+ export class Segmented extends ElSegmented {}
@@ -0,0 +1,51 @@
1
+ import { ElementUIComponent, ElementUIComponentSize } from './component'
2
+
3
+ export type SegmentedOption = Record<string, any> | string | number | boolean
4
+
5
+ export interface SegmentedProps {
6
+ /** 指定选项值为选项对象的某个属性值 */
7
+ value?: string
8
+ /** 指定选项标签为选项对象的某个属性值 */
9
+ label?: string
10
+ /** 指定选项的禁用为选项对象的某个属性值 */
11
+ disabled?: string
12
+ }
13
+
14
+ /** Segmented Component */
15
+ export declare class ElSegmented extends ElementUIComponent {
16
+ /** 绑定值 */
17
+ value: string | number | boolean
18
+
19
+ /** 选项数据 */
20
+ options: SegmentedOption[]
21
+
22
+ /** 配置选项 */
23
+ props: SegmentedProps
24
+
25
+ /** 尺寸 */
26
+ size: ElementUIComponentSize
27
+
28
+ /** 是否适应父元素宽度 */
29
+ block: boolean
30
+
31
+ /** 是否横向撑满容器但保持item固定宽度 */
32
+ stretch: boolean
33
+
34
+ /** 是否禁用 */
35
+ disabled: boolean
36
+
37
+ /** 是否触发表单验证 */
38
+ validateEvent: boolean
39
+
40
+ /** 原生 name 属性 */
41
+ name: string
42
+
43
+ /** 原生 id 属性 */
44
+ id: string
45
+
46
+ /** 原生 aria-label 属性 */
47
+ ariaLabel: string
48
+
49
+ /** 显示方向 */
50
+ direction: 'horizontal' | 'vertical'
51
+ }