vant 3.3.6 → 3.3.7
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/es/badge/Badge.d.ts +12 -0
- package/es/badge/Badge.js +4 -3
- package/es/badge/index.css +1 -1
- package/es/badge/index.d.ts +8 -1
- package/es/badge/index.less +22 -1
- package/es/calendar/Calendar.d.ts +2 -2
- package/es/calendar/index.d.ts +2 -2
- package/es/datetime-picker/DatePicker.js +2 -2
- package/es/datetime-picker/TimePicker.js +2 -2
- package/es/datetime-picker/utils.d.ts +2 -0
- package/es/datetime-picker/utils.js +17 -1
- package/es/field/Field.js +5 -5
- package/es/field/utils.d.ts +2 -0
- package/es/field/utils.js +9 -0
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/pagination/Pagination.js +3 -3
- package/es/popup/Popup.d.ts +2 -2
- package/es/popup/index.d.ts +2 -2
- package/es/toast/Toast.d.ts +2 -2
- package/lib/badge/Badge.d.ts +12 -0
- package/lib/badge/Badge.js +4 -3
- package/lib/badge/index.css +1 -1
- package/lib/badge/index.d.ts +8 -1
- package/lib/badge/index.less +22 -1
- package/lib/calendar/Calendar.d.ts +2 -2
- package/lib/calendar/index.d.ts +2 -2
- package/lib/datetime-picker/DatePicker.js +1 -1
- package/lib/datetime-picker/TimePicker.js +1 -1
- package/lib/datetime-picker/utils.d.ts +2 -0
- package/lib/datetime-picker/utils.js +22 -3
- package/lib/field/Field.js +4 -4
- package/lib/field/utils.d.ts +2 -0
- package/lib/field/utils.js +13 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/pagination/Pagination.js +3 -3
- package/lib/popup/Popup.d.ts +2 -2
- package/lib/popup/index.d.ts +2 -2
- package/lib/toast/Toast.d.ts +2 -2
- package/lib/vant.cjs.js +34 -13
- package/lib/vant.cjs.min.js +1 -1
- package/lib/vant.es.js +34 -13
- package/lib/vant.es.min.js +34 -13
- package/lib/vant.js +202 -55
- package/lib/vant.min.js +1 -1
- package/package.json +14 -12
- package/vetur/attributes.json +89 -85
- package/vetur/tags.json +26 -25
- package/vetur/web-types.json +217 -207
package/es/badge/Badge.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { PropType, ExtractPropTypes } from 'vue';
|
2
|
+
export declare type BadgePosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
2
3
|
declare const badgeProps: {
|
3
4
|
dot: BooleanConstructor;
|
4
5
|
max: (NumberConstructor | StringConstructor)[];
|
@@ -13,6 +14,10 @@ declare const badgeProps: {
|
|
13
14
|
type: BooleanConstructor;
|
14
15
|
default: true;
|
15
16
|
};
|
17
|
+
position: {
|
18
|
+
type: PropType<BadgePosition>;
|
19
|
+
default: BadgePosition;
|
20
|
+
};
|
16
21
|
};
|
17
22
|
export declare type BadgeProps = ExtractPropTypes<typeof badgeProps>;
|
18
23
|
declare const _default: import("vue").DefineComponent<{
|
@@ -29,6 +34,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
29
34
|
type: BooleanConstructor;
|
30
35
|
default: true;
|
31
36
|
};
|
37
|
+
position: {
|
38
|
+
type: PropType<BadgePosition>;
|
39
|
+
default: BadgePosition;
|
40
|
+
};
|
32
41
|
}, () => JSX.Element | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("@vue/runtime-core").ComponentCustomProps, Readonly<{
|
33
42
|
dot?: unknown;
|
34
43
|
max?: unknown;
|
@@ -37,10 +46,12 @@ declare const _default: import("vue").DefineComponent<{
|
|
37
46
|
offset?: unknown;
|
38
47
|
content?: unknown;
|
39
48
|
showZero?: unknown;
|
49
|
+
position?: unknown;
|
40
50
|
} & {
|
41
51
|
dot: boolean;
|
42
52
|
tag: keyof HTMLElementTagNameMap;
|
43
53
|
showZero: boolean;
|
54
|
+
position: BadgePosition;
|
44
55
|
} & {
|
45
56
|
max?: string | number | undefined;
|
46
57
|
color?: string | undefined;
|
@@ -50,5 +61,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
50
61
|
dot: boolean;
|
51
62
|
tag: keyof HTMLElementTagNameMap;
|
52
63
|
showZero: boolean;
|
64
|
+
position: BadgePosition;
|
53
65
|
}>;
|
54
66
|
export default _default;
|
package/es/badge/Badge.js
CHANGED
@@ -9,7 +9,8 @@ var badgeProps = {
|
|
9
9
|
color: String,
|
10
10
|
offset: Array,
|
11
11
|
content: numericProp,
|
12
|
-
showZero: truthProp
|
12
|
+
showZero: truthProp,
|
13
|
+
position: makeStringProp('top-right')
|
13
14
|
};
|
14
15
|
export default defineComponent({
|
15
16
|
name,
|
@@ -80,10 +81,10 @@ export default defineComponent({
|
|
80
81
|
var renderBadge = () => {
|
81
82
|
if (hasContent() || props.dot) {
|
82
83
|
return _createVNode("div", {
|
83
|
-
"class": bem({
|
84
|
+
"class": bem([props.position, {
|
84
85
|
dot: props.dot,
|
85
86
|
fixed: !!slots.default
|
86
|
-
}),
|
87
|
+
}]),
|
87
88
|
"style": style.value
|
88
89
|
}, [renderContent()]);
|
89
90
|
}
|
package/es/badge/index.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
:root{--van-badge-size:16px;--van-badge-color:var(--van-white);--van-badge-padding:0 3px;--van-badge-font-size:var(--van-font-size-sm);--van-badge-font-weight:var(--van-font-weight-bold);--van-badge-border-width:var(--van-border-width-base);--van-badge-background-color:var(--van-danger-color);--van-badge-dot-color:var(--van-danger-color);--van-badge-dot-size:8px;--van-badge-font-family:-apple-system-font,Helvetica Neue,Arial,sans-serif}.van-badge{display:inline-block;box-sizing:border-box;min-width:var(--van-badge-size);padding:var(--van-badge-padding);color:var(--van-badge-color);font-weight:var(--van-badge-font-weight);font-size:var(--van-badge-font-size);font-family:var(--van-badge-font-family);line-height:1.2;text-align:center;background:var(--van-badge-background-color);border:var(--van-badge-border-width) solid var(--van-background-color-light);border-radius:var(--van-border-radius-max)}.van-badge--fixed{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-
|
1
|
+
:root{--van-badge-size:16px;--van-badge-color:var(--van-white);--van-badge-padding:0 3px;--van-badge-font-size:var(--van-font-size-sm);--van-badge-font-weight:var(--van-font-weight-bold);--van-badge-border-width:var(--van-border-width-base);--van-badge-background-color:var(--van-danger-color);--van-badge-dot-color:var(--van-danger-color);--van-badge-dot-size:8px;--van-badge-font-family:-apple-system-font,Helvetica Neue,Arial,sans-serif}.van-badge{display:inline-block;box-sizing:border-box;min-width:var(--van-badge-size);padding:var(--van-badge-padding);color:var(--van-badge-color);font-weight:var(--van-badge-font-weight);font-size:var(--van-badge-font-size);font-family:var(--van-badge-font-family);line-height:1.2;text-align:center;background:var(--van-badge-background-color);border:var(--van-badge-border-width) solid var(--van-background-color-light);border-radius:var(--van-border-radius-max)}.van-badge--fixed{position:absolute;transform-origin:100%}.van-badge--top-left{top:0;left:0;transform:translate(-50%,-50%)}.van-badge--top-right{top:0;right:0;transform:translate(50%,-50%)}.van-badge--bottom-left{bottom:0;left:0;transform:translate(-50%,50%)}.van-badge--bottom-right{bottom:0;right:0;transform:translate(50%,50%)}.van-badge--dot{width:var(--van-badge-dot-size);min-width:0;height:var(--van-badge-dot-size);background:var(--van-badge-dot-color);border-radius:100%;border:none;padding:0}.van-badge__wrapper{position:relative;display:inline-block}
|
package/es/badge/index.d.ts
CHANGED
@@ -12,6 +12,10 @@ export declare const Badge: import("../utils").WithInstall<import("vue").DefineC
|
|
12
12
|
type: BooleanConstructor;
|
13
13
|
default: true;
|
14
14
|
};
|
15
|
+
position: {
|
16
|
+
type: import("vue").PropType<import("./Badge").BadgePosition>;
|
17
|
+
default: import("./Badge").BadgePosition;
|
18
|
+
};
|
15
19
|
}, () => JSX.Element | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("@vue/runtime-core").ComponentCustomProps, Readonly<{
|
16
20
|
dot?: unknown;
|
17
21
|
max?: unknown;
|
@@ -20,10 +24,12 @@ export declare const Badge: import("../utils").WithInstall<import("vue").DefineC
|
|
20
24
|
offset?: unknown;
|
21
25
|
content?: unknown;
|
22
26
|
showZero?: unknown;
|
27
|
+
position?: unknown;
|
23
28
|
} & {
|
24
29
|
dot: boolean;
|
25
30
|
tag: keyof HTMLElementTagNameMap;
|
26
31
|
showZero: boolean;
|
32
|
+
position: import("./Badge").BadgePosition;
|
27
33
|
} & {
|
28
34
|
max?: string | number | undefined;
|
29
35
|
color?: string | undefined;
|
@@ -33,6 +39,7 @@ export declare const Badge: import("../utils").WithInstall<import("vue").DefineC
|
|
33
39
|
dot: boolean;
|
34
40
|
tag: keyof HTMLElementTagNameMap;
|
35
41
|
showZero: boolean;
|
42
|
+
position: import("./Badge").BadgePosition;
|
36
43
|
}>>;
|
37
44
|
export default Badge;
|
38
|
-
export type { BadgeProps } from './Badge';
|
45
|
+
export type { BadgeProps, BadgePosition } from './Badge';
|
package/es/badge/index.less
CHANGED
@@ -30,10 +30,31 @@
|
|
30
30
|
|
31
31
|
&--fixed {
|
32
32
|
position: absolute;
|
33
|
+
transform-origin: 100%;
|
34
|
+
}
|
35
|
+
|
36
|
+
&--top-left {
|
37
|
+
top: 0;
|
38
|
+
left: 0;
|
39
|
+
transform: translate(-50%, -50%);
|
40
|
+
}
|
41
|
+
|
42
|
+
&--top-right {
|
33
43
|
top: 0;
|
34
44
|
right: 0;
|
35
45
|
transform: translate(50%, -50%);
|
36
|
-
|
46
|
+
}
|
47
|
+
|
48
|
+
&--bottom-left {
|
49
|
+
bottom: 0;
|
50
|
+
left: 0;
|
51
|
+
transform: translate(-50%, 50%);
|
52
|
+
}
|
53
|
+
|
54
|
+
&--bottom-right {
|
55
|
+
bottom: 0;
|
56
|
+
right: 0;
|
57
|
+
transform: translate(50%, 50%);
|
37
58
|
}
|
38
59
|
|
39
60
|
&--dot {
|
@@ -203,13 +203,13 @@ declare const _default: import("vue").DefineComponent<{
|
|
203
203
|
firstDayOfWeek?: unknown;
|
204
204
|
} & {
|
205
205
|
type: CalendarType;
|
206
|
+
position: PopupPosition;
|
206
207
|
round: boolean;
|
207
208
|
readonly: boolean;
|
208
209
|
safeAreaInsetBottom: boolean;
|
209
210
|
show: boolean;
|
210
211
|
lazyRender: boolean;
|
211
212
|
closeOnClickOverlay: boolean;
|
212
|
-
position: PopupPosition;
|
213
213
|
closeOnPopstate: boolean;
|
214
214
|
minDate: Date;
|
215
215
|
maxDate: Date;
|
@@ -242,13 +242,13 @@ declare const _default: import("vue").DefineComponent<{
|
|
242
242
|
"onOver-range"?: ((...args: any[]) => any) | undefined;
|
243
243
|
}, {
|
244
244
|
type: CalendarType;
|
245
|
+
position: PopupPosition;
|
245
246
|
round: boolean;
|
246
247
|
readonly: boolean;
|
247
248
|
safeAreaInsetBottom: boolean;
|
248
249
|
show: boolean;
|
249
250
|
lazyRender: boolean;
|
250
251
|
closeOnClickOverlay: boolean;
|
251
|
-
position: PopupPosition;
|
252
252
|
closeOnPopstate: boolean;
|
253
253
|
minDate: Date;
|
254
254
|
maxDate: Date;
|
package/es/calendar/index.d.ts
CHANGED
@@ -114,13 +114,13 @@ export declare const Calendar: import("../utils").WithInstall<import("vue").Defi
|
|
114
114
|
firstDayOfWeek?: unknown;
|
115
115
|
} & {
|
116
116
|
type: import("./types").CalendarType;
|
117
|
+
position: import("..").PopupPosition;
|
117
118
|
round: boolean;
|
118
119
|
readonly: boolean;
|
119
120
|
safeAreaInsetBottom: boolean;
|
120
121
|
show: boolean;
|
121
122
|
lazyRender: boolean;
|
122
123
|
closeOnClickOverlay: boolean;
|
123
|
-
position: import("..").PopupPosition;
|
124
124
|
closeOnPopstate: boolean;
|
125
125
|
minDate: Date;
|
126
126
|
maxDate: Date;
|
@@ -153,13 +153,13 @@ export declare const Calendar: import("../utils").WithInstall<import("vue").Defi
|
|
153
153
|
"onOver-range"?: ((...args: any[]) => any) | undefined;
|
154
154
|
}, {
|
155
155
|
type: import("./types").CalendarType;
|
156
|
+
position: import("..").PopupPosition;
|
156
157
|
round: boolean;
|
157
158
|
readonly: boolean;
|
158
159
|
safeAreaInsetBottom: boolean;
|
159
160
|
show: boolean;
|
160
161
|
lazyRender: boolean;
|
161
162
|
closeOnClickOverlay: boolean;
|
162
|
-
position: import("..").PopupPosition;
|
163
163
|
closeOnPopstate: boolean;
|
164
164
|
minDate: Date;
|
165
165
|
maxDate: Date;
|
@@ -2,7 +2,7 @@ import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirectiv
|
|
2
2
|
import { ref, watch, computed, nextTick, onMounted, defineComponent } from 'vue'; // Utils
|
3
3
|
|
4
4
|
import { pick, clamp, extend, isDate, padZero, makeStringProp, createNamespace } from '../utils';
|
5
|
-
import { times, sharedProps, getTrueValue, getMonthEndDay, pickerInheritKeys } from './utils'; // Composables
|
5
|
+
import { times, sharedProps, getTrueValue, getMonthEndDay, pickerInheritKeys, proxyPickerMethods } from './utils'; // Composables
|
6
6
|
|
7
7
|
import { useExpose } from '../composables/use-expose'; // Components
|
8
8
|
|
@@ -281,7 +281,7 @@ export default defineComponent({
|
|
281
281
|
}
|
282
282
|
});
|
283
283
|
useExpose({
|
284
|
-
getPicker: () => picker.value
|
284
|
+
getPicker: () => picker.value && proxyPickerMethods(picker.value, updateInnerValue)
|
285
285
|
});
|
286
286
|
return () => _createVNode(Picker, _mergeProps({
|
287
287
|
"ref": picker,
|
@@ -2,7 +2,7 @@ import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirectiv
|
|
2
2
|
import { ref, watch, computed, nextTick, onMounted, defineComponent } from 'vue'; // Utils
|
3
3
|
|
4
4
|
import { pick, clamp, extend, padZero, createNamespace, makeNumericProp } from '../utils';
|
5
|
-
import { times, sharedProps, pickerInheritKeys } from './utils'; // Composables
|
5
|
+
import { times, sharedProps, pickerInheritKeys, proxyPickerMethods } from './utils'; // Composables
|
6
6
|
|
7
7
|
import { useExpose } from '../composables/use-expose'; // Components
|
8
8
|
|
@@ -121,7 +121,7 @@ export default defineComponent({
|
|
121
121
|
}
|
122
122
|
});
|
123
123
|
useExpose({
|
124
|
-
getPicker: () => picker.value
|
124
|
+
getPicker: () => picker.value && proxyPickerMethods(picker.value, updateInnerValue)
|
125
125
|
});
|
126
126
|
return () => _createVNode(Picker, _mergeProps({
|
127
127
|
"ref": picker,
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { PropType } from 'vue';
|
2
|
+
import type { PickerInstance } from '../picker';
|
2
3
|
import type { DatetimePickerColumnType } from './types';
|
3
4
|
export declare const sharedProps: {
|
4
5
|
title: StringConstructor;
|
@@ -35,3 +36,4 @@ export declare const pickerInheritKeys: ("title" | "readonly" | "loading" | "all
|
|
35
36
|
export declare function times<T>(n: number, iteratee: (index: number) => T): T[];
|
36
37
|
export declare function getTrueValue(value: string | undefined): number;
|
37
38
|
export declare const getMonthEndDay: (year: number, month: number) => number;
|
39
|
+
export declare const proxyPickerMethods: (picker: PickerInstance, callback: () => void) => PickerInstance;
|
@@ -34,4 +34,20 @@ export function getTrueValue(value) {
|
|
34
34
|
|
35
35
|
return parseInt(value, 10);
|
36
36
|
}
|
37
|
-
export var getMonthEndDay = (year, month) => 32 - new Date(year, month - 1, 32).getDate();
|
37
|
+
export var getMonthEndDay = (year, month) => 32 - new Date(year, month - 1, 32).getDate(); // https://github.com/youzan/vant/issues/10013
|
38
|
+
|
39
|
+
export var proxyPickerMethods = (picker, callback) => {
|
40
|
+
var methods = ['setValues', 'setIndexes', 'setColumnIndex', 'setColumnValue'];
|
41
|
+
return new Proxy(picker, {
|
42
|
+
get: (target, prop) => {
|
43
|
+
if (methods.includes(prop)) {
|
44
|
+
return function () {
|
45
|
+
target[prop](...arguments);
|
46
|
+
callback();
|
47
|
+
};
|
48
|
+
}
|
49
|
+
|
50
|
+
return target[prop];
|
51
|
+
}
|
52
|
+
});
|
53
|
+
};
|
package/es/field/Field.js
CHANGED
@@ -2,7 +2,7 @@ import { resolveDirective as _resolveDirective, createTextVNode as _createTextVN
|
|
2
2
|
import { ref, watch, provide, computed, nextTick, reactive, onMounted, defineComponent } from 'vue'; // Utils
|
3
3
|
|
4
4
|
import { isDef, extend, addUnit, FORM_KEY, numericProp, unknownProp, resetScroll, formatNumber, preventDefault, makeStringProp, makeNumericProp, createNamespace } from '../utils';
|
5
|
-
import { runSyncRule, endComposing, mapInputType, startComposing, getRuleMessage, resizeTextarea, runRuleValidator } from './utils';
|
5
|
+
import { cutString, runSyncRule, endComposing, mapInputType, startComposing, getRuleMessage, resizeTextarea, getStringLength, runRuleValidator } from './utils';
|
6
6
|
import { cellSharedProps } from '../cell/Cell'; // Composables
|
7
7
|
|
8
8
|
import { CUSTOM_FIELD_INJECTION_KEY, useParent } from '@vant/use';
|
@@ -204,14 +204,14 @@ export default defineComponent({
|
|
204
204
|
maxlength
|
205
205
|
} = props;
|
206
206
|
|
207
|
-
if (isDef(maxlength) && value
|
207
|
+
if (isDef(maxlength) && getStringLength(value) > maxlength) {
|
208
208
|
var modelValue = getModelValue();
|
209
209
|
|
210
|
-
if (modelValue && modelValue
|
210
|
+
if (modelValue && getStringLength(modelValue) === +maxlength) {
|
211
211
|
return modelValue;
|
212
212
|
}
|
213
213
|
|
214
|
-
return value
|
214
|
+
return cutString(value, +maxlength);
|
215
215
|
}
|
216
216
|
|
217
217
|
return value;
|
@@ -418,7 +418,7 @@ export default defineComponent({
|
|
418
418
|
|
419
419
|
var renderWordLimit = () => {
|
420
420
|
if (props.showWordLimit && props.maxlength) {
|
421
|
-
var count = getModelValue()
|
421
|
+
var count = getStringLength(getModelValue());
|
422
422
|
return _createVNode("div", {
|
423
423
|
"class": bem('word-limit')
|
424
424
|
}, [_createVNode("span", {
|
package/es/field/utils.d.ts
CHANGED
@@ -10,3 +10,5 @@ export declare function mapInputType(type: FieldType): {
|
|
10
10
|
type: InputHTMLAttributes['type'];
|
11
11
|
inputmode?: HTMLAttributes['inputmode'];
|
12
12
|
};
|
13
|
+
export declare function getStringLength(str: string): number;
|
14
|
+
export declare function cutString(str: string, maxlength: number): string;
|
package/es/field/utils.js
CHANGED
@@ -107,4 +107,13 @@ export function mapInputType(type) {
|
|
107
107
|
return {
|
108
108
|
type
|
109
109
|
};
|
110
|
+
} // get correct length of emoji
|
111
|
+
// https://github.com/youzan/vant/issues/10032
|
112
|
+
|
113
|
+
export function getStringLength(str) {
|
114
|
+
return [...str].length;
|
115
|
+
} // cut string with emoji
|
116
|
+
|
117
|
+
export function cutString(str, maxlength) {
|
118
|
+
return [...str].slice(0, maxlength).join('');
|
110
119
|
}
|
package/es/index.d.ts
CHANGED
package/es/index.js
CHANGED
@@ -84,7 +84,7 @@ import { Tag } from './tag';
|
|
84
84
|
import { Toast } from './toast';
|
85
85
|
import { TreeSelect } from './tree-select';
|
86
86
|
import { Uploader } from './uploader';
|
87
|
-
var version = '3.3.
|
87
|
+
var version = '3.3.7';
|
88
88
|
|
89
89
|
function install(app) {
|
90
90
|
var components = [ActionBar, ActionBarButton, ActionBarIcon, ActionSheet, AddressEdit, AddressList, Area, Badge, Button, Calendar, Card, Cascader, Cell, CellGroup, Checkbox, CheckboxGroup, Circle, Col, Collapse, CollapseItem, ConfigProvider, ContactCard, ContactEdit, ContactList, CountDown, Coupon, CouponCell, CouponList, DatetimePicker, Dialog, Divider, DropdownItem, DropdownMenu, Empty, Field, Form, Grid, GridItem, Icon, Image, ImagePreview, IndexAnchor, IndexBar, List, Loading, Locale, NavBar, NoticeBar, Notify, NumberKeyboard, Overlay, Pagination, PasswordInput, Picker, Popover, Popup, Progress, PullRefresh, Radio, RadioGroup, Rate, Row, Search, ShareSheet, Sidebar, SidebarItem, Skeleton, Slider, Step, Stepper, Steps, Sticky, SubmitBar, Swipe, SwipeCell, SwipeItem, Switch, Tab, Tabbar, TabbarItem, Tabs, Tag, Toast, TreeSelect, Uploader];
|
@@ -120,7 +120,7 @@ export default defineComponent({
|
|
120
120
|
}, [_createVNode("button", {
|
121
121
|
"type": "button",
|
122
122
|
"disabled": disabled,
|
123
|
-
"onClick": () => updateModelValue(modelValue - 1)
|
123
|
+
"onClick": () => updateModelValue(modelValue - 1, true)
|
124
124
|
}, [slot ? slot() : props.prevText || t('prev')])]);
|
125
125
|
};
|
126
126
|
|
@@ -140,7 +140,7 @@ export default defineComponent({
|
|
140
140
|
}, [_createVNode("button", {
|
141
141
|
"type": "button",
|
142
142
|
"disabled": disabled,
|
143
|
-
"onClick": () => updateModelValue(modelValue + 1)
|
143
|
+
"onClick": () => updateModelValue(modelValue + 1, true)
|
144
144
|
}, [slot ? slot() : props.nextText || t('next')])]);
|
145
145
|
};
|
146
146
|
|
@@ -152,7 +152,7 @@ export default defineComponent({
|
|
152
152
|
}, [_createVNode("button", {
|
153
153
|
"type": "button",
|
154
154
|
"aria-current": page.active || undefined,
|
155
|
-
"onClick": () => updateModelValue(page.number)
|
155
|
+
"onClick": () => updateModelValue(page.number, true)
|
156
156
|
}, [slots.page ? slots.page(page) : page.text])]));
|
157
157
|
|
158
158
|
return () => _createVNode("nav", {
|
package/es/popup/Popup.d.ts
CHANGED
@@ -114,6 +114,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
114
114
|
closeIconPosition?: unknown;
|
115
115
|
safeAreaInsetBottom?: unknown;
|
116
116
|
} & {
|
117
|
+
position: PopupPosition;
|
117
118
|
round: boolean;
|
118
119
|
safeAreaInsetBottom: boolean;
|
119
120
|
overlay: boolean;
|
@@ -122,7 +123,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
122
123
|
lazyRender: boolean;
|
123
124
|
transitionAppear: boolean;
|
124
125
|
closeOnClickOverlay: boolean;
|
125
|
-
position: PopupPosition;
|
126
126
|
closeIcon: string;
|
127
127
|
closeable: boolean;
|
128
128
|
closeOnPopstate: boolean;
|
@@ -145,6 +145,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
145
145
|
"onClick-overlay"?: ((...args: any[]) => any) | undefined;
|
146
146
|
"onClick-close-icon"?: ((...args: any[]) => any) | undefined;
|
147
147
|
}, {
|
148
|
+
position: PopupPosition;
|
148
149
|
round: boolean;
|
149
150
|
safeAreaInsetBottom: boolean;
|
150
151
|
overlay: boolean;
|
@@ -153,7 +154,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
153
154
|
lazyRender: boolean;
|
154
155
|
transitionAppear: boolean;
|
155
156
|
closeOnClickOverlay: boolean;
|
156
|
-
position: PopupPosition;
|
157
157
|
closeIcon: string;
|
158
158
|
closeable: boolean;
|
159
159
|
closeOnPopstate: boolean;
|
package/es/popup/index.d.ts
CHANGED
@@ -65,6 +65,7 @@ export declare const Popup: import("../utils").WithInstall<import("vue").DefineC
|
|
65
65
|
closeIconPosition?: unknown;
|
66
66
|
safeAreaInsetBottom?: unknown;
|
67
67
|
} & {
|
68
|
+
position: import("./Popup").PopupPosition;
|
68
69
|
round: boolean;
|
69
70
|
safeAreaInsetBottom: boolean;
|
70
71
|
overlay: boolean;
|
@@ -73,7 +74,6 @@ export declare const Popup: import("../utils").WithInstall<import("vue").DefineC
|
|
73
74
|
lazyRender: boolean;
|
74
75
|
transitionAppear: boolean;
|
75
76
|
closeOnClickOverlay: boolean;
|
76
|
-
position: import("./Popup").PopupPosition;
|
77
77
|
closeIcon: string;
|
78
78
|
closeable: boolean;
|
79
79
|
closeOnPopstate: boolean;
|
@@ -96,6 +96,7 @@ export declare const Popup: import("../utils").WithInstall<import("vue").DefineC
|
|
96
96
|
"onClick-overlay"?: ((...args: any[]) => any) | undefined;
|
97
97
|
"onClick-close-icon"?: ((...args: any[]) => any) | undefined;
|
98
98
|
}, {
|
99
|
+
position: import("./Popup").PopupPosition;
|
99
100
|
round: boolean;
|
100
101
|
safeAreaInsetBottom: boolean;
|
101
102
|
overlay: boolean;
|
@@ -104,7 +105,6 @@ export declare const Popup: import("../utils").WithInstall<import("vue").DefineC
|
|
104
105
|
lazyRender: boolean;
|
105
106
|
transitionAppear: boolean;
|
106
107
|
closeOnClickOverlay: boolean;
|
107
|
-
position: import("./Popup").PopupPosition;
|
108
108
|
closeIcon: string;
|
109
109
|
closeable: boolean;
|
110
110
|
closeOnPopstate: boolean;
|
package/es/toast/Toast.d.ts
CHANGED
@@ -83,11 +83,11 @@ declare const _default: import("vue").DefineComponent<{
|
|
83
83
|
closeOnClickOverlay?: unknown;
|
84
84
|
} & {
|
85
85
|
type: ToastType;
|
86
|
+
position: ToastPosition;
|
86
87
|
overlay: boolean;
|
87
88
|
show: boolean;
|
88
89
|
duration: number;
|
89
90
|
closeOnClickOverlay: boolean;
|
90
|
-
position: ToastPosition;
|
91
91
|
transition: string;
|
92
92
|
forbidClick: boolean;
|
93
93
|
closeOnClick: boolean;
|
@@ -104,11 +104,11 @@ declare const _default: import("vue").DefineComponent<{
|
|
104
104
|
"onUpdate:show"?: ((...args: any[]) => any) | undefined;
|
105
105
|
}, {
|
106
106
|
type: ToastType;
|
107
|
+
position: ToastPosition;
|
107
108
|
overlay: boolean;
|
108
109
|
show: boolean;
|
109
110
|
duration: number;
|
110
111
|
closeOnClickOverlay: boolean;
|
111
|
-
position: ToastPosition;
|
112
112
|
transition: string;
|
113
113
|
forbidClick: boolean;
|
114
114
|
closeOnClick: boolean;
|
package/lib/badge/Badge.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { PropType, ExtractPropTypes } from 'vue';
|
2
|
+
export declare type BadgePosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
2
3
|
declare const badgeProps: {
|
3
4
|
dot: BooleanConstructor;
|
4
5
|
max: (NumberConstructor | StringConstructor)[];
|
@@ -13,6 +14,10 @@ declare const badgeProps: {
|
|
13
14
|
type: BooleanConstructor;
|
14
15
|
default: true;
|
15
16
|
};
|
17
|
+
position: {
|
18
|
+
type: PropType<BadgePosition>;
|
19
|
+
default: BadgePosition;
|
20
|
+
};
|
16
21
|
};
|
17
22
|
export declare type BadgeProps = ExtractPropTypes<typeof badgeProps>;
|
18
23
|
declare const _default: import("vue").DefineComponent<{
|
@@ -29,6 +34,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
29
34
|
type: BooleanConstructor;
|
30
35
|
default: true;
|
31
36
|
};
|
37
|
+
position: {
|
38
|
+
type: PropType<BadgePosition>;
|
39
|
+
default: BadgePosition;
|
40
|
+
};
|
32
41
|
}, () => JSX.Element | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("@vue/runtime-core").ComponentCustomProps, Readonly<{
|
33
42
|
dot?: unknown;
|
34
43
|
max?: unknown;
|
@@ -37,10 +46,12 @@ declare const _default: import("vue").DefineComponent<{
|
|
37
46
|
offset?: unknown;
|
38
47
|
content?: unknown;
|
39
48
|
showZero?: unknown;
|
49
|
+
position?: unknown;
|
40
50
|
} & {
|
41
51
|
dot: boolean;
|
42
52
|
tag: keyof HTMLElementTagNameMap;
|
43
53
|
showZero: boolean;
|
54
|
+
position: BadgePosition;
|
44
55
|
} & {
|
45
56
|
max?: string | number | undefined;
|
46
57
|
color?: string | undefined;
|
@@ -50,5 +61,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
50
61
|
dot: boolean;
|
51
62
|
tag: keyof HTMLElementTagNameMap;
|
52
63
|
showZero: boolean;
|
64
|
+
position: BadgePosition;
|
53
65
|
}>;
|
54
66
|
export default _default;
|
package/lib/badge/Badge.js
CHANGED
@@ -15,7 +15,8 @@ var badgeProps = {
|
|
15
15
|
color: String,
|
16
16
|
offset: Array,
|
17
17
|
content: _utils.numericProp,
|
18
|
-
showZero: _utils.truthProp
|
18
|
+
showZero: _utils.truthProp,
|
19
|
+
position: (0, _utils.makeStringProp)('top-right')
|
19
20
|
};
|
20
21
|
|
21
22
|
var _default = (0, _vue.defineComponent)({
|
@@ -87,10 +88,10 @@ var _default = (0, _vue.defineComponent)({
|
|
87
88
|
var renderBadge = () => {
|
88
89
|
if (hasContent() || props.dot) {
|
89
90
|
return (0, _vue.createVNode)("div", {
|
90
|
-
"class": bem({
|
91
|
+
"class": bem([props.position, {
|
91
92
|
dot: props.dot,
|
92
93
|
fixed: !!slots.default
|
93
|
-
}),
|
94
|
+
}]),
|
94
95
|
"style": style.value
|
95
96
|
}, [renderContent()]);
|
96
97
|
}
|
package/lib/badge/index.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
:root{--van-badge-size:16px;--van-badge-color:var(--van-white);--van-badge-padding:0 3px;--van-badge-font-size:var(--van-font-size-sm);--van-badge-font-weight:var(--van-font-weight-bold);--van-badge-border-width:var(--van-border-width-base);--van-badge-background-color:var(--van-danger-color);--van-badge-dot-color:var(--van-danger-color);--van-badge-dot-size:8px;--van-badge-font-family:-apple-system-font,Helvetica Neue,Arial,sans-serif}.van-badge{display:inline-block;box-sizing:border-box;min-width:var(--van-badge-size);padding:var(--van-badge-padding);color:var(--van-badge-color);font-weight:var(--van-badge-font-weight);font-size:var(--van-badge-font-size);font-family:var(--van-badge-font-family);line-height:1.2;text-align:center;background:var(--van-badge-background-color);border:var(--van-badge-border-width) solid var(--van-background-color-light);border-radius:var(--van-border-radius-max)}.van-badge--fixed{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-
|
1
|
+
:root{--van-badge-size:16px;--van-badge-color:var(--van-white);--van-badge-padding:0 3px;--van-badge-font-size:var(--van-font-size-sm);--van-badge-font-weight:var(--van-font-weight-bold);--van-badge-border-width:var(--van-border-width-base);--van-badge-background-color:var(--van-danger-color);--van-badge-dot-color:var(--van-danger-color);--van-badge-dot-size:8px;--van-badge-font-family:-apple-system-font,Helvetica Neue,Arial,sans-serif}.van-badge{display:inline-block;box-sizing:border-box;min-width:var(--van-badge-size);padding:var(--van-badge-padding);color:var(--van-badge-color);font-weight:var(--van-badge-font-weight);font-size:var(--van-badge-font-size);font-family:var(--van-badge-font-family);line-height:1.2;text-align:center;background:var(--van-badge-background-color);border:var(--van-badge-border-width) solid var(--van-background-color-light);border-radius:var(--van-border-radius-max)}.van-badge--fixed{position:absolute;transform-origin:100%}.van-badge--top-left{top:0;left:0;transform:translate(-50%,-50%)}.van-badge--top-right{top:0;right:0;transform:translate(50%,-50%)}.van-badge--bottom-left{bottom:0;left:0;transform:translate(-50%,50%)}.van-badge--bottom-right{bottom:0;right:0;transform:translate(50%,50%)}.van-badge--dot{width:var(--van-badge-dot-size);min-width:0;height:var(--van-badge-dot-size);background:var(--van-badge-dot-color);border-radius:100%;border:none;padding:0}.van-badge__wrapper{position:relative;display:inline-block}
|
package/lib/badge/index.d.ts
CHANGED
@@ -12,6 +12,10 @@ export declare const Badge: import("../utils").WithInstall<import("vue").DefineC
|
|
12
12
|
type: BooleanConstructor;
|
13
13
|
default: true;
|
14
14
|
};
|
15
|
+
position: {
|
16
|
+
type: import("vue").PropType<import("./Badge").BadgePosition>;
|
17
|
+
default: import("./Badge").BadgePosition;
|
18
|
+
};
|
15
19
|
}, () => JSX.Element | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("@vue/runtime-core").ComponentCustomProps, Readonly<{
|
16
20
|
dot?: unknown;
|
17
21
|
max?: unknown;
|
@@ -20,10 +24,12 @@ export declare const Badge: import("../utils").WithInstall<import("vue").DefineC
|
|
20
24
|
offset?: unknown;
|
21
25
|
content?: unknown;
|
22
26
|
showZero?: unknown;
|
27
|
+
position?: unknown;
|
23
28
|
} & {
|
24
29
|
dot: boolean;
|
25
30
|
tag: keyof HTMLElementTagNameMap;
|
26
31
|
showZero: boolean;
|
32
|
+
position: import("./Badge").BadgePosition;
|
27
33
|
} & {
|
28
34
|
max?: string | number | undefined;
|
29
35
|
color?: string | undefined;
|
@@ -33,6 +39,7 @@ export declare const Badge: import("../utils").WithInstall<import("vue").DefineC
|
|
33
39
|
dot: boolean;
|
34
40
|
tag: keyof HTMLElementTagNameMap;
|
35
41
|
showZero: boolean;
|
42
|
+
position: import("./Badge").BadgePosition;
|
36
43
|
}>>;
|
37
44
|
export default Badge;
|
38
|
-
export type { BadgeProps } from './Badge';
|
45
|
+
export type { BadgeProps, BadgePosition } from './Badge';
|
package/lib/badge/index.less
CHANGED
@@ -30,10 +30,31 @@
|
|
30
30
|
|
31
31
|
&--fixed {
|
32
32
|
position: absolute;
|
33
|
+
transform-origin: 100%;
|
34
|
+
}
|
35
|
+
|
36
|
+
&--top-left {
|
37
|
+
top: 0;
|
38
|
+
left: 0;
|
39
|
+
transform: translate(-50%, -50%);
|
40
|
+
}
|
41
|
+
|
42
|
+
&--top-right {
|
33
43
|
top: 0;
|
34
44
|
right: 0;
|
35
45
|
transform: translate(50%, -50%);
|
36
|
-
|
46
|
+
}
|
47
|
+
|
48
|
+
&--bottom-left {
|
49
|
+
bottom: 0;
|
50
|
+
left: 0;
|
51
|
+
transform: translate(-50%, 50%);
|
52
|
+
}
|
53
|
+
|
54
|
+
&--bottom-right {
|
55
|
+
bottom: 0;
|
56
|
+
right: 0;
|
57
|
+
transform: translate(50%, 50%);
|
37
58
|
}
|
38
59
|
|
39
60
|
&--dot {
|
@@ -203,13 +203,13 @@ declare const _default: import("vue").DefineComponent<{
|
|
203
203
|
firstDayOfWeek?: unknown;
|
204
204
|
} & {
|
205
205
|
type: CalendarType;
|
206
|
+
position: PopupPosition;
|
206
207
|
round: boolean;
|
207
208
|
readonly: boolean;
|
208
209
|
safeAreaInsetBottom: boolean;
|
209
210
|
show: boolean;
|
210
211
|
lazyRender: boolean;
|
211
212
|
closeOnClickOverlay: boolean;
|
212
|
-
position: PopupPosition;
|
213
213
|
closeOnPopstate: boolean;
|
214
214
|
minDate: Date;
|
215
215
|
maxDate: Date;
|
@@ -242,13 +242,13 @@ declare const _default: import("vue").DefineComponent<{
|
|
242
242
|
"onOver-range"?: ((...args: any[]) => any) | undefined;
|
243
243
|
}, {
|
244
244
|
type: CalendarType;
|
245
|
+
position: PopupPosition;
|
245
246
|
round: boolean;
|
246
247
|
readonly: boolean;
|
247
248
|
safeAreaInsetBottom: boolean;
|
248
249
|
show: boolean;
|
249
250
|
lazyRender: boolean;
|
250
251
|
closeOnClickOverlay: boolean;
|
251
|
-
position: PopupPosition;
|
252
252
|
closeOnPopstate: boolean;
|
253
253
|
minDate: Date;
|
254
254
|
maxDate: Date;
|