@varlet/ui 1.27.8 → 1.27.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 (66) hide show
  1. package/es/badge/Badge.js +1 -1
  2. package/es/bottom-navigation-item/BottomNavigationItem.js +3 -1
  3. package/es/card/Card.js +228 -19
  4. package/es/card/card.css +1 -1
  5. package/es/card/card.less +108 -5
  6. package/es/card/props.js +25 -0
  7. package/es/index-bar/IndexBar.js +4 -4
  8. package/es/index-bar/props.js +1 -1
  9. package/es/loading/Loading.js +5 -14
  10. package/es/loading/loading.css +1 -1
  11. package/es/loading/loading.less +20 -0
  12. package/es/picker/Picker.js +2 -1
  13. package/es/progress/Progress.js +14 -11
  14. package/es/progress/progress.css +1 -1
  15. package/es/progress/progress.less +3 -0
  16. package/es/progress/props.js +1 -1
  17. package/es/rate/Rate.js +4 -2
  18. package/es/rate/props.js +2 -4
  19. package/es/rate/rate.css +1 -1
  20. package/es/rate/rate.less +7 -0
  21. package/es/select/Select.js +3 -1
  22. package/es/slider/Slider.js +10 -9
  23. package/es/style.css +1 -1
  24. package/es/switch/Switch.js +22 -19
  25. package/es/switch/props.js +1 -2
  26. package/es/switch/switch.css +1 -1
  27. package/es/switch/switch.less +18 -4
  28. package/es/utils/elements.js +13 -0
  29. package/es/utils/jest.js +19 -0
  30. package/es/varlet.esm.js +334 -96
  31. package/highlight/attributes.json +21 -5
  32. package/highlight/tags.json +6 -2
  33. package/highlight/web-types.json +50 -6
  34. package/lib/badge/Badge.js +1 -1
  35. package/lib/bottom-navigation-item/BottomNavigationItem.js +3 -1
  36. package/lib/card/Card.js +228 -15
  37. package/lib/card/card.css +1 -1
  38. package/lib/card/card.less +108 -5
  39. package/lib/card/props.js +25 -0
  40. package/lib/index-bar/IndexBar.js +3 -3
  41. package/lib/index-bar/props.js +1 -1
  42. package/lib/loading/Loading.js +6 -15
  43. package/lib/loading/loading.css +1 -1
  44. package/lib/loading/loading.less +20 -0
  45. package/lib/picker/Picker.js +2 -1
  46. package/lib/progress/Progress.js +15 -11
  47. package/lib/progress/progress.css +1 -1
  48. package/lib/progress/progress.less +3 -0
  49. package/lib/progress/props.js +1 -1
  50. package/lib/rate/Rate.js +3 -1
  51. package/lib/rate/props.js +2 -4
  52. package/lib/rate/rate.css +1 -1
  53. package/lib/rate/rate.less +7 -0
  54. package/lib/select/Select.js +3 -1
  55. package/lib/slider/Slider.js +9 -8
  56. package/lib/style.css +1 -1
  57. package/lib/switch/Switch.js +22 -19
  58. package/lib/switch/props.js +1 -2
  59. package/lib/switch/switch.css +1 -1
  60. package/lib/switch/switch.less +18 -4
  61. package/lib/utils/elements.js +17 -1
  62. package/lib/utils/jest.js +21 -0
  63. package/package.json +10 -9
  64. package/types/card.d.ts +9 -0
  65. package/types/indexBar.d.ts +1 -1
  66. package/umd/varlet.js +4 -4
@@ -2,53 +2,98 @@
2
2
  @card-background: #fff;
3
3
  @card-border-radius: 4px;
4
4
  @card-image-width: 100%;
5
+ @card-row-image-width: 140px;
6
+ @card-row-height: 140px;
5
7
  @card-image-height: 200px;
6
8
  @card-title-color: #333;
7
9
  @card-title-font-size: 20px;
8
10
  @card-title-padding: 0 12px;
9
11
  @card-title-margin: 15px 0 0 0;
12
+ @card-title-row-margin: 12px 0;
10
13
  @card-subtitle-color: rgba(0, 0, 0, 0.6);
11
14
  @card-subtitle-font-size: 14px;
12
- @card-subtitle-padding: 0 13px;
15
+ @card-subtitle-padding: 0 12px;
16
+ @card-subtitle-row-margin: -8px 0 0 0;
13
17
  @card-subtitle-margin: 10px 0 0 0;
14
18
  @card-description-color: rgba(0, 0, 0, 0.6);
15
19
  @card-description-font-size: 14px;
16
20
  @card-description-margin: 20px 0 0 0;
17
21
  @card-description-padding: 0 13px;
18
22
  @card-footer-padding: 0 12px;
23
+ @card-footer-right: 13px;
24
+ @card-footer-bottom: 9px;
19
25
  @card-footer-margin: 30px 0 0px 0;
20
26
  @card-line-height: 22px;
27
+ @card-row-line-height: 1.5;
28
+ @card-floating-buttons-bottom: 16px;
29
+ @card-floating-buttons-right: 16px;
30
+ @card-floating-buttons-color: #fff;
31
+ @card-close-button-icon-size: 24px;
32
+ @card-close-button-size: 56px;
33
+ @card-close-button-primary-color: #212121;
21
34
 
22
35
  :root {
23
36
  --card-padding: @card-padding;
24
37
  --card-background: @card-background;
25
38
  --card-border-radius: @card-border-radius;
26
39
  --card-image-width: @card-image-width;
40
+ --card-row-image-width: @card-row-image-width;
27
41
  --card-image-height: @card-image-height;
42
+ --card-row-height: @card-row-height;
28
43
  --card-title-color: @card-title-color;
29
44
  --card-title-font-size: @card-title-font-size;
30
45
  --card-title-padding: @card-title-padding;
31
46
  --card-title-margin: @card-title-margin;
47
+ --card-title-row-margin: @card-title-row-margin;
32
48
  --card-subtitle-color: @card-subtitle-color;
33
49
  --card-subtitle-font-size: @card-subtitle-font-size;
34
50
  --card-subtitle-padding: @card-subtitle-padding;
35
51
  --card-subtitle-margin: @card-subtitle-margin;
52
+ --card-subtitle-row-margin: @card-subtitle-row-margin;
36
53
  --card-description-color: @card-description-color;
37
54
  --card-description-font-size: @card-description-font-size;
38
55
  --card-description-margin: @card-description-margin;
39
56
  --card-description-padding: @card-description-padding;
40
57
  --card-footer-padding: @card-footer-padding;
58
+ --card-footer-right: @card-footer-right;
59
+ --card-footer-bottom: @card-footer-bottom;
41
60
  --card-footer-margin: @card-footer-margin;
42
61
  --card-line-height: @card-line-height;
62
+ --card-row-line-height: @card-row-line-height;
63
+ --card-floating-buttons-bottom: @card-floating-buttons-bottom;
64
+ --card-floating-buttons-right: @card-floating-buttons-right;
65
+ --card-floating-buttons-color: @card-floating-buttons-color;
66
+ --card-close-button-icon-size: @card-close-button-icon-size;
67
+ --card-close-button-size: @card-close-button-size;
68
+ --card-close-button-primary-color: @card-close-button-primary-color;
43
69
  }
44
70
 
45
71
  .var-card {
46
72
  border-radius: var(--card-border-radius);
47
73
  overflow: hidden;
48
- padding: var(--card-padding);
49
- line-height: var(--card-line-height);
50
- background: var(--card-background);
51
- transition: background-color 0.25s;
74
+
75
+ &__floater {
76
+ display: flex;
77
+ flex-direction: column;
78
+ position: static;
79
+ line-height: var(--card-line-height);
80
+ background: var(--card-background);
81
+ transition-timing-function: cubic-bezier(0.45, 0.19, 0.06, 0.89);
82
+ }
83
+
84
+ &__container {
85
+ padding: var(--card-padding);
86
+ flex-grow: 1;
87
+ min-width: 0;
88
+ }
89
+
90
+ &--layout-row &__floater {
91
+ min-height: var(--card-row-height);
92
+ height: 100%;
93
+ flex-direction: row;
94
+ position: relative;
95
+ line-height: var(--card-row-line-height);
96
+ }
52
97
 
53
98
  &__image {
54
99
  width: var(--card-image-width);
@@ -56,11 +101,27 @@
56
101
  display: block;
57
102
  }
58
103
 
104
+ &--layout-row &__image {
105
+ width: var(--card-row-image-width);
106
+ height: auto;
107
+ display: block;
108
+ flex-shrink: 0;
109
+ }
110
+
59
111
  &__title {
60
112
  font-size: var(--card-title-font-size);
61
113
  padding: var(--card-title-padding);
62
114
  margin: var(--card-title-margin);
63
115
  color: var(--card-title-color);
116
+ word-break: break-word;
117
+ }
118
+
119
+ &--layout-row &__title {
120
+ max-width: 100%;
121
+ overflow: hidden;
122
+ margin: var(--card-title-row-margin);
123
+ text-overflow: ellipsis;
124
+ white-space: nowrap;
64
125
  }
65
126
 
66
127
  &__subtitle {
@@ -68,6 +129,16 @@
68
129
  color: var(--card-subtitle-color);
69
130
  padding: var(--card-subtitle-padding);
70
131
  margin: var(--card-subtitle-margin);
132
+ word-break: break-word;
133
+ }
134
+
135
+ &--layout-row &__subtitle {
136
+ margin: var(--card-subtitle-row-margin);
137
+ text-overflow: ellipsis;
138
+ display: -webkit-box;
139
+ -webkit-box-orient: vertical;
140
+ -webkit-line-clamp: 2;
141
+ overflow: hidden;
71
142
  }
72
143
 
73
144
  &__description {
@@ -79,7 +150,39 @@
79
150
  }
80
151
 
81
152
  &__footer {
153
+ display: flex;
154
+ justify-content: flex-end;
82
155
  padding: var(--card-footer-padding);
83
156
  margin: var(--card-footer-margin);
84
157
  }
158
+
159
+ &--layout-row &__footer {
160
+ position: absolute;
161
+ padding: 0;
162
+ right: var(--card-footer-right);
163
+ bottom: var(--card-footer-bottom);
164
+ }
165
+
166
+ &__content {
167
+ overflow: hidden;
168
+ transition-timing-function: cubic-bezier(0.45, 0.19, 0.06, 0.89);
169
+ }
170
+
171
+ &__floating-buttons {
172
+ position: fixed;
173
+ bottom: var(--card-floating-buttons-bottom);
174
+ right: var(--card-floating-buttons-right);
175
+ color: var(--card-floating-buttons-color);
176
+ }
177
+
178
+ &__close-button[var-card-cover] {
179
+ padding: var(--card-close-button-padding);
180
+ width: var(--card-close-button-size);
181
+ height: var(--card-close-button-size);
182
+ background-color: var(--card-close-button-primary-color);
183
+ }
184
+
185
+ &__close-button-icon[var-card-cover] {
186
+ font-size: var(--card-close-button-icon-size);
187
+ }
85
188
  }
package/lib/card/props.js CHANGED
@@ -16,9 +16,34 @@ var props = {
16
16
  validator: fitValidator,
17
17
  default: 'cover'
18
18
  },
19
+
20
+ /**
21
+ * @deprecated use imageHeight instead
22
+ */
19
23
  height: {
20
24
  type: [String, Number]
21
25
  },
26
+ imageHeight: {
27
+ type: [String, Number]
28
+ },
29
+ imageWidth: {
30
+ type: [String, Number]
31
+ },
32
+ layout: {
33
+ type: String,
34
+ default: 'column'
35
+ },
36
+ floating: {
37
+ type: Boolean,
38
+ default: false
39
+ },
40
+ 'onUpdate:floating': {
41
+ type: Function
42
+ },
43
+ floatingDuration: {
44
+ type: Number,
45
+ default: 250
46
+ },
22
47
  alt: {
23
48
  type: String
24
49
  },
@@ -46,7 +46,7 @@ function render(_ctx, _cache) {
46
46
  style: (0, _vue.normalizeStyle)({
47
47
  color: _ctx.active === anchorName && _ctx.highlightColor ? _ctx.highlightColor : ''
48
48
  }),
49
- onClick: $event => _ctx.anchorClick(anchorName)
49
+ onClick: $event => _ctx.anchorClick(anchorName, true)
50
50
  }, (0, _vue.toDisplayString)(anchorName), 15
51
51
  /* TEXT, CLASS, STYLE, PROPS */
52
52
  , _hoisted_1);
@@ -77,7 +77,7 @@ var _default = (0, _vue.defineComponent)({
77
77
  var active = (0, _vue.ref)();
78
78
  var sticky = (0, _vue.computed)(() => props.sticky);
79
79
  var cssMode = (0, _vue.computed)(() => props.cssMode);
80
- var stickyOffsetTop = (0, _vue.computed)(() => props.stickyOffsetTop);
80
+ var stickyOffsetTop = (0, _vue.computed)(() => (0, _elements.toPxNum)(props.stickyOffsetTop));
81
81
  var zIndex = (0, _vue.computed)(() => props.zIndex);
82
82
  var indexBarProvider = {
83
83
  active,
@@ -153,7 +153,7 @@ var _default = (0, _vue.defineComponent)({
153
153
 
154
154
 
155
155
  var scrollTo = index => {
156
- (0, _elements.requestAnimationFrame)(() => anchorClick(index, true));
156
+ (0, _elements.requestAnimationFrame)(() => anchorClick(index));
157
157
  };
158
158
 
159
159
  (0, _vue.watch)(() => length.value, /*#__PURE__*/_asyncToGenerator(function* () {
@@ -8,7 +8,7 @@ var props = {
8
8
  default: true
9
9
  },
10
10
  stickyOffsetTop: {
11
- type: Number,
11
+ type: [String, Number],
12
12
  default: 0
13
13
  },
14
14
  cssMode: {
@@ -8,10 +8,10 @@ var _vue = require("vue");
8
8
 
9
9
  var _props = require("./props");
10
10
 
11
- var _shared = require("../utils/shared");
12
-
13
11
  var _components = require("../utils/components");
14
12
 
13
+ var _elements = require("../utils/elements");
14
+
15
15
  var {
16
16
  n,
17
17
  classes
@@ -52,10 +52,10 @@ function render(_ctx, _cache) {
52
52
  key: 0,
53
53
  class: (0, _vue.normalizeClass)(_ctx.n('circle'))
54
54
  }, [(0, _vue.createElementVNode)("span", {
55
- class: (0, _vue.normalizeClass)(_ctx.n('circle-block')),
55
+ class: (0, _vue.normalizeClass)(_ctx.classes(_ctx.n('circle-block'), _ctx.n("circle-block--" + _ctx.size))),
56
56
  style: (0, _vue.normalizeStyle)({
57
- width: _ctx.getRadius * 2 + 'px',
58
- height: _ctx.getRadius * 2 + 'px',
57
+ width: _ctx.multiplySizeUnit(_ctx.radius, 2),
58
+ height: _ctx.multiplySizeUnit(_ctx.radius, 2),
59
59
  color: _ctx.color
60
60
  })
61
61
  }, _hoisted_2, 6
@@ -119,15 +119,6 @@ var _default = (0, _vue.defineComponent)({
119
119
  rect: 8,
120
120
  disappear: 3
121
121
  };
122
- var sizeDict = {
123
- mini: 9,
124
- small: 12,
125
- normal: 15,
126
- large: 18
127
- };
128
- var getRadius = (0, _vue.computed)(() => {
129
- return props.radius ? (0, _shared.toNumber)(props.radius) : sizeDict[props.size];
130
- });
131
122
  var isShow = (0, _vue.computed)(() => {
132
123
  if (!(0, _components.call)(slots.default)) return true;
133
124
  return props.loading;
@@ -135,8 +126,8 @@ var _default = (0, _vue.defineComponent)({
135
126
  return {
136
127
  n,
137
128
  classes,
129
+ multiplySizeUnit: _elements.multiplySizeUnit,
138
130
  loadingTypeDict,
139
- getRadius,
140
131
  isShow
141
132
  };
142
133
  }
@@ -1 +1 @@
1
- :root { --loading-opacity: 0.38; --loading-desc-margin: 8px 0 0;}.var-loading { position: relative;}.var-loading__content { position: relative; transition: opacity 0.3s; opacity: 1;}.var-loading__content--active { opacity: var(--loading-opacity);}.var-loading__content-mask { position: absolute; left: 0; right: 0; top: 0; bottom: 0;}.var-loading__body { display: flex; justify-content: center; align-items: center; height: 100%; flex-direction: column;}.var-loading__inside { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 1;}.var-loading__description { color: currentColor; margin: var(--loading-desc-margin);}.var-loading__description--large { font-size: 16px;}.var-loading__description--normal { font-size: 14px;}.var-loading__description--small { font-size: 12px;}.var-loading__description--mini { font-size: 10px;}.var-loading__circle { display: flex;}.var-loading__circle-block { display: inline-block; animation: circle 1.8s linear infinite;}.var-loading__circle-block svg { display: block; width: 100%; height: 100%;}.var-loading__circle-block svg circle { animation: circular 1.5s ease-in-out infinite; stroke: currentColor; stroke-width: 3; stroke-linecap: round;}@keyframes circle { from { transform: rotate(0deg); } to { transform: rotate(360deg); }}@keyframes circular { 0% { stroke-dasharray: 1, 200; stroke-dashoffset: 0; } 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -40; } 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -120; }}.var-loading__wave { display: flex; align-items: center; justify-content: center;}.var-loading__wave--large { width: 64px; height: 18px;}.var-loading__wave--normal { width: 50px; height: 16px;}.var-loading__wave--small { width: 36px; height: 14px;}.var-loading__wave--mini { width: 22px; height: 12px;}.var-loading__wave-item { height: 100%; display: inline-block; animation: 1.2s ease-in-out infinite wave;}.var-loading__wave-item:nth-child(1) { animation-delay: -1.2s; margin-left: 0;}.var-loading__wave-item:nth-child(2) { animation-delay: -1.1s;}.var-loading__wave-item:nth-child(3) { animation-delay: -1s;}.var-loading__wave-item:nth-child(4) { animation-delay: -0.9s;}.var-loading__wave-item:nth-child(5) { animation-delay: -0.8s;}.var-loading__wave-item--large { width: 5px; margin-left: 5px;}.var-loading__wave-item--normal { width: 4px; margin-left: 4px;}.var-loading__wave-item--small { width: 3px; margin-left: 3px;}.var-loading__wave-item--mini { width: 2px; margin-left: 2px;}@keyframes wave { 0%, 40%, 100% { transform: scaleY(0.4); } 20% { transform: scaleY(1); }}.var-loading__cube { display: flex; align-items: center;}.var-loading__cube--large { width: 64px; height: 18px;}.var-loading__cube--normal { width: 50px; height: 16px;}.var-loading__cube--small { width: 36px; height: 14px;}.var-loading__cube--mini { width: 22px; height: 12px;}.var-loading__cube-item { display: inline-block; transform-origin: right bottom; animation: 1.5s ease infinite cube;}.var-loading__cube-item:nth-child(1) { animation-delay: 0.2s; margin-left: 0;}.var-loading__cube-item:nth-child(2) { animation-delay: 0.4s;}.var-loading__cube-item:nth-child(3) { animation-delay: 0.6s;}.var-loading__cube-item:nth-child(4) { animation-delay: 0.8s;}.var-loading__cube-item--large { height: 10px; width: 10px; margin-left: 5px;}.var-loading__cube-item--normal { height: 8px; width: 8px; margin-left: 4px;}.var-loading__cube-item--small { height: 6px; width: 6px; margin-left: 3px;}.var-loading__cube-item--mini { height: 4px; width: 4px; margin-left: 2px;}@keyframes cube { 0% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: rotate(90deg) scale(0.3); }}.var-loading__rect { display: flex; flex-wrap: nowrap; justify-content: center; align-items: center;}.var-loading__rect--large { width: 64px; height: 18px;}.var-loading__rect--normal { width: 50px; height: 16px;}.var-loading__rect--small { width: 36px; height: 14px;}.var-loading__rect--mini { width: 22px; height: 12px;}.var-loading__rect-item { animation: 2s ease-in-out infinite rect;}.var-loading__rect-item:nth-child(1) { animation-delay: 1.75s;}.var-loading__rect-item:nth-child(2) { animation-delay: 1.5s;}.var-loading__rect-item:nth-child(3) { animation-delay: 1.25s;}.var-loading__rect-item:nth-child(4) { animation-delay: 1s;}.var-loading__rect-item:nth-child(5) { animation-delay: 0.75s;}.var-loading__rect-item:nth-child(6) { animation-delay: 0.5s;}.var-loading__rect-item:nth-child(7) { animation-delay: 0.25s;}.var-loading__rect-item:nth-child(8) { animation-delay: 0s;}.var-loading__rect-item--large { height: 100%; width: 8px;}.var-loading__rect-item--normal { height: 90%; width: 6.4px;}.var-loading__rect-item--small { height: 80%; width: 4.8px;}.var-loading__rect-item--mini { height: 70%; width: 3.2px;}@keyframes rect { 0% { opacity: 0.3; } 25% { opacity: 1; } 50% { opacity: 0.3; } 65% { opacity: 1; } 100% { opacity: 0.3; }}.var-loading__disappear { display: flex; justify-content: space-around; align-items: center; flex-flow: nowrap;}.var-loading__disappear--large { width: 64px; height: 18px;}.var-loading__disappear--normal { width: 50px; height: 16px;}.var-loading__disappear--small { width: 36px; height: 14px;}.var-loading__disappear--mini { width: 22px; height: 12px;}.var-loading__disappear-item { border-radius: 50%; animation: 0.5s ease-in-out infinite alternate disappear;}.var-loading__disappear-item:nth-child(1) { animation-delay: -0.4s;}.var-loading__disappear-item:nth-child(2) { animation-delay: -0.2s;}.var-loading__disappear-item:nth-child(3) { animation-delay: 0s;}.var-loading__disappear-item--large { height: 15px; width: 15px;}.var-loading__disappear-item--normal { height: 12px; width: 12px;}.var-loading__disappear-item--small { height: 9px; width: 9px;}.var-loading__disappear-item--mini { height: 6px; width: 6px;}@keyframes disappear { 0% { opacity: 1; } 100% { opacity: 0; }}
1
+ :root { --loading-opacity: 0.38; --loading-desc-margin: 8px 0 0;}.var-loading { position: relative;}.var-loading__content { position: relative; transition: opacity 0.3s; opacity: 1;}.var-loading__content--active { opacity: var(--loading-opacity);}.var-loading__content-mask { position: absolute; left: 0; right: 0; top: 0; bottom: 0;}.var-loading__body { display: flex; justify-content: center; align-items: center; height: 100%; flex-direction: column;}.var-loading__inside { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 1;}.var-loading__description { color: currentColor; margin: var(--loading-desc-margin);}.var-loading__description--large { font-size: 16px;}.var-loading__description--normal { font-size: 14px;}.var-loading__description--small { font-size: 12px;}.var-loading__description--mini { font-size: 10px;}.var-loading__circle { display: flex;}.var-loading__circle-block { display: inline-block; animation: circle 1.8s linear infinite;}.var-loading__circle-block--large { width: 36px; height: 36px;}.var-loading__circle-block--normal { width: 30px; height: 30px;}.var-loading__circle-block--small { width: 24px; height: 24px;}.var-loading__circle-block--mini { width: 18px; height: 18px;}.var-loading__circle-block svg { display: block; width: 100%; height: 100%;}.var-loading__circle-block svg circle { animation: circular 1.5s ease-in-out infinite; stroke: currentColor; stroke-width: 3; stroke-linecap: round;}@keyframes circle { from { transform: rotate(0deg); } to { transform: rotate(360deg); }}@keyframes circular { 0% { stroke-dasharray: 1, 200; stroke-dashoffset: 0; } 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -40; } 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -120; }}.var-loading__wave { display: flex; align-items: center; justify-content: center;}.var-loading__wave--large { width: 64px; height: 18px;}.var-loading__wave--normal { width: 50px; height: 16px;}.var-loading__wave--small { width: 36px; height: 14px;}.var-loading__wave--mini { width: 22px; height: 12px;}.var-loading__wave-item { height: 100%; display: inline-block; animation: 1.2s ease-in-out infinite wave;}.var-loading__wave-item:nth-child(1) { animation-delay: -1.2s; margin-left: 0;}.var-loading__wave-item:nth-child(2) { animation-delay: -1.1s;}.var-loading__wave-item:nth-child(3) { animation-delay: -1s;}.var-loading__wave-item:nth-child(4) { animation-delay: -0.9s;}.var-loading__wave-item:nth-child(5) { animation-delay: -0.8s;}.var-loading__wave-item--large { width: 5px; margin-left: 5px;}.var-loading__wave-item--normal { width: 4px; margin-left: 4px;}.var-loading__wave-item--small { width: 3px; margin-left: 3px;}.var-loading__wave-item--mini { width: 2px; margin-left: 2px;}@keyframes wave { 0%, 40%, 100% { transform: scaleY(0.4); } 20% { transform: scaleY(1); }}.var-loading__cube { display: flex; align-items: center;}.var-loading__cube--large { width: 64px; height: 18px;}.var-loading__cube--normal { width: 50px; height: 16px;}.var-loading__cube--small { width: 36px; height: 14px;}.var-loading__cube--mini { width: 22px; height: 12px;}.var-loading__cube-item { display: inline-block; transform-origin: right bottom; animation: 1.5s ease infinite cube;}.var-loading__cube-item:nth-child(1) { animation-delay: 0.2s; margin-left: 0;}.var-loading__cube-item:nth-child(2) { animation-delay: 0.4s;}.var-loading__cube-item:nth-child(3) { animation-delay: 0.6s;}.var-loading__cube-item:nth-child(4) { animation-delay: 0.8s;}.var-loading__cube-item--large { height: 10px; width: 10px; margin-left: 5px;}.var-loading__cube-item--normal { height: 8px; width: 8px; margin-left: 4px;}.var-loading__cube-item--small { height: 6px; width: 6px; margin-left: 3px;}.var-loading__cube-item--mini { height: 4px; width: 4px; margin-left: 2px;}@keyframes cube { 0% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: rotate(90deg) scale(0.3); }}.var-loading__rect { display: flex; flex-wrap: nowrap; justify-content: center; align-items: center;}.var-loading__rect--large { width: 64px; height: 18px;}.var-loading__rect--normal { width: 50px; height: 16px;}.var-loading__rect--small { width: 36px; height: 14px;}.var-loading__rect--mini { width: 22px; height: 12px;}.var-loading__rect-item { animation: 2s ease-in-out infinite rect;}.var-loading__rect-item:nth-child(1) { animation-delay: 1.75s;}.var-loading__rect-item:nth-child(2) { animation-delay: 1.5s;}.var-loading__rect-item:nth-child(3) { animation-delay: 1.25s;}.var-loading__rect-item:nth-child(4) { animation-delay: 1s;}.var-loading__rect-item:nth-child(5) { animation-delay: 0.75s;}.var-loading__rect-item:nth-child(6) { animation-delay: 0.5s;}.var-loading__rect-item:nth-child(7) { animation-delay: 0.25s;}.var-loading__rect-item:nth-child(8) { animation-delay: 0s;}.var-loading__rect-item--large { height: 100%; width: 8px;}.var-loading__rect-item--normal { height: 90%; width: 6.4px;}.var-loading__rect-item--small { height: 80%; width: 4.8px;}.var-loading__rect-item--mini { height: 70%; width: 3.2px;}@keyframes rect { 0% { opacity: 0.3; } 25% { opacity: 1; } 50% { opacity: 0.3; } 65% { opacity: 1; } 100% { opacity: 0.3; }}.var-loading__disappear { display: flex; justify-content: space-around; align-items: center; flex-flow: nowrap;}.var-loading__disappear--large { width: 64px; height: 18px;}.var-loading__disappear--normal { width: 50px; height: 16px;}.var-loading__disappear--small { width: 36px; height: 14px;}.var-loading__disappear--mini { width: 22px; height: 12px;}.var-loading__disappear-item { border-radius: 50%; animation: 0.5s ease-in-out infinite alternate disappear;}.var-loading__disappear-item:nth-child(1) { animation-delay: -0.4s;}.var-loading__disappear-item:nth-child(2) { animation-delay: -0.2s;}.var-loading__disappear-item:nth-child(3) { animation-delay: 0s;}.var-loading__disappear-item--large { height: 15px; width: 15px;}.var-loading__disappear-item--normal { height: 12px; width: 12px;}.var-loading__disappear-item--small { height: 9px; width: 9px;}.var-loading__disappear-item--mini { height: 6px; width: 6px;}@keyframes disappear { 0% { opacity: 1; } 100% { opacity: 0; }}
@@ -84,6 +84,26 @@
84
84
  display: inline-block;
85
85
  animation: circle 1.8s linear infinite;
86
86
 
87
+ &--large {
88
+ width: 36px;
89
+ height: 36px;
90
+ }
91
+
92
+ &--normal {
93
+ width: 30px;
94
+ height: 30px;
95
+ }
96
+
97
+ &--small {
98
+ width: 24px;
99
+ height: 24px;
100
+ }
101
+
102
+ &--mini {
103
+ width: 18px;
104
+ height: 18px;
105
+ }
106
+
87
107
  svg {
88
108
  display: block;
89
109
  width: 100%;
@@ -437,7 +437,8 @@ var _default = (0, _vue.defineComponent)({
437
437
  } = getPicked();
438
438
  prevIndexes = [...indexes];
439
439
  }, {
440
- immediate: true
440
+ immediate: true,
441
+ deep: true
441
442
  });
442
443
  return {
443
444
  n,
@@ -10,6 +10,8 @@ var _props = require("./props");
10
10
 
11
11
  var _shared = require("../utils/shared");
12
12
 
13
+ var _elements = require("../utils/elements");
14
+
13
15
  var _components = require("../utils/components");
14
16
 
15
17
  var {
@@ -32,7 +34,7 @@ function render(_ctx, _cache) {
32
34
  }, [(0, _vue.createElementVNode)("div", (0, _vue.mergeProps)({
33
35
  class: _ctx.n('linear-block'),
34
36
  style: {
35
- height: _ctx.lineWidth + "px"
37
+ height: _ctx.toSizeUnit(_ctx.lineWidth)
36
38
  }
37
39
  }, _ctx.$attrs), [_ctx.track ? ((0, _vue.openBlock)(), (0, _vue.createElementBlock)("div", {
38
40
  key: 0,
@@ -65,8 +67,8 @@ function render(_ctx, _cache) {
65
67
  key: 1,
66
68
  class: (0, _vue.normalizeClass)(_ctx.n('circle')),
67
69
  style: (0, _vue.normalizeStyle)({
68
- width: _ctx.size + "px",
69
- height: _ctx.size + "px"
70
+ width: _ctx.toSizeUnit(_ctx.size),
71
+ height: _ctx.toSizeUnit(_ctx.size)
70
72
  })
71
73
  }, [((0, _vue.openBlock)(), (0, _vue.createElementBlock)("svg", {
72
74
  class: (0, _vue.normalizeClass)(_ctx.n('circle-svg')),
@@ -77,11 +79,11 @@ function render(_ctx, _cache) {
77
79
  }, [_ctx.track ? ((0, _vue.openBlock)(), (0, _vue.createElementBlock)("circle", {
78
80
  key: 0,
79
81
  class: (0, _vue.normalizeClass)(_ctx.n('circle-background')),
80
- cx: _ctx.size / 2,
81
- cy: _ctx.size / 2,
82
+ cx: _ctx.multiplySizeUnit(_ctx.size, 0.5),
83
+ cy: _ctx.multiplySizeUnit(_ctx.size, 0.5),
82
84
  r: _ctx.circleProps.radius,
83
85
  fill: "transparent",
84
- "stroke-width": _ctx.lineWidth,
86
+ "stroke-width": _ctx.toSizeUnit(_ctx.lineWidth),
85
87
  style: (0, _vue.normalizeStyle)({
86
88
  strokeDasharray: _ctx.circleProps.perimeter,
87
89
  stroke: _ctx.trackColor
@@ -90,11 +92,11 @@ function render(_ctx, _cache) {
90
92
  /* CLASS, STYLE, PROPS */
91
93
  , _hoisted_2)) : (0, _vue.createCommentVNode)("v-if", true), (0, _vue.createElementVNode)("circle", {
92
94
  class: (0, _vue.normalizeClass)(_ctx.n('circle-certain')),
93
- cx: _ctx.size / 2,
94
- cy: _ctx.size / 2,
95
+ cx: _ctx.multiplySizeUnit(_ctx.size, 0.5),
96
+ cy: _ctx.multiplySizeUnit(_ctx.size, 0.5),
95
97
  r: _ctx.circleProps.radius,
96
98
  fill: "transparent",
97
- "stroke-width": _ctx.lineWidth,
99
+ "stroke-width": _ctx.toSizeUnit(_ctx.lineWidth),
98
100
  style: (0, _vue.normalizeStyle)({
99
101
  strokeDasharray: _ctx.circleProps.strokeDasharray,
100
102
  stroke: _ctx.color
@@ -139,9 +141,9 @@ var _default = (0, _vue.defineComponent)({
139
141
  lineWidth,
140
142
  value
141
143
  } = props;
142
- var viewBox = "0 0 " + size + " " + size;
144
+ var viewBox = "0 0 " + (0, _elements.toPxNum)(size) + " " + (0, _elements.toPxNum)(size);
143
145
  var roundValue = (0, _shared.toNumber)(value) > 100 ? 100 : Math.round((0, _shared.toNumber)(value));
144
- var radius = (size - (0, _shared.toNumber)(lineWidth)) / 2;
146
+ var radius = ((0, _elements.toPxNum)(size) - (0, _elements.toPxNum)(lineWidth)) / 2;
145
147
  var perimeter = 2 * Math.PI * radius;
146
148
  var strokeDasharray = roundValue / 100 * perimeter + ", " + perimeter;
147
149
  return {
@@ -155,6 +157,8 @@ var _default = (0, _vue.defineComponent)({
155
157
  return {
156
158
  n,
157
159
  classes,
160
+ toSizeUnit: _elements.toSizeUnit,
161
+ multiplySizeUnit: _elements.multiplySizeUnit,
158
162
  linearProps,
159
163
  circleProps
160
164
  };
@@ -1 +1 @@
1
- :root { --progress-font-size: var(--font-size-sm); --progress-ripple-color: #fff; --progress-track-color: #d8d8d8; --progress-background: var(--color-primary);}.var-progress { position: relative; font-size: var(--progress-font-size);}.var-progress__linear { display: flex; align-items: center;}.var-progress__linear-block { flex: 1; position: relative; overflow: hidden;}.var-progress__linear-background,.var-progress__linear-certain { width: 100%; height: 100%;}.var-progress__linear-ripple::after { position: absolute; width: 0; background-color: var(--progress-ripple-color); height: 100%; opacity: 0; animation: ripple 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite; content: '';}.var-progress__linear-background { background-color: var(--progress-track-color);}.var-progress__linear-certain { position: absolute; background-color: var(--progress-background); top: 0; left: 0; transition: all 0.2s, background-color 0.8s;}.var-progress__linear-label { margin-left: 8px; flex: 0;}@keyframes ripple { 0% { width: 0; opacity: 0.1; } 20% { width: 0; opacity: 0.5; } 80% { width: 100%; opacity: 0; }}.var-progress__circle { position: relative;}.var-progress__circle-background { stroke: var(--progress-track-color);}.var-progress__circle-certain { transition: all 0.2s; stroke: var(--progress-background); position: absolute;}.var-progress__circle-label { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);}
1
+ :root { --progress-font-size: var(--font-size-sm); --progress-ripple-color: #fff; --progress-track-color: #d8d8d8; --progress-background: var(--color-primary);}.var-progress { position: relative; font-size: var(--progress-font-size);}.var-progress__linear { display: flex; align-items: center;}.var-progress__linear-block { flex: 1; position: relative; overflow: hidden; height: 4px;}.var-progress__linear-background,.var-progress__linear-certain { width: 100%; height: 100%;}.var-progress__linear-ripple::after { position: absolute; width: 0; background-color: var(--progress-ripple-color); height: 100%; opacity: 0; animation: ripple 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite; content: '';}.var-progress__linear-background { background-color: var(--progress-track-color);}.var-progress__linear-certain { position: absolute; background-color: var(--progress-background); top: 0; left: 0; transition: all 0.2s, background-color 0.8s;}.var-progress__linear-label { margin-left: 8px; flex: 0;}@keyframes ripple { 0% { width: 0; opacity: 0.1; } 20% { width: 0; opacity: 0.5; } 80% { width: 100%; opacity: 0; }}.var-progress__circle { position: relative; width: 40px; height: 40px;}.var-progress__circle-background { stroke: var(--progress-track-color);}.var-progress__circle-certain { transition: all 0.2s; stroke: var(--progress-background); position: absolute;}.var-progress__circle-label { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);}
@@ -22,6 +22,7 @@
22
22
  flex: 1;
23
23
  position: relative;
24
24
  overflow: hidden;
25
+ height: 4px;
25
26
  }
26
27
 
27
28
  &-background,
@@ -77,6 +78,8 @@
77
78
 
78
79
  &__circle {
79
80
  position: relative;
81
+ width: 40px;
82
+ height: 40px;
80
83
 
81
84
  &-background {
82
85
  stroke: var(--progress-track-color);
@@ -44,7 +44,7 @@ var props = {
44
44
  },
45
45
  // circle 的尺寸
46
46
  size: {
47
- type: Number,
47
+ type: [Number, String],
48
48
  default: 40
49
49
  },
50
50
  // circle的原点
package/lib/rate/Rate.js CHANGED
@@ -50,6 +50,8 @@ function render(_ctx, _cache) {
50
50
  class: (0, _vue.normalizeClass)(_ctx.getClass(val)),
51
51
  onClick: $event => _ctx.handleClick(val, $event)
52
52
  }, [(0, _vue.createVNode)(_component_var_icon, {
53
+ class: (0, _vue.normalizeClass)(_ctx.n('content-icon')),
54
+ "var-rate-cover": "",
53
55
  transition: 0,
54
56
  namespace: _ctx.namespace,
55
57
  name: _ctx.getIconName(val),
@@ -58,7 +60,7 @@ function render(_ctx, _cache) {
58
60
  })
59
61
  }, null, 8
60
62
  /* PROPS */
61
- , ["namespace", "name", "style"])], 14
63
+ , ["class", "namespace", "name", "style"])], 14
62
64
  /* CLASS, STYLE, PROPS */
63
65
  , _hoisted_1)), [[_directive_ripple, {
64
66
  disabled: _ctx.formReadonly || _ctx.readonly || _ctx.formDisabled || _ctx.disabled || !_ctx.ripple
package/lib/rate/props.js CHANGED
@@ -26,12 +26,10 @@ var props = {
26
26
  default: 'star-outline'
27
27
  },
28
28
  size: {
29
- type: [String, Number],
30
- default: '24'
29
+ type: [String, Number]
31
30
  },
32
31
  gap: {
33
- type: [String, Number],
34
- default: '2'
32
+ type: [String, Number]
35
33
  },
36
34
  namespace: {
37
35
  type: String
package/lib/rate/rate.css CHANGED
@@ -1 +1 @@
1
- :root { --rate-disabled-color: var(--color-text-disabled); --rate-error-color: var(--color-danger); --rate-action-padding: 4px; --rate-primary-color: var(--color-primary);}.var-rate { display: flex; transform: translateX(calc(-1 * var(--rate-action-padding)));}.var-rate__content { padding: var(--rate-action-padding); box-sizing: unset; cursor: pointer; display: flex; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.var-rate--primary { color: var(--rate-primary-color);}.var-rate--disabled { color: var(--rate-disabled-color); cursor: not-allowed;}.var-rate--error { color: var(--rate-error-color);}
1
+ :root { --rate-disabled-color: var(--color-text-disabled); --rate-error-color: var(--color-danger); --rate-action-padding: 4px; --rate-primary-color: var(--color-primary);}.var-rate { display: flex; transform: translateX(calc(-1 * var(--rate-action-padding)));}.var-rate__content { padding: var(--rate-action-padding); box-sizing: unset; cursor: pointer; display: flex; width: 24px; height: 24px; margin-right: 2px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.var-rate__content-icon[var-rate-cover] { font-size: 24px;}.var-rate--primary { color: var(--rate-primary-color);}.var-rate--disabled { color: var(--rate-disabled-color); cursor: not-allowed;}.var-rate--error { color: var(--rate-error-color);}
@@ -19,7 +19,14 @@
19
19
  box-sizing: unset;
20
20
  cursor: pointer;
21
21
  display: flex;
22
+ width: 24px;
23
+ height: 24px;
24
+ margin-right: 2px;
22
25
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
26
+
27
+ &-icon[var-rate-cover] {
28
+ font-size: 24px;
29
+ }
23
30
  }
24
31
 
25
32
  &--primary {
@@ -268,6 +268,8 @@ var _default = (0, _vue.defineComponent)({
268
268
  };
269
269
 
270
270
  var findLabel = modelValue => {
271
+ var _option$label$value, _option;
272
+
271
273
  var option = options.find(_ref2 => {
272
274
  var {
273
275
  value
@@ -284,7 +286,7 @@ var _default = (0, _vue.defineComponent)({
284
286
  });
285
287
  }
286
288
 
287
- return option.label.value;
289
+ return (_option$label$value = (_option = option) == null ? void 0 : _option.label.value) != null ? _option$label$value : '';
288
290
  };
289
291
 
290
292
  var computePlaceholderState = () => {
@@ -45,8 +45,8 @@ function render(_ctx, _cache) {
45
45
  }, [(0, _vue.createElementVNode)("div", {
46
46
  class: (0, _vue.normalizeClass)(_ctx.classes(_ctx.n('block'), [_ctx.isDisabled, _ctx.n('--disabled')], [_ctx.errorMessage, _ctx.n('--error')])),
47
47
  style: (0, _vue.normalizeStyle)({
48
- height: _ctx.thumbSize === undefined ? _ctx.thumbSize : 3 * _ctx.toNumber(_ctx.thumbSize) + "px",
49
- margin: _ctx.thumbSize === undefined ? _ctx.thumbSize : "0 " + _ctx.toNumber(_ctx.thumbSize) / 2 + "px"
48
+ height: _ctx.thumbSize === undefined ? _ctx.thumbSize : _ctx.multiplySizeUnit(_ctx.thumbSize, 3),
49
+ margin: _ctx.thumbSize === undefined ? _ctx.thumbSize : "0 " + _ctx.multiplySizeUnit(_ctx.thumbSize, 0.5)
50
50
  }),
51
51
  ref: "sliderEl",
52
52
  onClick: _cache[0] || (_cache[0] = function () {
@@ -58,7 +58,7 @@ function render(_ctx, _cache) {
58
58
  class: (0, _vue.normalizeClass)(_ctx.n('track-background')),
59
59
  style: (0, _vue.normalizeStyle)({
60
60
  background: _ctx.trackColor,
61
- height: _ctx.trackHeight + 'px'
61
+ height: _ctx.multiplySizeUnit(_ctx.trackHeight)
62
62
  })
63
63
  }, null, 6
64
64
  /* CLASS, STYLE */
@@ -87,8 +87,8 @@ function render(_ctx, _cache) {
87
87
  class: (0, _vue.normalizeClass)(_ctx.n('thumb-block')),
88
88
  style: (0, _vue.normalizeStyle)({
89
89
  background: _ctx.thumbColor,
90
- height: _ctx.thumbSize + 'px',
91
- width: _ctx.thumbSize + 'px'
90
+ height: _ctx.multiplySizeUnit(_ctx.thumbSize),
91
+ width: _ctx.multiplySizeUnit(_ctx.thumbSize)
92
92
  })
93
93
  }, null, 6
94
94
  /* CLASS, STYLE */
@@ -104,8 +104,8 @@ function render(_ctx, _cache) {
104
104
  style: (0, _vue.normalizeStyle)({
105
105
  background: _ctx.labelColor,
106
106
  color: _ctx.labelTextColor,
107
- height: _ctx.thumbSize === undefined ? _ctx.thumbSize : 2 * _ctx.toNumber(_ctx.thumbSize) + "px",
108
- width: _ctx.thumbSize === undefined ? _ctx.thumbSize : 2 * _ctx.toNumber(_ctx.thumbSize) + "px"
107
+ height: _ctx.thumbSize === undefined ? _ctx.thumbSize : _ctx.multiplySizeUnit(_ctx.thumbSize, 2),
108
+ width: _ctx.thumbSize === undefined ? _ctx.thumbSize : _ctx.multiplySizeUnit(_ctx.thumbSize, 2)
109
109
  })
110
110
  }, [(0, _vue.createElementVNode)("span", null, (0, _vue.toDisplayString)(item.value), 1
111
111
  /* TEXT */
@@ -191,7 +191,7 @@ var _default = (0, _vue.defineComponent)({
191
191
  var size;
192
192
 
193
193
  if (props.thumbSize !== undefined) {
194
- size = thumbsProps[item.enumValue].active ? 3 * (0, _shared.toNumber)(props.thumbSize) + "px" : '0px';
194
+ size = thumbsProps[item.enumValue].active ? (0, _elements.multiplySizeUnit)(props.thumbSize, 3) : '0px';
195
195
  }
196
196
 
197
197
  return {
@@ -400,6 +400,7 @@ var _default = (0, _vue.defineComponent)({
400
400
  errorMessage,
401
401
  thumbsProps,
402
402
  thumbList,
403
+ multiplySizeUnit: _elements.multiplySizeUnit,
403
404
  toNumber: _shared.toNumber,
404
405
  getRippleSize,
405
406
  showLabel,