@varlet/ui 1.27.4 → 1.27.7-alpha.1650880107793
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 +3 -3
- package/README.md +3 -3
- package/es/context/lock.js +14 -21
- package/es/counter/counter.css +1 -1
- package/es/counter/counter.less +4 -0
- 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/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/style.css +1 -1
- package/es/utils/jest.js +5 -2
- package/es/varlet.esm.js +186 -125
- 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/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/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/style.css +1 -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
|
@@ -69,11 +69,11 @@
|
|
|
69
69
|
},
|
|
70
70
|
"var-back-top/bottom": {
|
|
71
71
|
"type": "string | number",
|
|
72
|
-
"description": "`BackTop`
|
|
72
|
+
"description": "`BackTop` 距离页面底部的距离 默认值:40"
|
|
73
73
|
},
|
|
74
74
|
"var-back-top/right": {
|
|
75
75
|
"type": "string | number",
|
|
76
|
-
"description": "`BackTop`
|
|
76
|
+
"description": "`BackTop` 距离页面右侧的距离 默认值:40"
|
|
77
77
|
},
|
|
78
78
|
"var-back-top/duration": {
|
|
79
79
|
"type": "number",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
},
|
|
98
98
|
"var-badge/position": {
|
|
99
99
|
"type": "string",
|
|
100
|
-
"description": "徽标标签中有其他标签时定义徽标在其他标签上的位置,可选值 `right-top` `
|
|
100
|
+
"description": "徽标标签中有其他标签时定义徽标在其他标签上的位置,可选值 `right-top` `right-bottom` `left-top` `left-bottom` 默认值:right-top"
|
|
101
101
|
},
|
|
102
102
|
"var-badge/color": {
|
|
103
103
|
"type": "string",
|
|
@@ -945,7 +945,7 @@
|
|
|
945
945
|
},
|
|
946
946
|
"var-loading/radius": {
|
|
947
947
|
"type": "string | number",
|
|
948
|
-
"description": "loading 的类型为 `circle`
|
|
948
|
+
"description": "loading 的类型为 `circle` 时,可设置其半径大小 默认值:-"
|
|
949
949
|
},
|
|
950
950
|
"var-menu/v-model:show": {
|
|
951
951
|
"type": "string",
|
|
@@ -1035,6 +1035,10 @@
|
|
|
1035
1035
|
"type": "boolean",
|
|
1036
1036
|
"description": "是否开启级联模式 默认值:true"
|
|
1037
1037
|
},
|
|
1038
|
+
"var-picker/cascade-initial-indexes": {
|
|
1039
|
+
"type": "number[]",
|
|
1040
|
+
"description": "级联模式的初始化索引列表 默认值:-"
|
|
1041
|
+
},
|
|
1038
1042
|
"var-picker/option-height": {
|
|
1039
1043
|
"type": "string | number",
|
|
1040
1044
|
"description": "选项的高度(px rem) 默认值:44"
|
package/highlight/tags.json
CHANGED
package/highlight/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
3
|
"framework": "vue",
|
|
4
|
-
"version": "1.27.
|
|
4
|
+
"version": "1.27.6",
|
|
5
5
|
"name": "VARLET",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
"name": "bottom",
|
|
228
|
-
"description": "`BackTop`
|
|
228
|
+
"description": "`BackTop` 距离页面底部的距离",
|
|
229
229
|
"default": "40",
|
|
230
230
|
"value": {
|
|
231
231
|
"type": "string | number",
|
|
@@ -234,7 +234,7 @@
|
|
|
234
234
|
},
|
|
235
235
|
{
|
|
236
236
|
"name": "right",
|
|
237
|
-
"description": "`BackTop`
|
|
237
|
+
"description": "`BackTop` 距离页面右侧的距离",
|
|
238
238
|
"default": "40",
|
|
239
239
|
"value": {
|
|
240
240
|
"type": "string | number",
|
|
@@ -305,7 +305,7 @@
|
|
|
305
305
|
},
|
|
306
306
|
{
|
|
307
307
|
"name": "position",
|
|
308
|
-
"description": "徽标标签中有其他标签时定义徽标在其他标签上的位置,可选值 `right-top` `
|
|
308
|
+
"description": "徽标标签中有其他标签时定义徽标在其他标签上的位置,可选值 `right-top` `right-bottom` `left-top` `left-bottom`",
|
|
309
309
|
"default": "right-top",
|
|
310
310
|
"value": {
|
|
311
311
|
"type": "string",
|
|
@@ -2821,7 +2821,7 @@
|
|
|
2821
2821
|
},
|
|
2822
2822
|
{
|
|
2823
2823
|
"name": "radius",
|
|
2824
|
-
"description": "loading 的类型为 `circle`
|
|
2824
|
+
"description": "loading 的类型为 `circle` 时,可设置其半径大小",
|
|
2825
2825
|
"default": "-",
|
|
2826
2826
|
"value": {
|
|
2827
2827
|
"type": "string | number",
|
|
@@ -3114,6 +3114,15 @@
|
|
|
3114
3114
|
"kind": "expression"
|
|
3115
3115
|
}
|
|
3116
3116
|
},
|
|
3117
|
+
{
|
|
3118
|
+
"name": "cascade-initial-indexes",
|
|
3119
|
+
"description": "级联模式的初始化索引列表",
|
|
3120
|
+
"default": "-",
|
|
3121
|
+
"value": {
|
|
3122
|
+
"type": "number[]",
|
|
3123
|
+
"kind": "expression"
|
|
3124
|
+
}
|
|
3125
|
+
},
|
|
3117
3126
|
{
|
|
3118
3127
|
"name": "option-height",
|
|
3119
3128
|
"description": "选项的高度(px rem)",
|
|
@@ -4155,7 +4164,7 @@
|
|
|
4155
4164
|
"slots": [
|
|
4156
4165
|
{
|
|
4157
4166
|
"name": "default",
|
|
4158
|
-
"description": "
|
|
4167
|
+
"description": "非加载状态下的内容"
|
|
4159
4168
|
}
|
|
4160
4169
|
]
|
|
4161
4170
|
},
|
package/lib/context/lock.js
CHANGED
|
@@ -26,33 +26,26 @@ function releaseLock(uid) {
|
|
|
26
26
|
delete _.default.locks[uid];
|
|
27
27
|
resolveLock();
|
|
28
28
|
}
|
|
29
|
-
/**
|
|
30
|
-
* 组件锁操作
|
|
31
|
-
* @param props 组件props
|
|
32
|
-
* @param state 组件props中控制组件加锁的开关对应的key值
|
|
33
|
-
* @param use 组件props中控制组件加锁的开关是否可用对应的key值
|
|
34
|
-
*/
|
|
35
29
|
|
|
36
|
-
|
|
37
|
-
function useLock(props, state, use) {
|
|
30
|
+
function useLock(source, useSource) {
|
|
38
31
|
var {
|
|
39
32
|
uid
|
|
40
33
|
} = (0, _vue.getCurrentInstance)();
|
|
41
34
|
|
|
42
|
-
if (
|
|
43
|
-
(0, _vue.watch)(
|
|
35
|
+
if (useSource) {
|
|
36
|
+
(0, _vue.watch)(useSource, newValue => {
|
|
44
37
|
if (newValue === false) {
|
|
45
38
|
// 改变为禁用状态 组件解锁
|
|
46
39
|
releaseLock(uid);
|
|
47
|
-
} else if (newValue === true &&
|
|
40
|
+
} else if (newValue === true && source() === true) {
|
|
48
41
|
// 改变为启用状态 并且popup处于开启状态 组件加锁
|
|
49
42
|
addLock(uid);
|
|
50
43
|
}
|
|
51
44
|
});
|
|
52
45
|
}
|
|
53
46
|
|
|
54
|
-
(0, _vue.watch)(
|
|
55
|
-
if (
|
|
47
|
+
(0, _vue.watch)(source, newValue => {
|
|
48
|
+
if (useSource && useSource() === false) {
|
|
56
49
|
return;
|
|
57
50
|
}
|
|
58
51
|
|
|
@@ -65,41 +58,41 @@ function useLock(props, state, use) {
|
|
|
65
58
|
}
|
|
66
59
|
});
|
|
67
60
|
(0, _vue.onBeforeMount)(() => {
|
|
68
|
-
if (
|
|
61
|
+
if (useSource && useSource() === false) {
|
|
69
62
|
return;
|
|
70
63
|
}
|
|
71
64
|
|
|
72
|
-
if (
|
|
65
|
+
if (source() === true) {
|
|
73
66
|
// popup处于开启状态 组件挂载 组件加锁
|
|
74
67
|
addLock(uid);
|
|
75
68
|
}
|
|
76
69
|
});
|
|
77
70
|
(0, _vue.onUnmounted)(() => {
|
|
78
|
-
if (
|
|
71
|
+
if (useSource && useSource() === false) {
|
|
79
72
|
return;
|
|
80
73
|
}
|
|
81
74
|
|
|
82
|
-
if (
|
|
75
|
+
if (source() === true) {
|
|
83
76
|
// popup处于开启状态 组件卸载 组件解锁
|
|
84
77
|
releaseLock(uid);
|
|
85
78
|
}
|
|
86
79
|
});
|
|
87
80
|
(0, _vue.onActivated)(() => {
|
|
88
|
-
if (
|
|
81
|
+
if (useSource && useSource() === false) {
|
|
89
82
|
return;
|
|
90
83
|
}
|
|
91
84
|
|
|
92
|
-
if (
|
|
85
|
+
if (source() === true) {
|
|
93
86
|
// popup处于开启状态 组件处于keepalive前台 组件加锁
|
|
94
87
|
addLock(uid);
|
|
95
88
|
}
|
|
96
89
|
});
|
|
97
90
|
(0, _vue.onDeactivated)(() => {
|
|
98
|
-
if (
|
|
91
|
+
if (useSource && useSource() === false) {
|
|
99
92
|
return;
|
|
100
93
|
}
|
|
101
94
|
|
|
102
|
-
if (
|
|
95
|
+
if (source() === true) {
|
|
103
96
|
// popup处于开启状态 组件处于keepalive后台 组件解锁
|
|
104
97
|
releaseLock(uid);
|
|
105
98
|
}
|
package/lib/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/lib/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 {
|
|
@@ -126,10 +126,7 @@ function render(_ctx, _cache) {
|
|
|
126
126
|
/* KEYED_FRAGMENT */
|
|
127
127
|
))]),
|
|
128
128
|
default: (0, _vue.withCtx)(() => [(0, _vue.createElementVNode)("div", {
|
|
129
|
-
class: (0, _vue.normalizeClass)(_ctx.n('size--open')),
|
|
130
|
-
style: {
|
|
131
|
-
"display": "flex"
|
|
132
|
-
},
|
|
129
|
+
class: (0, _vue.normalizeClass)(_ctx.classes(_ctx.n('size--open'), [_ctx.current <= 1 || _ctx.disabled, _ctx.n('size--open--disabled')])),
|
|
133
130
|
onClick: _cache[5] || (_cache[5] = function () {
|
|
134
131
|
return _ctx.showMenu && _ctx.showMenu(...arguments);
|
|
135
132
|
})
|
|
@@ -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/lib/picker/Picker.js
CHANGED
|
@@ -313,26 +313,33 @@ var _default = (0, _vue.defineComponent)({
|
|
|
313
313
|
scrollEl: null,
|
|
314
314
|
scrolling: false
|
|
315
315
|
};
|
|
316
|
-
scrollTo(scrollColumn, scrollColumn.index,
|
|
316
|
+
scrollTo(scrollColumn, scrollColumn.index, 0, true);
|
|
317
317
|
return scrollColumn;
|
|
318
318
|
});
|
|
319
319
|
};
|
|
320
320
|
|
|
321
321
|
var normalizeCascadeColumns = cascadeColumns => {
|
|
322
322
|
var scrollColumns = [];
|
|
323
|
-
createChildren(scrollColumns, cascadeColumns);
|
|
323
|
+
createChildren(scrollColumns, cascadeColumns, true);
|
|
324
324
|
return scrollColumns;
|
|
325
325
|
};
|
|
326
326
|
|
|
327
|
-
var createChildren = (scrollColumns, children)
|
|
327
|
+
var createChildren = function (scrollColumns, children, initial) {
|
|
328
|
+
if (initial === void 0) {
|
|
329
|
+
initial = false;
|
|
330
|
+
}
|
|
331
|
+
|
|
328
332
|
if ((0, _shared.isArray)(children) && children.length) {
|
|
333
|
+
var _props$cascadeInitial;
|
|
334
|
+
|
|
335
|
+
var index = initial ? (_props$cascadeInitial = props.cascadeInitialIndexes[scrollColumns.length]) != null ? _props$cascadeInitial : 0 : 0;
|
|
329
336
|
var scrollColumn = {
|
|
330
337
|
id: sid++,
|
|
331
338
|
prevY: undefined,
|
|
332
339
|
momentumPrevY: undefined,
|
|
333
340
|
touching: false,
|
|
334
341
|
translate: center.value,
|
|
335
|
-
index
|
|
342
|
+
index,
|
|
336
343
|
duration: 0,
|
|
337
344
|
momentumTime: 0,
|
|
338
345
|
column: {
|
|
@@ -343,7 +350,8 @@ var _default = (0, _vue.defineComponent)({
|
|
|
343
350
|
scrolling: false
|
|
344
351
|
};
|
|
345
352
|
scrollColumns.push(scrollColumn);
|
|
346
|
-
|
|
353
|
+
scrollTo(scrollColumn, scrollColumn.index, 0, true);
|
|
354
|
+
createChildren(scrollColumns, scrollColumn.columns[scrollColumn.index].children, initial);
|
|
347
355
|
}
|
|
348
356
|
};
|
|
349
357
|
|
package/lib/picker/props.js
CHANGED
package/lib/popup/Popup.js
CHANGED
|
@@ -61,7 +61,7 @@ var _default = (0, _vue.defineComponent)({
|
|
|
61
61
|
(_props$onUpdateShow = props['onUpdate:show']) == null ? void 0 : _props$onUpdateShow.call(props, false);
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
(0, _lock.useLock)(props
|
|
64
|
+
(0, _lock.useLock)(() => props.show, () => props.lockScroll);
|
|
65
65
|
(0, _vue.watch)(() => props.show, newValue => {
|
|
66
66
|
var {
|
|
67
67
|
onOpen,
|
|
@@ -18,13 +18,17 @@ var _components = require("../utils/components");
|
|
|
18
18
|
|
|
19
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
20
|
|
|
21
|
+
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); } }
|
|
22
|
+
|
|
23
|
+
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); }); }; }
|
|
24
|
+
|
|
21
25
|
var {
|
|
22
26
|
n,
|
|
23
27
|
classes
|
|
24
28
|
} = (0, _components.createNamespace)('pull-refresh');
|
|
25
29
|
var MAX_DISTANCE = 100;
|
|
26
30
|
var CONTROL_POSITION = -50;
|
|
27
|
-
var
|
|
31
|
+
var ICON_TRANSITION = 150;
|
|
28
32
|
|
|
29
33
|
function render(_ctx, _cache) {
|
|
30
34
|
var _component_var_icon = (0, _vue.resolveComponent)("var-icon");
|
|
@@ -49,12 +53,12 @@ function render(_ctx, _cache) {
|
|
|
49
53
|
style: (0, _vue.normalizeStyle)(_ctx.controlStyle)
|
|
50
54
|
}, [(0, _vue.createVNode)(_component_var_icon, {
|
|
51
55
|
name: _ctx.iconName,
|
|
52
|
-
transition:
|
|
53
|
-
class: (0, _vue.normalizeClass)(_ctx.classes(_ctx.n('icon'), [_ctx.refreshStatus === 'loading', _ctx.n('animation')])),
|
|
56
|
+
transition: _ctx.ICON_TRANSITION,
|
|
57
|
+
class: (0, _vue.normalizeClass)(_ctx.classes(_ctx.n('icon'), [_ctx.refreshStatus === 'loading' && _ctx.iconHasChanged, _ctx.n('animation')])),
|
|
54
58
|
"var-pull-refresh-cover": ""
|
|
55
59
|
}, null, 8
|
|
56
60
|
/* PROPS */
|
|
57
|
-
, ["name", "class"])], 6
|
|
61
|
+
, ["name", "transition", "class"])], 6
|
|
58
62
|
/* CLASS, STYLE */
|
|
59
63
|
), (0, _vue.renderSlot)(_ctx.$slots, "default")], 34
|
|
60
64
|
/* CLASS, HYDRATE_EVENTS */
|
|
@@ -70,12 +74,16 @@ var _default = (0, _vue.defineComponent)({
|
|
|
70
74
|
props: _props.props,
|
|
71
75
|
|
|
72
76
|
setup(props) {
|
|
77
|
+
var scroller;
|
|
78
|
+
var changing;
|
|
73
79
|
var freshNode = (0, _vue.ref)(null);
|
|
74
80
|
var startPosition = (0, _vue.ref)(0);
|
|
75
81
|
var distance = (0, _vue.ref)(CONTROL_POSITION);
|
|
76
82
|
var iconName = (0, _vue.ref)('arrow-down');
|
|
77
83
|
var refreshStatus = (0, _vue.ref)('default');
|
|
78
|
-
var isEnd = (0, _vue.ref)(false);
|
|
84
|
+
var isEnd = (0, _vue.ref)(false); // https://github.com/varletjs/varlet/issues/509
|
|
85
|
+
|
|
86
|
+
var iconHasChanged = (0, _vue.ref)(true);
|
|
79
87
|
var isTouchable = (0, _vue.computed)(() => refreshStatus.value !== 'loading' && refreshStatus.value !== 'success' && !props.disabled);
|
|
80
88
|
var controlStyle = (0, _vue.computed)(() => ({
|
|
81
89
|
transform: "translate3d(0px, " + distance.value + "px, 0px) translate(-50%, 0)",
|
|
@@ -85,6 +93,15 @@ var _default = (0, _vue.defineComponent)({
|
|
|
85
93
|
}));
|
|
86
94
|
var isSuccess = (0, _vue.computed)(() => refreshStatus.value === 'success');
|
|
87
95
|
|
|
96
|
+
var changeIcon = () => {
|
|
97
|
+
return new Promise(resolve => {
|
|
98
|
+
window.setTimeout(() => {
|
|
99
|
+
iconHasChanged.value = true;
|
|
100
|
+
resolve();
|
|
101
|
+
}, ICON_TRANSITION);
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
|
|
88
105
|
var touchStart = event => {
|
|
89
106
|
if (!isTouchable.value) return;
|
|
90
107
|
refreshStatus.value = 'pulling';
|
|
@@ -97,30 +114,44 @@ var _default = (0, _vue.defineComponent)({
|
|
|
97
114
|
if (scrollTop === 0 && distance.value > CONTROL_POSITION) event.cancelable && event.preventDefault();
|
|
98
115
|
var moveDistance = (event.touches[0].clientY - startPosition.value) / 2 + CONTROL_POSITION;
|
|
99
116
|
distance.value = moveDistance >= MAX_DISTANCE ? MAX_DISTANCE : moveDistance;
|
|
100
|
-
iconName.value = distance.value >= MAX_DISTANCE * 0.2 ? 'refresh' : 'arrow-down';
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
var touchEnd = () => {
|
|
104
|
-
if (!isTouchable.value) return;
|
|
105
|
-
isEnd.value = true;
|
|
106
117
|
|
|
107
118
|
if (distance.value >= MAX_DISTANCE * 0.2) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
distance.value = MAX_DISTANCE * 0.3;
|
|
112
|
-
(_props$onUpdateModel = props['onUpdate:modelValue']) == null ? void 0 : _props$onUpdateModel.call(props, true);
|
|
113
|
-
props.onRefresh == null ? void 0 : props.onRefresh();
|
|
119
|
+
iconHasChanged.value = false;
|
|
120
|
+
iconName.value = 'refresh';
|
|
121
|
+
changing = changeIcon();
|
|
114
122
|
} else {
|
|
115
|
-
refreshStatus.value = 'loosing';
|
|
116
123
|
iconName.value = 'arrow-down';
|
|
117
|
-
distance.value = CONTROL_POSITION;
|
|
118
|
-
setTimeout(() => {
|
|
119
|
-
isEnd.value = false;
|
|
120
|
-
}, (0, _shared.toNumber)(props.animationDuration));
|
|
121
124
|
}
|
|
122
125
|
};
|
|
123
126
|
|
|
127
|
+
var touchEnd = /*#__PURE__*/function () {
|
|
128
|
+
var _ref = _asyncToGenerator(function* () {
|
|
129
|
+
if (!isTouchable.value) return;
|
|
130
|
+
isEnd.value = true;
|
|
131
|
+
|
|
132
|
+
if (distance.value >= MAX_DISTANCE * 0.2) {
|
|
133
|
+
var _props$onUpdateModel;
|
|
134
|
+
|
|
135
|
+
yield changing;
|
|
136
|
+
refreshStatus.value = 'loading';
|
|
137
|
+
distance.value = MAX_DISTANCE * 0.3;
|
|
138
|
+
(_props$onUpdateModel = props['onUpdate:modelValue']) == null ? void 0 : _props$onUpdateModel.call(props, true);
|
|
139
|
+
props.onRefresh == null ? void 0 : props.onRefresh();
|
|
140
|
+
} else {
|
|
141
|
+
refreshStatus.value = 'loosing';
|
|
142
|
+
iconName.value = 'arrow-down';
|
|
143
|
+
distance.value = CONTROL_POSITION;
|
|
144
|
+
setTimeout(() => {
|
|
145
|
+
isEnd.value = false;
|
|
146
|
+
}, (0, _shared.toNumber)(props.animationDuration));
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
return function touchEnd() {
|
|
151
|
+
return _ref.apply(this, arguments);
|
|
152
|
+
};
|
|
153
|
+
}();
|
|
154
|
+
|
|
124
155
|
var reset = () => {
|
|
125
156
|
setTimeout(() => {
|
|
126
157
|
refreshStatus.value = 'default';
|
|
@@ -146,6 +177,8 @@ var _default = (0, _vue.defineComponent)({
|
|
|
146
177
|
return {
|
|
147
178
|
n,
|
|
148
179
|
classes,
|
|
180
|
+
iconHasChanged,
|
|
181
|
+
ICON_TRANSITION,
|
|
149
182
|
refreshStatus,
|
|
150
183
|
freshNode,
|
|
151
184
|
touchStart,
|
package/lib/snackbar/core.js
CHANGED
|
@@ -92,7 +92,7 @@ var _default = (0, _vue.defineComponent)({
|
|
|
92
92
|
var {
|
|
93
93
|
zIndex
|
|
94
94
|
} = (0, _zIndex.useZIndex)(() => props.show, 1);
|
|
95
|
-
(0, _lock.useLock)(props
|
|
95
|
+
(0, _lock.useLock)(() => props.show, () => props.lockScroll);
|
|
96
96
|
var isForbidClick = (0, _vue.computed)(() => props.type === 'loading' || props.forbidClick);
|
|
97
97
|
var iconName = (0, _vue.computed)(() => {
|
|
98
98
|
if (!props.type) return '';
|