@varlet/ui 1.27.5 → 1.27.7-alpha.1651056904329
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.
- package/README.en-US.md +2 -1
- package/README.md +4 -2
- package/es/context/lock.js +14 -21
- package/es/counter/counter.css +1 -1
- package/es/counter/counter.less +4 -0
- package/es/input/Input.js +5 -2
- package/es/input/props.js +4 -0
- package/es/loading/Loading.js +6 -1
- package/es/loading/loading.css +1 -1
- package/es/loading/loading.less +9 -1
- package/es/pagination/Pagination.js +1 -4
- package/es/pagination/pagination.css +1 -1
- package/es/pagination/pagination.less +19 -10
- package/es/picker/Picker.js +13 -5
- package/es/picker/picker.css +1 -1
- package/es/picker/picker.less +3 -0
- package/es/picker/props.js +4 -0
- package/es/popup/Popup.js +1 -1
- package/es/pull-refresh/PullRefresh.js +55 -22
- package/es/snackbar/core.js +1 -1
- package/es/snackbar/style/index.js +1 -1
- package/es/snackbar/style/less.js +1 -1
- package/es/style.css +1 -1
- package/es/themes/dark/picker.js +2 -1
- package/es/utils/jest.js +5 -2
- package/es/varlet.esm.js +198 -128
- package/highlight/attributes.json +8 -4
- package/highlight/tags.json +1 -0
- package/highlight/web-types.json +15 -6
- package/lib/context/lock.js +14 -21
- package/lib/counter/counter.css +1 -1
- package/lib/counter/counter.less +4 -0
- package/lib/input/Input.js +5 -2
- package/lib/input/props.js +4 -0
- package/lib/loading/Loading.js +6 -1
- package/lib/loading/loading.css +1 -1
- package/lib/loading/loading.less +9 -1
- package/lib/pagination/Pagination.js +1 -4
- package/lib/pagination/pagination.css +1 -1
- package/lib/pagination/pagination.less +19 -10
- package/lib/picker/Picker.js +13 -5
- package/lib/picker/picker.css +1 -1
- package/lib/picker/picker.less +3 -0
- package/lib/picker/props.js +4 -0
- package/lib/popup/Popup.js +1 -1
- package/lib/pull-refresh/PullRefresh.js +55 -22
- package/lib/snackbar/core.js +1 -1
- package/lib/snackbar/style/index.js +1 -1
- package/lib/snackbar/style/less.js +1 -1
- package/lib/style.css +1 -1
- package/lib/themes/dark/picker.js +2 -1
- package/lib/utils/jest.js +5 -2
- package/package.json +6 -6
- package/types/picker.d.ts +2 -0
- package/umd/varlet.js +4 -4
package/README.en-US.md
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
<h1>VARLET</h1>
|
|
6
6
|
<p>Material design mobile component library for Vue3</p>
|
|
7
7
|
<p>
|
|
8
|
-
<a href="https://varlet-varletjs.vercel.app/#/en-US/home">Documentation</a>
|
|
8
|
+
<a href="https://varlet-varletjs.vercel.app/#/en-US/home">Documentation(Vercel)</a>
|
|
9
|
+
<a href="https://varlet.gitee.io/varlet-ui/#/en-US/home">Documentation(Gitee)</a>
|
|
9
10
|
</p>
|
|
10
11
|
<p>
|
|
11
12
|
<img src="https://img.shields.io/npm/v/@varlet/ui?style=flat-square" alt="version">
|
package/README.md
CHANGED
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
</a>
|
|
5
5
|
<h1>VARLET</h1>
|
|
6
6
|
<p>基于 Vue3 的 Material design 风格移动端组件库</p>
|
|
7
|
-
|
|
8
|
-
<a href="https://varlet-varletjs.vercel.app"
|
|
7
|
+
<p>
|
|
8
|
+
<a href="https://varlet-varletjs.vercel.app">文档(Vercel)</a> |
|
|
9
|
+
<a href="https://varlet.gitee.io/varlet-ui">文档(Gitee)</a> |
|
|
10
|
+
<a href="https://github.com/varletjs/varlet/blob/dev/README.en-US.md">English Readme</a>
|
|
9
11
|
</p>
|
|
10
12
|
<p>
|
|
11
13
|
<img src="https://img.shields.io/npm/v/@varlet/ui?style=flat-square" alt="version">
|
package/es/context/lock.js
CHANGED
|
@@ -12,32 +12,25 @@ export function releaseLock(uid) {
|
|
|
12
12
|
delete context.locks[uid];
|
|
13
13
|
resolveLock();
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
* 组件锁操作
|
|
17
|
-
* @param props 组件props
|
|
18
|
-
* @param state 组件props中控制组件加锁的开关对应的key值
|
|
19
|
-
* @param use 组件props中控制组件加锁的开关是否可用对应的key值
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
export function useLock(props, state, use) {
|
|
15
|
+
export function useLock(source, useSource) {
|
|
23
16
|
var {
|
|
24
17
|
uid
|
|
25
18
|
} = getCurrentInstance();
|
|
26
19
|
|
|
27
|
-
if (
|
|
28
|
-
watch(
|
|
20
|
+
if (useSource) {
|
|
21
|
+
watch(useSource, newValue => {
|
|
29
22
|
if (newValue === false) {
|
|
30
23
|
// 改变为禁用状态 组件解锁
|
|
31
24
|
releaseLock(uid);
|
|
32
|
-
} else if (newValue === true &&
|
|
25
|
+
} else if (newValue === true && source() === true) {
|
|
33
26
|
// 改变为启用状态 并且popup处于开启状态 组件加锁
|
|
34
27
|
addLock(uid);
|
|
35
28
|
}
|
|
36
29
|
});
|
|
37
30
|
}
|
|
38
31
|
|
|
39
|
-
watch(
|
|
40
|
-
if (
|
|
32
|
+
watch(source, newValue => {
|
|
33
|
+
if (useSource && useSource() === false) {
|
|
41
34
|
return;
|
|
42
35
|
}
|
|
43
36
|
|
|
@@ -50,41 +43,41 @@ export function useLock(props, state, use) {
|
|
|
50
43
|
}
|
|
51
44
|
});
|
|
52
45
|
onBeforeMount(() => {
|
|
53
|
-
if (
|
|
46
|
+
if (useSource && useSource() === false) {
|
|
54
47
|
return;
|
|
55
48
|
}
|
|
56
49
|
|
|
57
|
-
if (
|
|
50
|
+
if (source() === true) {
|
|
58
51
|
// popup处于开启状态 组件挂载 组件加锁
|
|
59
52
|
addLock(uid);
|
|
60
53
|
}
|
|
61
54
|
});
|
|
62
55
|
onUnmounted(() => {
|
|
63
|
-
if (
|
|
56
|
+
if (useSource && useSource() === false) {
|
|
64
57
|
return;
|
|
65
58
|
}
|
|
66
59
|
|
|
67
|
-
if (
|
|
60
|
+
if (source() === true) {
|
|
68
61
|
// popup处于开启状态 组件卸载 组件解锁
|
|
69
62
|
releaseLock(uid);
|
|
70
63
|
}
|
|
71
64
|
});
|
|
72
65
|
onActivated(() => {
|
|
73
|
-
if (
|
|
66
|
+
if (useSource && useSource() === false) {
|
|
74
67
|
return;
|
|
75
68
|
}
|
|
76
69
|
|
|
77
|
-
if (
|
|
70
|
+
if (source() === true) {
|
|
78
71
|
// popup处于开启状态 组件处于keepalive前台 组件加锁
|
|
79
72
|
addLock(uid);
|
|
80
73
|
}
|
|
81
74
|
});
|
|
82
75
|
onDeactivated(() => {
|
|
83
|
-
if (
|
|
76
|
+
if (useSource && useSource() === false) {
|
|
84
77
|
return;
|
|
85
78
|
}
|
|
86
79
|
|
|
87
|
-
if (
|
|
80
|
+
if (source() === true) {
|
|
88
81
|
// popup处于开启状态 组件处于keepalive后台 组件解锁
|
|
89
82
|
releaseLock(uid);
|
|
90
83
|
}
|
package/es/counter/counter.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --counter-padding: 0 4px; --counter-font-color: #fff; --counter-background: var(--color-primary); --counter-input-width: 28px; --counter-input-margin: 0 4px; --counter-input-font-size: 14px; --counter-button-size: 28px; --counter-button-icon-size: 100%; --counter-disabled-color: var(--color-text-disabled); --input-error-color: var(--color-danger);}.var-counter { display: inline-flex; flex-direction: column; align-items: flex-start;}.var-counter__controller { display: flex; align-items: center; color: var(--counter-font-color); border-radius: var(--counter-button-size); padding: var(--counter-padding); background: var(--counter-background); transition: background-color 0.25s;}.var-counter__decrement-button[var-counter-cover] { width: var(--counter-button-size); height: var(--counter-button-size); font-size: var(--counter-button-icon-size); border-radius: 50%; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.var-counter__input { width: var(--counter-input-width); font-size: var(--counter-input-font-size); outline: none; border: none; background: transparent; padding: 0; text-align: center; color: var(--counter-font-color); margin: var(--counter-input-margin);}.var-counter__input[disabled] { background: transparent;}.var-counter__increment-button[var-counter-cover] { width: var(--counter-button-size); height: var(--counter-button-size); font-size: var(--counter-button-icon-size); border-radius: 50%; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.var-counter--disabled { background: var(--counter-disabled-color);}.var-counter--hidden { opacity: 0;}.var-counter--error { background: var(--color-danger);}
|
|
1
|
+
:root { --counter-padding: 0 4px; --counter-font-color: #fff; --counter-background: var(--color-primary); --counter-input-width: 28px; --counter-input-margin: 0 4px; --counter-input-font-size: 14px; --counter-button-size: 28px; --counter-button-icon-size: 100%; --counter-disabled-color: var(--color-text-disabled); --input-error-color: var(--color-danger);}.var-counter { display: inline-flex; flex-direction: column; align-items: flex-start;}.var-counter__controller { display: flex; align-items: center; color: var(--counter-font-color); border-radius: var(--counter-button-size); padding: var(--counter-padding); background: var(--counter-background); transition: background-color 0.25s;}.var-counter__decrement-button[var-counter-cover] { width: var(--counter-button-size); height: var(--counter-button-size); font-size: var(--counter-button-icon-size); border-radius: 50%; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-user-select: none; user-select: none;}.var-counter__input { width: var(--counter-input-width); font-size: var(--counter-input-font-size); outline: none; border: none; background: transparent; padding: 0; text-align: center; color: var(--counter-font-color); margin: var(--counter-input-margin);}.var-counter__input[disabled] { background: transparent;}.var-counter__increment-button[var-counter-cover] { width: var(--counter-button-size); height: var(--counter-button-size); font-size: var(--counter-button-icon-size); border-radius: 50%; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-user-select: none; user-select: none;}.var-counter--disabled { background: var(--counter-disabled-color);}.var-counter--hidden { opacity: 0;}.var-counter--error { background: var(--color-danger);}
|
package/es/counter/counter.less
CHANGED
|
@@ -44,6 +44,8 @@
|
|
|
44
44
|
border-radius: 50%;
|
|
45
45
|
cursor: pointer;
|
|
46
46
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
47
|
+
-webkit-user-select: none; // for safari
|
|
48
|
+
user-select: none;
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
&__input {
|
|
@@ -69,6 +71,8 @@
|
|
|
69
71
|
border-radius: 50%;
|
|
70
72
|
cursor: pointer;
|
|
71
73
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
74
|
+
-webkit-user-select: none; // for safari
|
|
75
|
+
user-select: none;
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
&--disabled {
|
package/es/input/Input.js
CHANGED
|
@@ -232,6 +232,7 @@ export default defineComponent({
|
|
|
232
232
|
var {
|
|
233
233
|
value
|
|
234
234
|
} = e.target;
|
|
235
|
+
value = withTrim(value);
|
|
235
236
|
call(props['onUpdate:modelValue'], value);
|
|
236
237
|
call(props.onInput, value, e);
|
|
237
238
|
validateWithTrigger('onInput');
|
|
@@ -241,7 +242,7 @@ export default defineComponent({
|
|
|
241
242
|
var {
|
|
242
243
|
value
|
|
243
244
|
} = e.target;
|
|
244
|
-
call(props.onChange, value, e);
|
|
245
|
+
call(props.onChange, withTrim(value), e);
|
|
245
246
|
validateWithTrigger('onChange');
|
|
246
247
|
};
|
|
247
248
|
|
|
@@ -274,7 +275,9 @@ export default defineComponent({
|
|
|
274
275
|
|
|
275
276
|
call(onClick, e);
|
|
276
277
|
validateWithTrigger('onClick');
|
|
277
|
-
};
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
var withTrim = value => props.modelModifiers.trim ? value.trim() : value; // expose
|
|
278
281
|
|
|
279
282
|
|
|
280
283
|
var reset = () => {
|
package/es/input/props.js
CHANGED
package/es/loading/Loading.js
CHANGED
|
@@ -28,7 +28,12 @@ export function render(_ctx, _cache) {
|
|
|
28
28
|
}, [_ctx.$slots.default ? (_openBlock(), _createElementBlock("div", {
|
|
29
29
|
key: 0,
|
|
30
30
|
class: _normalizeClass(_ctx.classes(_ctx.n('content'), [_ctx.loading, _ctx.n('content--active')]))
|
|
31
|
-
}, [_renderSlot(_ctx.$slots, "default")
|
|
31
|
+
}, [_renderSlot(_ctx.$slots, "default"), _ctx.loading ? (_openBlock(), _createElementBlock("div", {
|
|
32
|
+
key: 0,
|
|
33
|
+
class: _normalizeClass(_ctx.n('content-mask'))
|
|
34
|
+
}, null, 2
|
|
35
|
+
/* CLASS */
|
|
36
|
+
)) : _createCommentVNode("v-if", true)], 2
|
|
32
37
|
/* CLASS */
|
|
33
38
|
)) : _createCommentVNode("v-if", true), _ctx.isShow ? (_openBlock(), _createElementBlock("div", {
|
|
34
39
|
key: 1,
|
package/es/loading/loading.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --loading-opacity: 0.38; --loading-desc-margin: 8px 0 0;}.var-loading { position: relative;}.var-loading__content { transition: opacity 0.3s; opacity: 1;}.var-loading__content--active { opacity: var(--loading-opacity);
|
|
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; }}
|
package/es/loading/loading.less
CHANGED
|
@@ -23,12 +23,20 @@
|
|
|
23
23
|
position: relative;
|
|
24
24
|
|
|
25
25
|
&__content {
|
|
26
|
+
position: relative;
|
|
26
27
|
transition: opacity 0.3s;
|
|
27
28
|
opacity: 1;
|
|
28
29
|
|
|
29
30
|
&--active {
|
|
30
31
|
opacity: var(--loading-opacity);
|
|
31
|
-
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&-mask {
|
|
35
|
+
position: absolute;
|
|
36
|
+
left: 0;
|
|
37
|
+
right: 0;
|
|
38
|
+
top: 0;
|
|
39
|
+
bottom: 0;
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
|
|
@@ -108,10 +108,7 @@ export function render(_ctx, _cache) {
|
|
|
108
108
|
/* KEYED_FRAGMENT */
|
|
109
109
|
))]),
|
|
110
110
|
default: _withCtx(() => [_createElementVNode("div", {
|
|
111
|
-
class: _normalizeClass(_ctx.n('size--open')),
|
|
112
|
-
style: {
|
|
113
|
-
"display": "flex"
|
|
114
|
-
},
|
|
111
|
+
class: _normalizeClass(_ctx.classes(_ctx.n('size--open'), [_ctx.current <= 1 || _ctx.disabled, _ctx.n('size--open--disabled')])),
|
|
115
112
|
onClick: _cache[5] || (_cache[5] = function () {
|
|
116
113
|
return _ctx.showMenu && _ctx.showMenu(...arguments);
|
|
117
114
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --pagination-font-size: var(--font-size-md); --pagination-active-color: #fff; --pagination-active-bg-color: var(--color-primary); --pagination-hover-bg-color: #edf5ff; --pagination-total-margin: 0 12px; --pagination-total-line-height: 24px; --pagination-item-width: 32px; --pagination-item-height: 32px; --pagination-item-margin: 0 6px; --pagination-item-background: #fff; --pagination-item-border-radius: 4px; --pagination-list-bg-color: #fff; --pagination-list-active-bg-color: #edf5ff; --pagination-list-active-color: var(--color-primary); --pagination-input-width: 32px; --pagination-simple-padding: 0 0 2px 0; --pagination-disabled-color: var(--color-text-disabled); --pagination-bg-disabled-color: var(--color-disabled); --pagination-size-line-height: 24px;}.pagination-flex-nowrap { display: flex; white-space: nowrap; align-items: center;}.var-pagination { display: flex; align-items: center; list-style: none; margin: 0; font-size: var(--pagination-font-size); padding: 0;}.var-pagination__item { display: inline-flex; min-width: var(--pagination-item-width); align-items: center; justify-content: center; margin: var(--pagination-item-margin); height: var(--pagination-item-height); cursor: pointer; border-radius: var(--pagination-item-border-radius); outline: none; transition: all 0.25s; user-select: none; background: var(--pagination-item-background);}.var-pagination__item:hover { background-color: var(--pagination-hover-bg-color);}.var-pagination__item--active { color: var(--pagination-active-color); background-color: var(--pagination-active-bg-color) !important;}.var-pagination__item--disabled
|
|
1
|
+
:root { --pagination-font-size: var(--font-size-md); --pagination-active-color: #fff; --pagination-active-bg-color: var(--color-primary); --pagination-hover-bg-color: #edf5ff; --pagination-total-margin: 0 12px; --pagination-total-line-height: 24px; --pagination-item-width: 32px; --pagination-item-height: 32px; --pagination-item-margin: 0 6px; --pagination-item-background: #fff; --pagination-item-border-radius: 4px; --pagination-list-bg-color: #fff; --pagination-list-active-bg-color: #edf5ff; --pagination-list-active-color: var(--color-primary); --pagination-input-width: 32px; --pagination-simple-padding: 0 0 2px 0; --pagination-disabled-color: var(--color-text-disabled); --pagination-bg-disabled-color: var(--color-disabled); --pagination-size-line-height: 24px;}.pagination-flex-nowrap { display: flex; white-space: nowrap; align-items: center;}.var-pagination { display: flex; align-items: center; list-style: none; margin: 0; font-size: var(--pagination-font-size); padding: 0;}.var-pagination__item { display: inline-flex; min-width: var(--pagination-item-width); align-items: center; justify-content: center; margin: var(--pagination-item-margin); height: var(--pagination-item-height); cursor: pointer; border-radius: var(--pagination-item-border-radius); outline: none; transition: all 0.25s; user-select: none; background-color: var(--pagination-item-background);}.var-pagination__item:hover { background-color: var(--pagination-hover-bg-color);}.var-pagination__item--active { color: var(--pagination-active-color); background-color: var(--pagination-active-bg-color) !important;}.var-pagination__item--hide { display: none;}.var-pagination__item--disabled { cursor: default; color: var(--pagination-disabled-color); background-color: unset;}.var-pagination__item--disabled:hover { background-color: unset;}.var-pagination__item--disabled--hover:hover { background-color: inherit;}.var-pagination__item--disabled--active { background-color: var(--pagination-bg-disabled-color);}.var-pagination__item--disabled--active:hover { background-color: var(--pagination-bg-disabled-color);}.var-pagination__prev { margin-left: 0;}.var-pagination__total { display: flex; white-space: nowrap; align-items: center; line-height: var(--pagination-total-line-height); margin: var(--pagination-total-margin);}.var-pagination__size { display: flex; white-space: nowrap; align-items: center; line-height: var(--pagination-size-line-height); margin: var(--pagination-item-margin);}.var-pagination__size--open { display: flex; align-items: center; cursor: pointer;}.var-pagination__size--open--disabled { cursor: default;}.var-pagination__list { background-color: var(--pagination-list-bg-color); cursor: pointer; transition: all 0.25s;}.var-pagination__list:hover { color: var(--pagination-list-active-color); background-color: var(--pagination-hover-bg-color);}.var-pagination__list--active { background-color: var(--pagination-list-active-bg-color) !important; color: var(--pagination-list-active-color);}.var-pagination__quickly,.var-pagination__simple { display: flex; white-space: nowrap; align-items: center;}.var-pagination__quickly [var-pagination-cover],.var-pagination__simple [var-pagination-cover] { width: var(--pagination-input-width);}.var-pagination__quickly [var-pagination-cover] .var-input__wrap,.var-pagination__simple [var-pagination-cover] .var-input__wrap { padding: 0;}.var-pagination__quickly [var-pagination-cover] .var-input__input,.var-pagination__simple [var-pagination-cover] .var-input__input { height: auto; text-align: center;}.var-pagination__quickly { margin: var(--pagination-item-margin);}.var-pagination__quickly [var-pagination-cover] { margin-left: 6px;}.var-pagination__size--open-icon[var-pagination-cover] { font-size: inherit;}.var-pagination--simple-padding { padding: var(--pagination-simple-padding);}
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
outline: none;
|
|
68
68
|
transition: all 0.25s;
|
|
69
69
|
user-select: none;
|
|
70
|
-
background: var(--pagination-item-background);
|
|
70
|
+
background-color: var(--pagination-item-background);
|
|
71
71
|
|
|
72
72
|
&:hover {
|
|
73
73
|
background-color: var(--pagination-hover-bg-color);
|
|
@@ -78,26 +78,31 @@
|
|
|
78
78
|
background-color: var(--pagination-active-bg-color) !important;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
&--disabled--active {
|
|
82
|
-
background: var(--pagination-bg-disabled-color);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
81
|
&--hide {
|
|
86
82
|
display: none;
|
|
87
83
|
}
|
|
88
84
|
|
|
89
85
|
&--disabled {
|
|
90
|
-
cursor: default
|
|
86
|
+
cursor: default;
|
|
91
87
|
color: var(--pagination-disabled-color);
|
|
88
|
+
background-color: unset;
|
|
92
89
|
|
|
93
90
|
&:hover {
|
|
94
91
|
background-color: unset;
|
|
95
92
|
}
|
|
96
|
-
}
|
|
97
93
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
&--hover {
|
|
95
|
+
&:hover {
|
|
96
|
+
background-color: inherit;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
&--active {
|
|
101
|
+
background-color: var(--pagination-bg-disabled-color);
|
|
102
|
+
|
|
103
|
+
&:hover {
|
|
104
|
+
background-color: var(--pagination-bg-disabled-color);
|
|
105
|
+
}
|
|
101
106
|
}
|
|
102
107
|
}
|
|
103
108
|
}
|
|
@@ -123,6 +128,10 @@
|
|
|
123
128
|
display: flex;
|
|
124
129
|
align-items: center;
|
|
125
130
|
cursor: pointer;
|
|
131
|
+
|
|
132
|
+
&--disabled {
|
|
133
|
+
cursor: default;
|
|
134
|
+
}
|
|
126
135
|
}
|
|
127
136
|
}
|
|
128
137
|
|
package/es/picker/Picker.js
CHANGED
|
@@ -296,26 +296,33 @@ export default defineComponent({
|
|
|
296
296
|
scrollEl: null,
|
|
297
297
|
scrolling: false
|
|
298
298
|
};
|
|
299
|
-
scrollTo(scrollColumn, scrollColumn.index,
|
|
299
|
+
scrollTo(scrollColumn, scrollColumn.index, 0, true);
|
|
300
300
|
return scrollColumn;
|
|
301
301
|
});
|
|
302
302
|
};
|
|
303
303
|
|
|
304
304
|
var normalizeCascadeColumns = cascadeColumns => {
|
|
305
305
|
var scrollColumns = [];
|
|
306
|
-
createChildren(scrollColumns, cascadeColumns);
|
|
306
|
+
createChildren(scrollColumns, cascadeColumns, true);
|
|
307
307
|
return scrollColumns;
|
|
308
308
|
};
|
|
309
309
|
|
|
310
|
-
var createChildren = (scrollColumns, children)
|
|
310
|
+
var createChildren = function (scrollColumns, children, initial) {
|
|
311
|
+
if (initial === void 0) {
|
|
312
|
+
initial = false;
|
|
313
|
+
}
|
|
314
|
+
|
|
311
315
|
if (isArray(children) && children.length) {
|
|
316
|
+
var _props$cascadeInitial;
|
|
317
|
+
|
|
318
|
+
var index = initial ? (_props$cascadeInitial = props.cascadeInitialIndexes[scrollColumns.length]) != null ? _props$cascadeInitial : 0 : 0;
|
|
312
319
|
var scrollColumn = {
|
|
313
320
|
id: sid++,
|
|
314
321
|
prevY: undefined,
|
|
315
322
|
momentumPrevY: undefined,
|
|
316
323
|
touching: false,
|
|
317
324
|
translate: center.value,
|
|
318
|
-
index
|
|
325
|
+
index,
|
|
319
326
|
duration: 0,
|
|
320
327
|
momentumTime: 0,
|
|
321
328
|
column: {
|
|
@@ -326,7 +333,8 @@ export default defineComponent({
|
|
|
326
333
|
scrolling: false
|
|
327
334
|
};
|
|
328
335
|
scrollColumns.push(scrollColumn);
|
|
329
|
-
|
|
336
|
+
scrollTo(scrollColumn, scrollColumn.index, 0, true);
|
|
337
|
+
createChildren(scrollColumns, scrollColumn.columns[scrollColumn.index].children, initial);
|
|
330
338
|
}
|
|
331
339
|
};
|
|
332
340
|
|
package/es/picker/picker.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --picker-background: #fff; --picker-toolbar-height: 44px; --picker-confirm-button-text-color: var(--color-primary); --picker-cancel-button-text-color: #888; --picker-picked-border: 1px solid rgba(0, 0, 0, 0.12); --picker-title-font-size: 16px; --picker-toolbar-padding: 0 4px; --picker-mask-background-image: linear-gradient(180deg, hsla(0, 0%, 100%, 0.9), hsla(0, 0%, 100%, 0.4)), linear-gradient(0deg, hsla(0, 0%, 100%, 0.9), hsla(0, 0%, 100%, 0.4));}.var-picker { width: 100%; background: var(--picker-background); user-select: none; transition: 0.25s background-color;}.var-picker__popup[var-picker-cover] { width: 100%;}.var-picker__columns { position: relative; display: flex; width: 100%; cursor: grab;}.var-picker__column { flex: 1; overflow: hidden;}.var-picker__text { overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}.var-picker__scroller { width: 100%; transition-timing-function: cubic-bezier(0.23, 1, 0.68, 1);}.var-picker__option { display: flex; justify-content: center; align-items: center; width: 100%; padding: 0 4px;}.var-picker__picked { position: absolute; z-index: 2; pointer-events: none; width: 100%; left: 0; border-top: var(--picker-picked-border); border-bottom: var(--picker-picked-border); transition: 0.25s border;}.var-picker__mask { position: absolute; pointer-events: none; top: 0; left: 0; width: 100%; height: 100%;}.var-picker__toolbar { display: flex; justify-content: space-between; align-items: center; width: 100%; height: var(--picker-toolbar-height); padding: var(--picker-toolbar-padding);}.var-picker__confirm-button[var-picker-cover] { color: var(--picker-confirm-button-text-color);}.var-picker__cancel-button[var-picker-cover] { color: var(--picker-cancel-button-text-color);}.var-picker__title { font-size: var(--picker-title-font-size);}
|
|
1
|
+
:root { --picker-background: #fff; --picker-toolbar-height: 44px; --picker-confirm-button-text-color: var(--color-primary); --picker-cancel-button-text-color: #888; --picker-picked-border: 1px solid rgba(0, 0, 0, 0.12); --picker-title-font-size: 16px; --picker-toolbar-padding: 0 4px; --picker-mask-background-image: linear-gradient(180deg, hsla(0, 0%, 100%, 0.9), hsla(0, 0%, 100%, 0.4)), linear-gradient(0deg, hsla(0, 0%, 100%, 0.9), hsla(0, 0%, 100%, 0.4));}.var-picker { width: 100%; background: var(--picker-background); user-select: none; transition: 0.25s background-color;}.var-picker__popup[var-picker-cover] { width: 100%;}.var-picker__columns { position: relative; display: flex; width: 100%; cursor: grab;}.var-picker__column { flex: 1; overflow: hidden;}.var-picker__text { overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}.var-picker__scroller { width: 100%; transition-timing-function: cubic-bezier(0.23, 1, 0.68, 1);}.var-picker__option { display: flex; justify-content: center; align-items: center; width: 100%; padding: 0 4px;}.var-picker__picked { position: absolute; z-index: 2; pointer-events: none; width: 100%; left: 0; border-top: var(--picker-picked-border); border-bottom: var(--picker-picked-border); transition: 0.25s border;}.var-picker__mask { position: absolute; pointer-events: none; top: 0; left: 0; width: 100%; height: 100%; background-image: var(--picker-mask-background-image); background-repeat: no-repeat; background-position: top, bottom;}.var-picker__toolbar { display: flex; justify-content: space-between; align-items: center; width: 100%; height: var(--picker-toolbar-height); padding: var(--picker-toolbar-padding);}.var-picker__confirm-button[var-picker-cover] { color: var(--picker-confirm-button-text-color);}.var-picker__cancel-button[var-picker-cover] { color: var(--picker-cancel-button-text-color);}.var-picker__title { font-size: var(--picker-title-font-size);}
|
package/es/picker/picker.less
CHANGED
package/es/picker/props.js
CHANGED
package/es/popup/Popup.js
CHANGED
|
@@ -51,7 +51,7 @@ export default defineComponent({
|
|
|
51
51
|
(_props$onUpdateShow = props['onUpdate:show']) == null ? void 0 : _props$onUpdateShow.call(props, false);
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
useLock(props
|
|
54
|
+
useLock(() => props.show, () => props.lockScroll);
|
|
55
55
|
watch(() => props.show, newValue => {
|
|
56
56
|
var {
|
|
57
57
|
onOpen,
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
2
|
+
|
|
3
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
4
|
+
|
|
1
5
|
import VarIcon from '../icon';
|
|
2
6
|
import { defineComponent, ref, computed, watch, onMounted } from 'vue';
|
|
3
7
|
import { getParentScroller, getScrollTop } from '../utils/elements';
|
|
@@ -10,7 +14,7 @@ var {
|
|
|
10
14
|
} = createNamespace('pull-refresh');
|
|
11
15
|
var MAX_DISTANCE = 100;
|
|
12
16
|
var CONTROL_POSITION = -50;
|
|
13
|
-
var
|
|
17
|
+
var ICON_TRANSITION = 150;
|
|
14
18
|
import { resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, createVNode as _createVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
|
|
15
19
|
export function render(_ctx, _cache) {
|
|
16
20
|
var _component_var_icon = _resolveComponent("var-icon");
|
|
@@ -35,12 +39,12 @@ export function render(_ctx, _cache) {
|
|
|
35
39
|
style: _normalizeStyle(_ctx.controlStyle)
|
|
36
40
|
}, [_createVNode(_component_var_icon, {
|
|
37
41
|
name: _ctx.iconName,
|
|
38
|
-
transition:
|
|
39
|
-
class: _normalizeClass(_ctx.classes(_ctx.n('icon'), [_ctx.refreshStatus === 'loading', _ctx.n('animation')])),
|
|
42
|
+
transition: _ctx.ICON_TRANSITION,
|
|
43
|
+
class: _normalizeClass(_ctx.classes(_ctx.n('icon'), [_ctx.refreshStatus === 'loading' && _ctx.iconHasChanged, _ctx.n('animation')])),
|
|
40
44
|
"var-pull-refresh-cover": ""
|
|
41
45
|
}, null, 8
|
|
42
46
|
/* PROPS */
|
|
43
|
-
, ["name", "class"])], 6
|
|
47
|
+
, ["name", "transition", "class"])], 6
|
|
44
48
|
/* CLASS, STYLE */
|
|
45
49
|
), _renderSlot(_ctx.$slots, "default")], 34
|
|
46
50
|
/* CLASS, HYDRATE_EVENTS */
|
|
@@ -55,12 +59,16 @@ export default defineComponent({
|
|
|
55
59
|
props,
|
|
56
60
|
|
|
57
61
|
setup(props) {
|
|
62
|
+
var scroller;
|
|
63
|
+
var changing;
|
|
58
64
|
var freshNode = ref(null);
|
|
59
65
|
var startPosition = ref(0);
|
|
60
66
|
var distance = ref(CONTROL_POSITION);
|
|
61
67
|
var iconName = ref('arrow-down');
|
|
62
68
|
var refreshStatus = ref('default');
|
|
63
|
-
var isEnd = ref(false);
|
|
69
|
+
var isEnd = ref(false); // https://github.com/varletjs/varlet/issues/509
|
|
70
|
+
|
|
71
|
+
var iconHasChanged = ref(true);
|
|
64
72
|
var isTouchable = computed(() => refreshStatus.value !== 'loading' && refreshStatus.value !== 'success' && !props.disabled);
|
|
65
73
|
var controlStyle = computed(() => ({
|
|
66
74
|
transform: "translate3d(0px, " + distance.value + "px, 0px) translate(-50%, 0)",
|
|
@@ -70,6 +78,15 @@ export default defineComponent({
|
|
|
70
78
|
}));
|
|
71
79
|
var isSuccess = computed(() => refreshStatus.value === 'success');
|
|
72
80
|
|
|
81
|
+
var changeIcon = () => {
|
|
82
|
+
return new Promise(resolve => {
|
|
83
|
+
window.setTimeout(() => {
|
|
84
|
+
iconHasChanged.value = true;
|
|
85
|
+
resolve();
|
|
86
|
+
}, ICON_TRANSITION);
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
|
|
73
90
|
var touchStart = event => {
|
|
74
91
|
if (!isTouchable.value) return;
|
|
75
92
|
refreshStatus.value = 'pulling';
|
|
@@ -82,30 +99,44 @@ export default defineComponent({
|
|
|
82
99
|
if (scrollTop === 0 && distance.value > CONTROL_POSITION) event.cancelable && event.preventDefault();
|
|
83
100
|
var moveDistance = (event.touches[0].clientY - startPosition.value) / 2 + CONTROL_POSITION;
|
|
84
101
|
distance.value = moveDistance >= MAX_DISTANCE ? MAX_DISTANCE : moveDistance;
|
|
85
|
-
iconName.value = distance.value >= MAX_DISTANCE * 0.2 ? 'refresh' : 'arrow-down';
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
var touchEnd = () => {
|
|
89
|
-
if (!isTouchable.value) return;
|
|
90
|
-
isEnd.value = true;
|
|
91
102
|
|
|
92
103
|
if (distance.value >= MAX_DISTANCE * 0.2) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
distance.value = MAX_DISTANCE * 0.3;
|
|
97
|
-
(_props$onUpdateModel = props['onUpdate:modelValue']) == null ? void 0 : _props$onUpdateModel.call(props, true);
|
|
98
|
-
props.onRefresh == null ? void 0 : props.onRefresh();
|
|
104
|
+
iconHasChanged.value = false;
|
|
105
|
+
iconName.value = 'refresh';
|
|
106
|
+
changing = changeIcon();
|
|
99
107
|
} else {
|
|
100
|
-
refreshStatus.value = 'loosing';
|
|
101
108
|
iconName.value = 'arrow-down';
|
|
102
|
-
distance.value = CONTROL_POSITION;
|
|
103
|
-
setTimeout(() => {
|
|
104
|
-
isEnd.value = false;
|
|
105
|
-
}, toNumber(props.animationDuration));
|
|
106
109
|
}
|
|
107
110
|
};
|
|
108
111
|
|
|
112
|
+
var touchEnd = /*#__PURE__*/function () {
|
|
113
|
+
var _ref = _asyncToGenerator(function* () {
|
|
114
|
+
if (!isTouchable.value) return;
|
|
115
|
+
isEnd.value = true;
|
|
116
|
+
|
|
117
|
+
if (distance.value >= MAX_DISTANCE * 0.2) {
|
|
118
|
+
var _props$onUpdateModel;
|
|
119
|
+
|
|
120
|
+
yield changing;
|
|
121
|
+
refreshStatus.value = 'loading';
|
|
122
|
+
distance.value = MAX_DISTANCE * 0.3;
|
|
123
|
+
(_props$onUpdateModel = props['onUpdate:modelValue']) == null ? void 0 : _props$onUpdateModel.call(props, true);
|
|
124
|
+
props.onRefresh == null ? void 0 : props.onRefresh();
|
|
125
|
+
} else {
|
|
126
|
+
refreshStatus.value = 'loosing';
|
|
127
|
+
iconName.value = 'arrow-down';
|
|
128
|
+
distance.value = CONTROL_POSITION;
|
|
129
|
+
setTimeout(() => {
|
|
130
|
+
isEnd.value = false;
|
|
131
|
+
}, toNumber(props.animationDuration));
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
return function touchEnd() {
|
|
136
|
+
return _ref.apply(this, arguments);
|
|
137
|
+
};
|
|
138
|
+
}();
|
|
139
|
+
|
|
109
140
|
var reset = () => {
|
|
110
141
|
setTimeout(() => {
|
|
111
142
|
refreshStatus.value = 'default';
|
|
@@ -131,6 +162,8 @@ export default defineComponent({
|
|
|
131
162
|
return {
|
|
132
163
|
n,
|
|
133
164
|
classes,
|
|
165
|
+
iconHasChanged,
|
|
166
|
+
ICON_TRANSITION,
|
|
134
167
|
refreshStatus,
|
|
135
168
|
freshNode,
|
|
136
169
|
touchStart,
|
package/es/snackbar/core.js
CHANGED
|
@@ -75,7 +75,7 @@ export default defineComponent({
|
|
|
75
75
|
var {
|
|
76
76
|
zIndex
|
|
77
77
|
} = useZIndex(() => props.show, 1);
|
|
78
|
-
useLock(props
|
|
78
|
+
useLock(() => props.show, () => props.lockScroll);
|
|
79
79
|
var isForbidClick = computed(() => props.type === 'loading' || props.forbidClick);
|
|
80
80
|
var iconName = computed(() => {
|
|
81
81
|
if (!props.type) return '';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import '../../styles/common.css'
|
|
2
|
+
import '../SnackbarSfc.css'
|
|
2
3
|
import '../../styles/elevation.css'
|
|
3
4
|
import '../../loading/loading.css'
|
|
4
5
|
import '../../button/button.css'
|
|
5
6
|
import '../../icon/icon.css'
|
|
6
7
|
import '../snackbar.css'
|
|
7
8
|
import '../coreSfc.css'
|
|
8
|
-
import '../SnackbarSfc.css'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import '../../styles/common.less'
|
|
2
|
+
import '../SnackbarSfc.less'
|
|
2
3
|
import '../../styles/elevation.less'
|
|
3
4
|
import '../../loading/loading.less'
|
|
4
5
|
import '../../button/button.less'
|
|
5
6
|
import '../../icon/icon.less'
|
|
6
7
|
import '../snackbar.less'
|
|
7
8
|
import '../coreSfc.less'
|
|
8
|
-
import '../SnackbarSfc.less'
|