vant 4.3.1 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/es/address-edit/AddressEdit.mjs +1 -0
  2. package/es/area/Area.d.ts +6 -8
  3. package/es/area/Area.mjs +1 -1
  4. package/es/area/index.d.ts +4 -6
  5. package/es/back-top/BackTop.d.ts +1 -1
  6. package/es/back-top/BackTop.mjs +6 -3
  7. package/es/back-top/index.css +1 -1
  8. package/es/back-top/index.d.ts +1 -1
  9. package/es/barrage/Barrage.d.ts +93 -0
  10. package/es/barrage/Barrage.mjs +134 -0
  11. package/es/barrage/index.css +1 -0
  12. package/es/barrage/index.d.ts +69 -0
  13. package/es/barrage/index.mjs +10 -0
  14. package/es/barrage/style/index.d.ts +1 -0
  15. package/es/barrage/style/index.mjs +2 -0
  16. package/es/barrage/types.d.ts +7 -0
  17. package/es/barrage/types.mjs +0 -0
  18. package/es/cascader/Cascader.mjs +14 -0
  19. package/es/checkbox/Checker.d.ts +2 -0
  20. package/es/checkbox/Checker.mjs +13 -1
  21. package/es/contact-list/ContactList.mjs +1 -1
  22. package/es/contact-list/index.css +1 -1
  23. package/es/date-picker/DatePicker.mjs +5 -2
  24. package/es/date-picker/utils.d.ts +1 -1
  25. package/es/dialog/index.css +1 -1
  26. package/es/divider/Divider.d.ts +4 -0
  27. package/es/divider/Divider.mjs +4 -2
  28. package/es/divider/index.css +1 -1
  29. package/es/divider/index.d.ts +3 -0
  30. package/es/field/Field.mjs +4 -0
  31. package/es/image-preview/ImagePreviewItem.mjs +60 -26
  32. package/es/index.d.ts +2 -1
  33. package/es/index.mjs +4 -1
  34. package/es/notice-bar/NoticeBar.d.ts +1 -1
  35. package/es/notice-bar/index.d.ts +1 -1
  36. package/es/picker-group/PickerGroup.d.ts +15 -1
  37. package/es/picker-group/PickerGroup.mjs +8 -6
  38. package/es/picker-group/index.d.ts +11 -1
  39. package/es/signature/Signature.d.ts +13 -0
  40. package/es/signature/Signature.mjs +24 -8
  41. package/es/signature/index.css +1 -1
  42. package/es/signature/index.d.ts +9 -0
  43. package/es/step/index.css +1 -1
  44. package/es/submit-bar/index.css +1 -1
  45. package/es/tabs/Tabs.mjs +8 -2
  46. package/es/tabs/utils.d.ts +2 -2
  47. package/es/tabs/utils.mjs +14 -4
  48. package/es/uploader/Uploader.d.ts +6 -1
  49. package/es/uploader/Uploader.mjs +25 -10
  50. package/es/uploader/UploaderPreviewItem.d.ts +5 -1
  51. package/es/uploader/UploaderPreviewItem.mjs +6 -3
  52. package/es/uploader/index.d.ts +5 -1
  53. package/es/uploader/types.d.ts +1 -0
  54. package/lib/address-edit/AddressEdit.js +1 -0
  55. package/lib/area/Area.d.ts +6 -8
  56. package/lib/area/Area.js +1 -1
  57. package/lib/area/index.d.ts +4 -6
  58. package/lib/back-top/BackTop.d.ts +1 -1
  59. package/lib/back-top/BackTop.js +6 -3
  60. package/lib/back-top/index.css +1 -1
  61. package/lib/back-top/index.d.ts +1 -1
  62. package/lib/barrage/Barrage.d.ts +93 -0
  63. package/lib/barrage/Barrage.js +153 -0
  64. package/lib/barrage/index.css +1 -0
  65. package/lib/barrage/index.d.ts +69 -0
  66. package/lib/barrage/index.js +39 -0
  67. package/lib/barrage/style/index.d.ts +1 -0
  68. package/lib/barrage/style/index.js +2 -0
  69. package/lib/barrage/types.d.ts +7 -0
  70. package/lib/barrage/types.js +15 -0
  71. package/lib/cascader/Cascader.js +14 -0
  72. package/lib/checkbox/Checker.d.ts +2 -0
  73. package/lib/checkbox/Checker.js +13 -1
  74. package/lib/contact-list/ContactList.js +1 -1
  75. package/lib/contact-list/index.css +1 -1
  76. package/lib/date-picker/DatePicker.js +5 -2
  77. package/lib/date-picker/utils.d.ts +1 -1
  78. package/lib/dialog/index.css +1 -1
  79. package/lib/divider/Divider.d.ts +4 -0
  80. package/lib/divider/Divider.js +4 -2
  81. package/lib/divider/index.css +1 -1
  82. package/lib/divider/index.d.ts +3 -0
  83. package/lib/field/Field.js +4 -0
  84. package/lib/image-preview/ImagePreviewItem.js +59 -25
  85. package/lib/index.css +1 -1
  86. package/lib/index.d.ts +2 -1
  87. package/lib/index.js +4 -1
  88. package/lib/notice-bar/NoticeBar.d.ts +1 -1
  89. package/lib/notice-bar/index.d.ts +1 -1
  90. package/lib/picker-group/PickerGroup.d.ts +15 -1
  91. package/lib/picker-group/PickerGroup.js +6 -4
  92. package/lib/picker-group/index.d.ts +11 -1
  93. package/lib/signature/Signature.d.ts +13 -0
  94. package/lib/signature/Signature.js +23 -7
  95. package/lib/signature/index.css +1 -1
  96. package/lib/signature/index.d.ts +9 -0
  97. package/lib/step/index.css +1 -1
  98. package/lib/submit-bar/index.css +1 -1
  99. package/lib/tabs/Tabs.js +8 -2
  100. package/lib/tabs/utils.d.ts +2 -2
  101. package/lib/tabs/utils.js +13 -3
  102. package/lib/uploader/Uploader.d.ts +6 -1
  103. package/lib/uploader/Uploader.js +25 -10
  104. package/lib/uploader/UploaderPreviewItem.d.ts +5 -1
  105. package/lib/uploader/UploaderPreviewItem.js +6 -3
  106. package/lib/uploader/index.d.ts +5 -1
  107. package/lib/uploader/types.d.ts +1 -0
  108. package/lib/vant.cjs.js +611 -358
  109. package/lib/vant.es.js +612 -359
  110. package/lib/vant.js +611 -358
  111. package/lib/vant.min.js +1 -1
  112. package/lib/web-types.json +1 -1
  113. package/package.json +1 -1
@@ -0,0 +1,93 @@
1
+ import { type ExtractPropTypes } from 'vue';
2
+ export interface BarrageItem {
3
+ id: string | number;
4
+ text: string | number;
5
+ }
6
+ export declare const barrageProps: {
7
+ top: {
8
+ type: (NumberConstructor | StringConstructor)[];
9
+ default: number;
10
+ };
11
+ rows: {
12
+ type: (NumberConstructor | StringConstructor)[];
13
+ default: number;
14
+ };
15
+ duration: {
16
+ type: (NumberConstructor | StringConstructor)[];
17
+ default: number;
18
+ };
19
+ autoPlay: {
20
+ type: BooleanConstructor;
21
+ default: true;
22
+ };
23
+ delay: {
24
+ type: NumberConstructor;
25
+ default: number;
26
+ };
27
+ modelValue: {
28
+ type: import("vue").PropType<BarrageItem[]>;
29
+ default: () => never[];
30
+ };
31
+ };
32
+ export type BarrageProps = ExtractPropTypes<typeof barrageProps>;
33
+ declare const _default: import("vue").DefineComponent<{
34
+ top: {
35
+ type: (NumberConstructor | StringConstructor)[];
36
+ default: number;
37
+ };
38
+ rows: {
39
+ type: (NumberConstructor | StringConstructor)[];
40
+ default: number;
41
+ };
42
+ duration: {
43
+ type: (NumberConstructor | StringConstructor)[];
44
+ default: number;
45
+ };
46
+ autoPlay: {
47
+ type: BooleanConstructor;
48
+ default: true;
49
+ };
50
+ delay: {
51
+ type: NumberConstructor;
52
+ default: number;
53
+ };
54
+ modelValue: {
55
+ type: import("vue").PropType<BarrageItem[]>;
56
+ default: () => never[];
57
+ };
58
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
59
+ top: {
60
+ type: (NumberConstructor | StringConstructor)[];
61
+ default: number;
62
+ };
63
+ rows: {
64
+ type: (NumberConstructor | StringConstructor)[];
65
+ default: number;
66
+ };
67
+ duration: {
68
+ type: (NumberConstructor | StringConstructor)[];
69
+ default: number;
70
+ };
71
+ autoPlay: {
72
+ type: BooleanConstructor;
73
+ default: true;
74
+ };
75
+ delay: {
76
+ type: NumberConstructor;
77
+ default: number;
78
+ };
79
+ modelValue: {
80
+ type: import("vue").PropType<BarrageItem[]>;
81
+ default: () => never[];
82
+ };
83
+ }>> & {
84
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
85
+ }, {
86
+ top: string | number;
87
+ modelValue: BarrageItem[];
88
+ rows: string | number;
89
+ duration: string | number;
90
+ autoPlay: boolean;
91
+ delay: number;
92
+ }>;
93
+ export default _default;
@@ -0,0 +1,153 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name2 in all)
7
+ __defProp(target, name2, { get: all[name2], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var __async = (__this, __arguments, generator) => {
19
+ return new Promise((resolve, reject) => {
20
+ var fulfilled = (value) => {
21
+ try {
22
+ step(generator.next(value));
23
+ } catch (e) {
24
+ reject(e);
25
+ }
26
+ };
27
+ var rejected = (value) => {
28
+ try {
29
+ step(generator.throw(value));
30
+ } catch (e) {
31
+ reject(e);
32
+ }
33
+ };
34
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
35
+ step((generator = generator.apply(__this, __arguments)).next());
36
+ });
37
+ };
38
+ var stdin_exports = {};
39
+ __export(stdin_exports, {
40
+ barrageProps: () => barrageProps,
41
+ default: () => stdin_default
42
+ });
43
+ module.exports = __toCommonJS(stdin_exports);
44
+ var import_vue = require("vue");
45
+ var import_vue2 = require("vue");
46
+ var import_use_expose = require("../composables/use-expose");
47
+ var import_utils = require("../utils");
48
+ const barrageProps = {
49
+ top: (0, import_utils.makeNumericProp)(10),
50
+ rows: (0, import_utils.makeNumericProp)(4),
51
+ duration: (0, import_utils.makeNumericProp)(4e3),
52
+ autoPlay: import_utils.truthProp,
53
+ delay: (0, import_utils.makeNumberProp)(300),
54
+ modelValue: (0, import_utils.makeArrayProp)()
55
+ };
56
+ const [name, bem] = (0, import_utils.createNamespace)("barrage");
57
+ var stdin_default = (0, import_vue2.defineComponent)({
58
+ name,
59
+ props: barrageProps,
60
+ emits: ["update:modelValue"],
61
+ setup(props, {
62
+ emit,
63
+ slots
64
+ }) {
65
+ const barrageWrapper = (0, import_vue2.ref)();
66
+ const className = bem("item");
67
+ const total = (0, import_vue2.ref)(0);
68
+ const barrageItems = [];
69
+ const createBarrageItem = (text, delay = props.delay) => {
70
+ const item = document.createElement("span");
71
+ item.className = className;
72
+ item.innerText = String(text);
73
+ item.style.animationDuration = `${props.duration}ms`;
74
+ item.style.animationDelay = `${delay}ms`;
75
+ item.style.animationName = "van-barrage";
76
+ item.style.animationTimingFunction = "linear";
77
+ return item;
78
+ };
79
+ const isInitBarrage = (0, import_vue2.ref)(true);
80
+ const isPlay = (0, import_vue2.ref)(props.autoPlay);
81
+ const appendBarrageItem = ({
82
+ id,
83
+ text
84
+ }, i) => {
85
+ var _a;
86
+ const item = createBarrageItem(text, isInitBarrage.value ? i * props.delay : void 0);
87
+ if (!props.autoPlay && isPlay.value === false) {
88
+ item.style.animationPlayState = "paused";
89
+ }
90
+ (_a = barrageWrapper.value) == null ? void 0 : _a.append(item);
91
+ total.value++;
92
+ const top = (total.value - 1) % +props.rows * item.offsetHeight + +props.top;
93
+ item.style.top = `${top}px`;
94
+ item.dataset.id = String(id);
95
+ barrageItems.push(item);
96
+ item.addEventListener("animationend", () => {
97
+ emit("update:modelValue", [...props.modelValue].filter((v) => String(v.id) !== item.dataset.id));
98
+ });
99
+ };
100
+ const updateBarrages = (newValue, oldValue) => {
101
+ const map = new Map(oldValue.map((item) => [item.id, item]));
102
+ newValue.forEach((item, i) => {
103
+ if (map.has(item.id)) {
104
+ map.delete(item.id);
105
+ } else {
106
+ appendBarrageItem(item, i);
107
+ }
108
+ });
109
+ map.forEach((item) => {
110
+ const index = barrageItems.findIndex((span) => span.dataset.id === String(item.id));
111
+ if (index > -1) {
112
+ barrageItems[index].remove();
113
+ barrageItems.splice(index, 1);
114
+ }
115
+ });
116
+ isInitBarrage.value = false;
117
+ };
118
+ (0, import_vue2.watch)(() => props.modelValue.slice(), (newValue, oldValue) => updateBarrages(newValue != null ? newValue : [], oldValue != null ? oldValue : []), {
119
+ deep: true
120
+ });
121
+ const rootStyle = (0, import_vue2.ref)({});
122
+ (0, import_vue2.onMounted)(() => __async(this, null, function* () {
123
+ var _a;
124
+ rootStyle.value["--move-distance"] = `-${(_a = barrageWrapper.value) == null ? void 0 : _a.offsetWidth}px`;
125
+ yield (0, import_vue2.nextTick)();
126
+ updateBarrages(props.modelValue, []);
127
+ }));
128
+ const play = () => {
129
+ isPlay.value = true;
130
+ barrageItems.forEach((item) => {
131
+ item.style.animationPlayState = "running";
132
+ });
133
+ };
134
+ const pause = () => {
135
+ isPlay.value = false;
136
+ barrageItems.forEach((item) => {
137
+ item.style.animationPlayState = "paused";
138
+ });
139
+ };
140
+ (0, import_use_expose.useExpose)({
141
+ play,
142
+ pause
143
+ });
144
+ return () => {
145
+ var _a;
146
+ return (0, import_vue.createVNode)("div", {
147
+ "class": bem(),
148
+ "ref": barrageWrapper,
149
+ "style": rootStyle.value
150
+ }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
151
+ };
152
+ }
153
+ });
@@ -0,0 +1 @@
1
+ :root{--van-barrage-font-size: 16px;--van-barrage-space: 10px;--van-barrage-font: inherit;--van-barrage-color: var(--van-white)}.van-barrage{position:relative;overflow:hidden}.van-barrage__item{position:absolute;top:0;right:0;z-index:99;padding-bottom:var(--van-barrage-space);opacity:.75;line-height:1;font-size:var(--van-barrage-font-size);font-family:var(--van-barrage-font);font-weight:700;white-space:nowrap;color:var(--van-barrage-color);text-shadow:1px 0 1px #000000,0 1px 1px #000000,0 -1px 1px #000000,-1px 0 1px #000000;-webkit-user-select:none;user-select:none;will-change:transform;transform:translate(110%)}@keyframes van-barrage{0%{transform:translate(110%)}to{transform:translate(var(--move-distance))}}
@@ -0,0 +1,69 @@
1
+ export declare const Barrage: import("../utils").WithInstall<import("vue").DefineComponent<{
2
+ top: {
3
+ type: (NumberConstructor | StringConstructor)[];
4
+ default: number;
5
+ };
6
+ rows: {
7
+ type: (NumberConstructor | StringConstructor)[];
8
+ default: number;
9
+ };
10
+ duration: {
11
+ type: (NumberConstructor | StringConstructor)[];
12
+ default: number;
13
+ };
14
+ autoPlay: {
15
+ type: BooleanConstructor;
16
+ default: true;
17
+ };
18
+ delay: {
19
+ type: NumberConstructor;
20
+ default: number;
21
+ };
22
+ modelValue: {
23
+ type: import("vue").PropType<import("./Barrage").BarrageItem[]>;
24
+ default: () => never[];
25
+ };
26
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
27
+ top: {
28
+ type: (NumberConstructor | StringConstructor)[];
29
+ default: number;
30
+ };
31
+ rows: {
32
+ type: (NumberConstructor | StringConstructor)[];
33
+ default: number;
34
+ };
35
+ duration: {
36
+ type: (NumberConstructor | StringConstructor)[];
37
+ default: number;
38
+ };
39
+ autoPlay: {
40
+ type: BooleanConstructor;
41
+ default: true;
42
+ };
43
+ delay: {
44
+ type: NumberConstructor;
45
+ default: number;
46
+ };
47
+ modelValue: {
48
+ type: import("vue").PropType<import("./Barrage").BarrageItem[]>;
49
+ default: () => never[];
50
+ };
51
+ }>> & {
52
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
53
+ }, {
54
+ top: string | number;
55
+ modelValue: import("./Barrage").BarrageItem[];
56
+ rows: string | number;
57
+ duration: string | number;
58
+ autoPlay: boolean;
59
+ delay: number;
60
+ }>>;
61
+ export default Barrage;
62
+ export { barrageProps } from './Barrage';
63
+ export type { BarrageProps, BarrageItem } from './Barrage';
64
+ export type { BarrageInstance } from './types';
65
+ declare module 'vue' {
66
+ interface GlobalComponents {
67
+ VanBarrage: typeof Barrage;
68
+ }
69
+ }
@@ -0,0 +1,39 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var stdin_exports = {};
29
+ __export(stdin_exports, {
30
+ Barrage: () => Barrage,
31
+ barrageProps: () => import_Barrage2.barrageProps,
32
+ default: () => stdin_default
33
+ });
34
+ module.exports = __toCommonJS(stdin_exports);
35
+ var import_utils = require("../utils");
36
+ var import_Barrage = __toESM(require("./Barrage"));
37
+ var import_Barrage2 = require("./Barrage");
38
+ const Barrage = (0, import_utils.withInstall)(import_Barrage.default);
39
+ var stdin_default = Barrage;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ require("../../style/base.css");
2
+ require("../index.css");
@@ -0,0 +1,7 @@
1
+ import { ComponentPublicInstance } from 'vue';
2
+ import { BarrageProps } from './Barrage';
3
+ export type BarrageExpose = {
4
+ play(): void;
5
+ pause(): void;
6
+ };
7
+ export type BarrageInstance = ComponentPublicInstance<BarrageProps, BarrageExpose>;
@@ -0,0 +1,15 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var stdin_exports = {};
15
+ module.exports = __toCommonJS(stdin_exports);
@@ -24,6 +24,7 @@ module.exports = __toCommonJS(stdin_exports);
24
24
  var import_vue = require("vue");
25
25
  var import_vue2 = require("vue");
26
26
  var import_utils = require("../utils");
27
+ var import_use_refs = require("../composables/use-refs");
27
28
  var import_tab = require("../tab");
28
29
  var import_tabs = require("../tabs");
29
30
  var import_icon = require("../icon");
@@ -50,6 +51,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
50
51
  }) {
51
52
  const tabs = (0, import_vue2.ref)([]);
52
53
  const activeTab = (0, import_vue2.ref)(0);
54
+ const [selectedElementRefs, setSelectedElementRefs] = (0, import_use_refs.useRefs)();
53
55
  const {
54
56
  text: textKey,
55
57
  value: valueKey,
@@ -168,6 +170,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
168
170
  selected
169
171
  }) : (0, import_vue.createVNode)("span", null, [option[textKey]]);
170
172
  return (0, import_vue.createVNode)("li", {
173
+ "ref": selected ? setSelectedElementRefs(tabIndex) : void 0,
171
174
  "role": "menuitemradio",
172
175
  "class": [bem("option", {
173
176
  selected,
@@ -224,7 +227,18 @@ var stdin_default = (0, import_vue2.defineComponent)({
224
227
  }, {
225
228
  default: () => [tabs.value.map(renderTab)]
226
229
  });
230
+ const scrollIntoView = (el) => {
231
+ const scrollParent = el.parentElement;
232
+ if (scrollParent) {
233
+ scrollParent.scrollTop = el.offsetTop - (scrollParent.offsetHeight - el.offsetHeight) / 2;
234
+ }
235
+ };
227
236
  updateTabs();
237
+ (0, import_vue2.watch)(activeTab, (value) => {
238
+ const el = selectedElementRefs.value[value];
239
+ if (el)
240
+ scrollIntoView(el);
241
+ });
228
242
  (0, import_vue2.watch)(() => props.options, updateTabs, {
229
243
  deep: true
230
244
  });
@@ -9,6 +9,8 @@ export type CheckerParent = {
9
9
  iconSize?: Numeric;
10
10
  direction?: CheckerDirection;
11
11
  checkedColor?: string;
12
+ modelValue?: unknown | unknown[];
13
+ max?: Numeric;
12
14
  };
13
15
  };
14
16
  export declare const checkerProps: {
@@ -54,7 +54,19 @@ var stdin_default = (0, import_vue2.defineComponent)({
54
54
  return props.parent.props[name];
55
55
  }
56
56
  };
57
- const disabled = (0, import_vue2.computed)(() => getParentProp("disabled") || props.disabled);
57
+ const disabled = (0, import_vue2.computed)(() => {
58
+ if (props.parent && props.bindGroup) {
59
+ const disabled2 = getParentProp("disabled") || props.disabled;
60
+ if (props.role === "checkbox") {
61
+ const checkedCount = getParentProp("modelValue").length;
62
+ const max = getParentProp("max");
63
+ const overlimit = max && checkedCount >= +max;
64
+ return disabled2 || overlimit && !props.checked;
65
+ }
66
+ return disabled2;
67
+ }
68
+ return props.disabled;
69
+ });
58
70
  const direction = (0, import_vue2.computed)(() => getParentProp("direction"));
59
71
  const iconStyle = (0, import_vue2.computed)(() => {
60
72
  const checkedColor = props.checkedColor || getParentProp("checkedColor");
@@ -52,7 +52,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
52
52
  const renderRightIcon = () => (0, import_vue.createVNode)(import_radio.Radio, {
53
53
  "class": bem("radio"),
54
54
  "name": item.id,
55
- "iconSize": 16
55
+ "iconSize": 18
56
56
  }, null);
57
57
  const renderEditIcon = () => (0, import_vue.createVNode)(import_icon.Icon, {
58
58
  "name": "edit",
@@ -1 +1 @@
1
- :root{--van-contact-list-edit-icon-size: 16px;--van-contact-list-add-button-z-index: 999;--van-contact-list-radio-color: var(--van-primary-color);--van-contact-list-item-padding: var(--van-padding-md)}.van-contact-list{box-sizing:border-box;height:100%;padding-bottom:80px}.van-contact-list__item{padding:var(--van-contact-list-item-padding)}.van-contact-list__item-title{display:flex;align-items:center;padding-right:var(--van-padding-xl);padding-left:var(--van-padding-xs)}.van-contact-list__item-tag{flex:none;margin-left:var(--van-padding-xs);padding-top:0;padding-bottom:0;line-height:1.4em}.van-contact-list__group{box-sizing:border-box;height:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch}.van-contact-list__edit{font-size:var(--van-contact-list-edit-icon-size)}.van-contact-list__radio .van-radio__icon--checked .van-icon{background-color:var(--van-contact-list-radio-color);border-color:var(--van-contact-list-radio-color)}.van-contact-list__bottom{position:fixed;right:0;bottom:0;left:0;z-index:var(--van-contact-list-add-button-z-index);padding-left:var(--van-padding-md);padding-right:var(--van-padding-md);background-color:var(--van-background-2)}.van-contact-list__add{height:40px;margin:5px 0}
1
+ :root{--van-contact-list-padding: var(--van-padding-sm) var(--van-padding-sm) 80px;--van-contact-list-edit-icon-size: 16px;--van-contact-list-add-button-z-index: 999;--van-contact-list-radio-color: var(--van-primary-color);--van-contact-list-item-padding: var(--van-padding-md)}.van-contact-list{box-sizing:border-box;height:100%;padding:var(--van-contact-list-padding)}.van-contact-list__item{padding:var(--van-contact-list-item-padding)}.van-contact-list__item-title{display:flex;align-items:center;padding-right:var(--van-padding-xl);padding-left:var(--van-padding-xs)}.van-contact-list__item-tag{flex:none;margin-left:var(--van-padding-xs);padding-top:0;padding-bottom:0;line-height:1.4em}.van-contact-list__group{box-sizing:border-box;height:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch;border-radius:var(--van-radius-lg)}.van-contact-list__edit{font-size:var(--van-contact-list-edit-icon-size)}.van-contact-list__radio .van-radio__icon--checked .van-icon{background-color:var(--van-contact-list-radio-color);border-color:var(--van-contact-list-radio-color)}.van-contact-list__bottom{position:fixed;right:0;bottom:0;left:0;z-index:var(--van-contact-list-add-button-z-index);padding-left:var(--van-padding-md);padding-right:var(--van-padding-md);background-color:var(--van-background-2)}.van-contact-list__add{height:40px;margin:5px 0}
@@ -53,6 +53,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
53
53
  slots
54
54
  }) {
55
55
  const currentValues = (0, import_vue2.ref)(props.modelValue);
56
+ const updatedByExternalSources = (0, import_vue2.ref)(false);
56
57
  const genYearOptions = () => {
57
58
  const minYear = props.minDate.getFullYear();
58
59
  const maxYear = props.maxDate.getFullYear();
@@ -68,7 +69,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
68
69
  columnsType
69
70
  } = props;
70
71
  const index = columnsType.indexOf(type);
71
- const value = currentValues.value[index];
72
+ const value = updatedByExternalSources.value ? props.modelValue[index] : currentValues.value[index];
72
73
  if (value) {
73
74
  return +value;
74
75
  }
@@ -114,11 +115,13 @@ var stdin_default = (0, import_vue2.defineComponent)({
114
115
  emit("update:modelValue", newValues);
115
116
  }
116
117
  });
117
- (0, import_vue2.watch)(() => props.modelValue, (newValues) => {
118
+ (0, import_vue2.watch)(() => props.modelValue, (newValues, oldValues) => {
119
+ updatedByExternalSources.value = (0, import_utils.isSameValue)(oldValues, currentValues.value);
118
120
  newValues = (0, import_utils2.formatValueRange)(newValues, columns.value);
119
121
  if (!(0, import_utils.isSameValue)(newValues, currentValues.value)) {
120
122
  currentValues.value = newValues;
121
123
  }
124
+ updatedByExternalSources.value = false;
122
125
  }, {
123
126
  immediate: true
124
127
  });
@@ -41,5 +41,5 @@ export declare const pickerInheritKeys: ("title" | "readonly" | "loading" | "all
41
41
  export declare function times<T>(n: number, iteratee: (index: number) => T): T[];
42
42
  export declare const getMonthEndDay: (year: number, month: number) => number;
43
43
  export declare const genOptions: <T extends string>(min: number, max: number, type: T, formatter: Formatter, filter?: Filter) => PickerOption[];
44
- export declare const formatValueRange: (values: string[], columns: PickerOption[]) => string[];
44
+ export declare const formatValueRange: (values: string[], columns: PickerOption[][]) => string[];
45
45
  export {};
@@ -1 +1 @@
1
- :root{--van-dialog-width: 320px;--van-dialog-small-screen-width: 90%;--van-dialog-font-size: var(--van-font-size-lg);--van-dialog-transition: var(--van-duration-base);--van-dialog-radius: 16px;--van-dialog-background: var(--van-background-2);--van-dialog-header-font-weight: var(--van-font-bold);--van-dialog-header-line-height: 24px;--van-dialog-header-padding-top: 26px;--van-dialog-header-isolated-padding: var(--van-padding-lg) 0;--van-dialog-message-padding: var(--van-padding-lg);--van-dialog-message-font-size: var(--van-font-size-md);--van-dialog-message-line-height: var(--van-line-height-md);--van-dialog-message-max-height: 60vh;--van-dialog-has-title-message-text-color: var(--van-gray-7);--van-dialog-has-title-message-padding-top: var(--van-padding-xs);--van-dialog-button-height: 48px;--van-dialog-round-button-height: 36px;--van-dialog-confirm-button-text-color: var(--van-primary-color)}.van-dialog{top:45%;width:var(--van-dialog-width);overflow:hidden;font-size:var(--van-dialog-font-size);background:var(--van-dialog-background);border-radius:var(--van-dialog-radius);-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:var(--van-dialog-transition);transition-property:transform,opacity}@media (max-width: 321px){.van-dialog{width:var(--van-dialog-small-screen-width)}}.van-dialog__header{color:var(--van-text-color);padding-top:var(--van-dialog-header-padding-top);font-weight:var(--van-dialog-header-font-weight);line-height:var(--van-dialog-header-line-height);text-align:center}.van-dialog__header--isolated{padding:var(--van-dialog-header-isolated-padding)}.van-dialog__content--isolated{display:flex;align-items:center;min-height:104px}.van-dialog__message{color:var(--van-text-color);flex:1;max-height:var(--van-dialog-message-max-height);padding:26px var(--van-dialog-message-padding);overflow-y:auto;font-size:var(--van-dialog-message-font-size);line-height:var(--van-dialog-message-line-height);white-space:pre-wrap;text-align:center;word-wrap:break-word;-webkit-overflow-scrolling:touch}.van-dialog__message--has-title{padding-top:var(--van-dialog-has-title-message-padding-top);color:var(--van-dialog-has-title-message-text-color)}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__message--justify{text-align:justify}.van-dialog__footer{display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-dialog__confirm,.van-dialog__cancel{flex:1;height:var(--van-dialog-button-height);margin:0;border:0}.van-dialog__confirm,.van-dialog__confirm:active{color:var(--van-dialog-confirm-button-text-color)}.van-dialog--round-button .van-dialog__footer{position:relative;height:auto;padding:var(--van-padding-xs) var(--van-padding-lg) var(--van-padding-md)}.van-dialog--round-button .van-dialog__message{padding-bottom:var(--van-padding-md);color:var(--van-text-color)}.van-dialog--round-button .van-dialog__confirm,.van-dialog--round-button .van-dialog__cancel{height:var(--van-dialog-round-button-height)}.van-dialog--round-button .van-dialog__confirm{color:var(--van-white)}.van-dialog-bounce-enter-from{transform:translate3d(0,-50%,0) scale(.7);opacity:0}.van-dialog-bounce-leave-active{transform:translate3d(0,-50%,0) scale(.9);opacity:0}
1
+ :root{--van-dialog-width: 320px;--van-dialog-small-screen-width: 90%;--van-dialog-font-size: var(--van-font-size-lg);--van-dialog-transition: var(--van-duration-base);--van-dialog-radius: 16px;--van-dialog-background: var(--van-background-2);--van-dialog-header-font-weight: var(--van-font-bold);--van-dialog-header-line-height: 24px;--van-dialog-header-padding-top: 26px;--van-dialog-header-isolated-padding: var(--van-padding-lg) 0;--van-dialog-message-padding: var(--van-padding-lg);--van-dialog-message-font-size: var(--van-font-size-md);--van-dialog-message-line-height: var(--van-line-height-md);--van-dialog-message-max-height: 60vh;--van-dialog-has-title-message-text-color: var(--van-gray-7);--van-dialog-has-title-message-padding-top: var(--van-padding-xs);--van-dialog-button-height: 48px;--van-dialog-round-button-height: 36px;--van-dialog-confirm-button-text-color: var(--van-primary-color)}.van-dialog{top:45%;width:var(--van-dialog-width);overflow:hidden;font-size:var(--van-dialog-font-size);background:var(--van-dialog-background);border-radius:var(--van-dialog-radius);-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:var(--van-dialog-transition);transition-property:transform,opacity}@media (max-width: 321px){.van-dialog{width:var(--van-dialog-small-screen-width)}}.van-dialog__header{color:var(--van-text-color);padding-top:var(--van-dialog-header-padding-top);font-weight:var(--van-dialog-header-font-weight);line-height:var(--van-dialog-header-line-height);text-align:center}.van-dialog__header--isolated{padding:var(--van-dialog-header-isolated-padding)}.van-dialog__content--isolated{display:flex;align-items:center;min-height:104px}.van-dialog__message{color:var(--van-text-color);flex:1;max-height:var(--van-dialog-message-max-height);padding:26px var(--van-dialog-message-padding);overflow-y:auto;font-size:var(--van-dialog-message-font-size);line-height:var(--van-dialog-message-line-height);white-space:pre-wrap;text-align:center;word-wrap:break-word;-webkit-overflow-scrolling:touch}.van-dialog__message--has-title{padding-top:var(--van-dialog-has-title-message-padding-top);color:var(--van-dialog-has-title-message-text-color)}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__message--justify{text-align:justify}.van-dialog__footer{display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-dialog__confirm,.van-dialog__cancel{flex:1;height:var(--van-dialog-button-height);margin:0;border:0;border-radius:0}.van-dialog__confirm,.van-dialog__confirm:active{color:var(--van-dialog-confirm-button-text-color)}.van-dialog--round-button .van-dialog__footer{position:relative;height:auto;padding:var(--van-padding-xs) var(--van-padding-lg) var(--van-padding-md)}.van-dialog--round-button .van-dialog__message{padding-bottom:var(--van-padding-md);color:var(--van-text-color)}.van-dialog--round-button .van-dialog__confirm,.van-dialog--round-button .van-dialog__cancel{height:var(--van-dialog-round-button-height)}.van-dialog--round-button .van-dialog__confirm{color:var(--van-white)}.van-dialog--round-button .van-action-bar-button--first{border-top-left-radius:var(--van-radius-max);border-bottom-left-radius:var(--van-radius-max)}.van-dialog--round-button .van-action-bar-button--last{border-top-right-radius:var(--van-radius-max);border-bottom-right-radius:var(--van-radius-max)}.van-dialog-bounce-enter-from{transform:translate3d(0,-50%,0) scale(.7);opacity:0}.van-dialog-bounce-leave-active{transform:translate3d(0,-50%,0) scale(.9);opacity:0}
@@ -6,6 +6,7 @@ export declare const dividerProps: {
6
6
  type: BooleanConstructor;
7
7
  default: true;
8
8
  };
9
+ vertical: BooleanConstructor;
9
10
  contentPosition: {
10
11
  type: import("vue").PropType<DividerContentPosition>;
11
12
  default: DividerContentPosition;
@@ -18,6 +19,7 @@ declare const _default: import("vue").DefineComponent<{
18
19
  type: BooleanConstructor;
19
20
  default: true;
20
21
  };
22
+ vertical: BooleanConstructor;
21
23
  contentPosition: {
22
24
  type: import("vue").PropType<DividerContentPosition>;
23
25
  default: DividerContentPosition;
@@ -28,11 +30,13 @@ declare const _default: import("vue").DefineComponent<{
28
30
  type: BooleanConstructor;
29
31
  default: true;
30
32
  };
33
+ vertical: BooleanConstructor;
31
34
  contentPosition: {
32
35
  type: import("vue").PropType<DividerContentPosition>;
33
36
  default: DividerContentPosition;
34
37
  };
35
38
  }>>, {
39
+ vertical: boolean;
36
40
  hairline: boolean;
37
41
  dashed: boolean;
38
42
  contentPosition: DividerContentPosition;
@@ -28,6 +28,7 @@ const [name, bem] = (0, import_utils.createNamespace)("divider");
28
28
  const dividerProps = {
29
29
  dashed: Boolean,
30
30
  hairline: import_utils.truthProp,
31
+ vertical: Boolean,
31
32
  contentPosition: (0, import_utils.makeStringProp)("center")
32
33
  };
33
34
  var stdin_default = (0, import_vue2.defineComponent)({
@@ -43,9 +44,10 @@ var stdin_default = (0, import_vue2.defineComponent)({
43
44
  "class": bem({
44
45
  dashed: props.dashed,
45
46
  hairline: props.hairline,
46
- [`content-${props.contentPosition}`]: !!slots.default
47
+ vertical: props.vertical,
48
+ [`content-${props.contentPosition}`]: !!slots.default && !props.vertical
47
49
  })
48
- }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
50
+ }, [!props.vertical && ((_a = slots.default) == null ? void 0 : _a.call(slots))]);
49
51
  };
50
52
  }
51
53
  });
@@ -1 +1 @@
1
- :root{--van-divider-margin: var(--van-padding-md) 0;--van-divider-text-color: var(--van-text-color-2);--van-divider-font-size: var(--van-font-size-md);--van-divider-line-height: 24px;--van-divider-border-color: var(--van-border-color);--van-divider-content-padding: var(--van-padding-md);--van-divider-content-left-width: 10%;--van-divider-content-right-width: 10%}.van-divider{display:flex;align-items:center;margin:var(--van-divider-margin);color:var(--van-divider-text-color);font-size:var(--van-divider-font-size);line-height:var(--van-divider-line-height);border-color:var(--van-divider-border-color);border-style:solid;border-width:0}.van-divider:before,.van-divider:after{display:block;flex:1;box-sizing:border-box;height:1px;border-color:inherit;border-style:inherit;border-width:var(--van-border-width) 0 0}.van-divider:before{content:""}.van-divider--hairline:before,.van-divider--hairline:after{transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--content-center:before,.van-divider--content-left:before,.van-divider--content-right:before{margin-right:var(--van-divider-content-padding)}.van-divider--content-center:after,.van-divider--content-left:after,.van-divider--content-right:after{margin-left:var(--van-divider-content-padding);content:""}.van-divider--content-left:before{max-width:var(--van-divider-content-left-width)}.van-divider--content-right:after{max-width:var(--van-divider-content-right-width)}
1
+ :root{--van-divider-margin: var(--van-padding-md) 0;--van-divider-vertical-margin: 0 var(--van-padding-xs);--van-divider-text-color: var(--van-text-color-2);--van-divider-font-size: var(--van-font-size-md);--van-divider-line-height: 24px;--van-divider-border-color: var(--van-border-color);--van-divider-content-padding: var(--van-padding-md);--van-divider-content-left-width: 10%;--van-divider-content-right-width: 10%}.van-divider{display:flex;align-items:center;margin:var(--van-divider-margin);color:var(--van-divider-text-color);font-size:var(--van-divider-font-size);line-height:var(--van-divider-line-height);border-color:var(--van-divider-border-color);border-style:solid;border-width:0}.van-divider:before,.van-divider:after{display:block;flex:1;box-sizing:border-box;height:1px;border-color:inherit;border-style:inherit;border-width:var(--van-border-width) 0 0}.van-divider:before{content:""}.van-divider--hairline:before,.van-divider--hairline:after{transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--content-center:before,.van-divider--content-left:before,.van-divider--content-right:before{margin-right:var(--van-divider-content-padding)}.van-divider--content-center:after,.van-divider--content-left:after,.van-divider--content-right:after{margin-left:var(--van-divider-content-padding);content:""}.van-divider--content-left:before{max-width:var(--van-divider-content-left-width)}.van-divider--content-right:after{max-width:var(--van-divider-content-right-width)}.van-divider--vertical{display:inline-block;width:var(--van-border-width);height:1em;margin:var(--van-divider-vertical-margin);vertical-align:middle}.van-divider--vertical:before{height:100%;border-width:0 0 0 var(--van-border-width)}.van-divider--vertical:after{display:none}.van-divider--vertical.van-divider--hairline:before{transform:scaleX(.5)}
@@ -4,6 +4,7 @@ export declare const Divider: import("../utils").WithInstall<import("vue").Defin
4
4
  type: BooleanConstructor;
5
5
  default: true;
6
6
  };
7
+ vertical: BooleanConstructor;
7
8
  contentPosition: {
8
9
  type: import("vue").PropType<import("./Divider").DividerContentPosition>;
9
10
  default: import("./Divider").DividerContentPosition;
@@ -14,11 +15,13 @@ export declare const Divider: import("../utils").WithInstall<import("vue").Defin
14
15
  type: BooleanConstructor;
15
16
  default: true;
16
17
  };
18
+ vertical: BooleanConstructor;
17
19
  contentPosition: {
18
20
  type: import("vue").PropType<import("./Divider").DividerContentPosition>;
19
21
  default: import("./Divider").DividerContentPosition;
20
22
  };
21
23
  }>>, {
24
+ vertical: boolean;
22
25
  hairline: boolean;
23
26
  dashed: boolean;
24
27
  contentPosition: import("./Divider").DividerContentPosition;
@@ -452,6 +452,10 @@ var stdin_default = (0, import_vue2.defineComponent)({
452
452
  return (0, import_vue.createVNode)("label", {
453
453
  "id": `${id}-label`,
454
454
  "for": getInputId(),
455
+ "onClick": (event) => {
456
+ (0, import_utils.preventDefault)(event);
457
+ focus();
458
+ },
455
459
  "style": labelAlign === "top" && labelWidth ? {
456
460
  width: (0, import_utils.addUnit)(labelWidth)
457
461
  } : void 0