vant 4.1.2 → 4.2.1

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 (71) hide show
  1. package/es/index.d.ts +2 -1
  2. package/es/index.mjs +5 -2
  3. package/es/pagination/Pagination.d.ts +26 -0
  4. package/es/pagination/Pagination.mjs +14 -4
  5. package/es/pagination/index.css +1 -1
  6. package/es/pagination/index.d.ts +18 -0
  7. package/es/picker/Picker.d.ts +2 -1
  8. package/es/picker/Picker.mjs +16 -6
  9. package/es/picker/PickerColumn.d.ts +2 -1
  10. package/es/picker/PickerColumn.mjs +10 -4
  11. package/es/picker/index.d.ts +2 -1
  12. package/es/share-sheet/ShareSheet.mjs +11 -10
  13. package/es/sticky/Sticky.mjs +20 -4
  14. package/es/swipe/Swipe.mjs +1 -1
  15. package/es/tab/Tab.mjs +24 -6
  16. package/es/{tabs/TabsTitle.d.ts → tab/TabTitle.d.ts} +1 -2
  17. package/es/{tabs/TabsTitle.mjs → tab/TabTitle.mjs} +2 -2
  18. package/es/tabs/Tabs.d.ts +1 -1
  19. package/es/tabs/Tabs.mjs +15 -30
  20. package/es/tabs/index.d.ts +1 -1
  21. package/es/tabs/style/index.mjs +0 -1
  22. package/es/tabs/types.d.ts +3 -1
  23. package/es/text-ellipsis/TextEllipsis.d.ts +13 -0
  24. package/es/text-ellipsis/TextEllipsis.mjs +4 -3
  25. package/es/text-ellipsis/index.d.ts +9 -0
  26. package/es/watermark/Watermark.d.ts +112 -0
  27. package/es/watermark/Watermark.mjs +133 -0
  28. package/es/watermark/index.css +1 -0
  29. package/es/watermark/index.d.ts +83 -0
  30. package/es/watermark/index.mjs +10 -0
  31. package/es/watermark/style/index.d.ts +1 -0
  32. package/es/watermark/style/index.mjs +2 -0
  33. package/lib/index.css +1 -1
  34. package/lib/index.d.ts +2 -1
  35. package/lib/index.js +5 -2
  36. package/lib/pagination/Pagination.d.ts +26 -0
  37. package/lib/pagination/Pagination.js +13 -3
  38. package/lib/pagination/index.css +1 -1
  39. package/lib/pagination/index.d.ts +18 -0
  40. package/lib/picker/Picker.d.ts +2 -1
  41. package/lib/picker/Picker.js +16 -6
  42. package/lib/picker/PickerColumn.d.ts +2 -1
  43. package/lib/picker/PickerColumn.js +9 -3
  44. package/lib/picker/index.d.ts +2 -1
  45. package/lib/share-sheet/ShareSheet.js +11 -10
  46. package/lib/sticky/Sticky.js +18 -2
  47. package/lib/swipe/Swipe.js +1 -1
  48. package/lib/tab/Tab.js +21 -3
  49. package/lib/{tabs/TabsTitle.d.ts → tab/TabTitle.d.ts} +1 -2
  50. package/lib/{tabs/TabsTitle.js → tab/TabTitle.js} +2 -2
  51. package/lib/tabs/Tabs.d.ts +1 -1
  52. package/lib/tabs/Tabs.js +13 -28
  53. package/lib/tabs/index.d.ts +1 -1
  54. package/lib/tabs/style/index.js +0 -1
  55. package/lib/tabs/types.d.ts +3 -1
  56. package/lib/text-ellipsis/TextEllipsis.d.ts +13 -0
  57. package/lib/text-ellipsis/TextEllipsis.js +4 -3
  58. package/lib/text-ellipsis/index.d.ts +9 -0
  59. package/lib/vant.cjs.js +1158 -981
  60. package/lib/vant.es.js +1160 -983
  61. package/lib/vant.js +1159 -982
  62. package/lib/vant.min.js +1 -1
  63. package/lib/watermark/Watermark.d.ts +112 -0
  64. package/lib/watermark/Watermark.js +152 -0
  65. package/lib/watermark/index.css +1 -0
  66. package/lib/watermark/index.d.ts +83 -0
  67. package/lib/watermark/index.js +39 -0
  68. package/lib/watermark/style/index.d.ts +1 -0
  69. package/lib/watermark/style/index.js +2 -0
  70. package/lib/web-types.json +1 -1
  71. package/package.json +1 -1
@@ -12,9 +12,11 @@ export type TabsProvide = {
12
12
  id: string;
13
13
  props: TabsProps;
14
14
  setLine: () => void;
15
+ scrollable: ComputedRef<boolean>;
15
16
  onRendered: (name: Numeric, title?: string) => void;
16
- scrollIntoView: (immediate?: boolean) => void;
17
17
  currentName: ComputedRef<Numeric | undefined>;
18
+ setTitleRefs: (index: number) => (el: unknown) => void;
19
+ scrollIntoView: (immediate?: boolean) => void;
18
20
  };
19
21
  export type TabsExpose = {
20
22
  resize: () => void;
@@ -4,6 +4,10 @@ export declare const textEllipsisProps: {
4
4
  type: (NumberConstructor | StringConstructor)[];
5
5
  default: number;
6
6
  };
7
+ dots: {
8
+ type: import("vue").PropType<string>;
9
+ default: string;
10
+ };
7
11
  content: {
8
12
  type: import("vue").PropType<string>;
9
13
  default: string;
@@ -23,6 +27,10 @@ declare const _default: import("vue").DefineComponent<{
23
27
  type: (NumberConstructor | StringConstructor)[];
24
28
  default: number;
25
29
  };
30
+ dots: {
31
+ type: import("vue").PropType<string>;
32
+ default: string;
33
+ };
26
34
  content: {
27
35
  type: import("vue").PropType<string>;
28
36
  default: string;
@@ -40,6 +48,10 @@ declare const _default: import("vue").DefineComponent<{
40
48
  type: (NumberConstructor | StringConstructor)[];
41
49
  default: number;
42
50
  };
51
+ dots: {
52
+ type: import("vue").PropType<string>;
53
+ default: string;
54
+ };
43
55
  content: {
44
56
  type: import("vue").PropType<string>;
45
57
  default: string;
@@ -57,6 +69,7 @@ declare const _default: import("vue").DefineComponent<{
57
69
  }, {
58
70
  content: string;
59
71
  rows: string | number;
72
+ dots: string;
60
73
  expandText: string;
61
74
  collapseText: string;
62
75
  }>;
@@ -5,6 +5,7 @@ import { makeNumericProp, makeStringProp, createNamespace } from "../utils/index
5
5
  const [name, bem] = createNamespace("text-ellipsis");
6
6
  const textEllipsisProps = {
7
7
  rows: makeNumericProp(1),
8
+ dots: makeStringProp("..."),
8
9
  content: makeStringProp(""),
9
10
  expandText: makeStringProp(""),
10
11
  collapseText: makeStringProp("")
@@ -48,16 +49,16 @@ var stdin_default = defineComponent({
48
49
  };
49
50
  const calcEllipsisText = (container2, maxHeight2) => {
50
51
  const {
52
+ dots,
51
53
  content,
52
54
  expandText
53
55
  } = props;
54
- const dot = "...";
55
56
  let left = 0;
56
57
  let right = content.length;
57
58
  let res = -1;
58
59
  while (left <= right) {
59
60
  const mid = Math.floor((left + right) / 2);
60
- container2.innerText = content.slice(0, mid) + dot + expandText;
61
+ container2.innerText = content.slice(0, mid) + dots + expandText;
61
62
  if (container2.offsetHeight <= maxHeight2) {
62
63
  left = mid + 1;
63
64
  res = mid;
@@ -65,7 +66,7 @@ var stdin_default = defineComponent({
65
66
  right = mid - 1;
66
67
  }
67
68
  }
68
- return content.slice(0, res) + dot;
69
+ return content.slice(0, res) + dots;
69
70
  };
70
71
  const container = cloneContainer();
71
72
  if (!container)
@@ -3,6 +3,10 @@ export declare const TextEllipsis: import("../utils").WithInstall<import("vue").
3
3
  type: (NumberConstructor | StringConstructor)[];
4
4
  default: number;
5
5
  };
6
+ dots: {
7
+ type: import("vue").PropType<string>;
8
+ default: string;
9
+ };
6
10
  content: {
7
11
  type: import("vue").PropType<string>;
8
12
  default: string;
@@ -20,6 +24,10 @@ export declare const TextEllipsis: import("../utils").WithInstall<import("vue").
20
24
  type: (NumberConstructor | StringConstructor)[];
21
25
  default: number;
22
26
  };
27
+ dots: {
28
+ type: import("vue").PropType<string>;
29
+ default: string;
30
+ };
23
31
  content: {
24
32
  type: import("vue").PropType<string>;
25
33
  default: string;
@@ -37,6 +45,7 @@ export declare const TextEllipsis: import("../utils").WithInstall<import("vue").
37
45
  }, {
38
46
  content: string;
39
47
  rows: string | number;
48
+ dots: string;
40
49
  expandText: string;
41
50
  collapseText: string;
42
51
  }>>;
@@ -0,0 +1,112 @@
1
+ import { type ExtractPropTypes } from 'vue';
2
+ export declare const watermarkProps: {
3
+ gapX: {
4
+ type: NumberConstructor;
5
+ default: number;
6
+ };
7
+ gapY: {
8
+ type: NumberConstructor;
9
+ default: number;
10
+ };
11
+ image: StringConstructor;
12
+ width: {
13
+ type: NumberConstructor;
14
+ default: number;
15
+ };
16
+ height: {
17
+ type: NumberConstructor;
18
+ default: number;
19
+ };
20
+ rotate: {
21
+ type: (NumberConstructor | StringConstructor)[];
22
+ default: number;
23
+ };
24
+ zIndex: (NumberConstructor | StringConstructor)[];
25
+ content: StringConstructor;
26
+ opacity: (NumberConstructor | StringConstructor)[];
27
+ fullPage: {
28
+ type: BooleanConstructor;
29
+ default: true;
30
+ };
31
+ textColor: {
32
+ type: import("vue").PropType<string>;
33
+ default: string;
34
+ };
35
+ };
36
+ export type WatermarkProps = ExtractPropTypes<typeof watermarkProps>;
37
+ declare const _default: import("vue").DefineComponent<{
38
+ gapX: {
39
+ type: NumberConstructor;
40
+ default: number;
41
+ };
42
+ gapY: {
43
+ type: NumberConstructor;
44
+ default: number;
45
+ };
46
+ image: StringConstructor;
47
+ width: {
48
+ type: NumberConstructor;
49
+ default: number;
50
+ };
51
+ height: {
52
+ type: NumberConstructor;
53
+ default: number;
54
+ };
55
+ rotate: {
56
+ type: (NumberConstructor | StringConstructor)[];
57
+ default: number;
58
+ };
59
+ zIndex: (NumberConstructor | StringConstructor)[];
60
+ content: StringConstructor;
61
+ opacity: (NumberConstructor | StringConstructor)[];
62
+ fullPage: {
63
+ type: BooleanConstructor;
64
+ default: true;
65
+ };
66
+ textColor: {
67
+ type: import("vue").PropType<string>;
68
+ default: string;
69
+ };
70
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
71
+ gapX: {
72
+ type: NumberConstructor;
73
+ default: number;
74
+ };
75
+ gapY: {
76
+ type: NumberConstructor;
77
+ default: number;
78
+ };
79
+ image: StringConstructor;
80
+ width: {
81
+ type: NumberConstructor;
82
+ default: number;
83
+ };
84
+ height: {
85
+ type: NumberConstructor;
86
+ default: number;
87
+ };
88
+ rotate: {
89
+ type: (NumberConstructor | StringConstructor)[];
90
+ default: number;
91
+ };
92
+ zIndex: (NumberConstructor | StringConstructor)[];
93
+ content: StringConstructor;
94
+ opacity: (NumberConstructor | StringConstructor)[];
95
+ fullPage: {
96
+ type: BooleanConstructor;
97
+ default: true;
98
+ };
99
+ textColor: {
100
+ type: import("vue").PropType<string>;
101
+ default: string;
102
+ };
103
+ }>>, {
104
+ width: number;
105
+ height: number;
106
+ textColor: string;
107
+ rotate: string | number;
108
+ gapX: number;
109
+ gapY: number;
110
+ fullPage: boolean;
111
+ }>;
112
+ export default _default;
@@ -0,0 +1,133 @@
1
+ import { createVNode as _createVNode } from "vue";
2
+ import { defineComponent, nextTick, onUnmounted, ref, watch, watchEffect } from "vue";
3
+ import { extend, truthProp, numericProp, createNamespace, getZIndexStyle, makeNumberProp, makeNumericProp, makeStringProp } from "../utils/index.mjs";
4
+ const [name, bem] = createNamespace("watermark");
5
+ const watermarkProps = {
6
+ gapX: makeNumberProp(0),
7
+ gapY: makeNumberProp(0),
8
+ image: String,
9
+ width: makeNumberProp(100),
10
+ height: makeNumberProp(100),
11
+ rotate: makeNumericProp(-22),
12
+ zIndex: numericProp,
13
+ content: String,
14
+ opacity: numericProp,
15
+ fullPage: truthProp,
16
+ textColor: makeStringProp("#dcdee0")
17
+ };
18
+ var stdin_default = defineComponent({
19
+ name,
20
+ props: watermarkProps,
21
+ setup(props, {
22
+ slots
23
+ }) {
24
+ const svgElRef = ref();
25
+ const watermarkUrl = ref("");
26
+ const imageBase64 = ref("");
27
+ const renderWatermark = () => {
28
+ const rotateStyle = {
29
+ transformOrigin: "center",
30
+ transform: `rotate(${props.rotate}deg)`
31
+ };
32
+ const svgInner = () => {
33
+ if (props.image && !slots.content) {
34
+ return _createVNode("image", {
35
+ "href": imageBase64.value,
36
+ "xlink:href": imageBase64.value,
37
+ "x": "0",
38
+ "y": "0",
39
+ "width": props.width,
40
+ "height": props.height,
41
+ "style": rotateStyle
42
+ }, null);
43
+ }
44
+ return _createVNode("foreignObject", {
45
+ "x": "0",
46
+ "y": "0",
47
+ "width": props.width,
48
+ "height": props.height
49
+ }, [_createVNode("div", {
50
+ "xmlns": "http://www.w3.org/1999/xhtml",
51
+ "style": rotateStyle
52
+ }, [slots.content ? slots.content() : _createVNode("span", {
53
+ "style": {
54
+ color: props.textColor
55
+ }
56
+ }, [props.content])])]);
57
+ };
58
+ const svgWidth = props.width + props.gapX;
59
+ const svgHeight = props.height + props.gapY;
60
+ return _createVNode("svg", {
61
+ "viewBox": `0 0 ${svgWidth} ${svgHeight}`,
62
+ "width": svgWidth,
63
+ "height": svgHeight,
64
+ "xmlns": "http://www.w3.org/2000/svg",
65
+ "xmlns:xlink": "http://www.w3.org/1999/xlink",
66
+ "style": {
67
+ padding: `0 ${props.gapX}px ${props.gapY}px 0`,
68
+ opacity: props.opacity
69
+ }
70
+ }, [svgInner()]);
71
+ };
72
+ const makeImageToBase64 = (url) => {
73
+ const canvas = document.createElement("canvas");
74
+ const image = new Image();
75
+ image.crossOrigin = "anonymous";
76
+ image.referrerPolicy = "no-referrer";
77
+ image.onload = () => {
78
+ canvas.width = image.naturalWidth;
79
+ canvas.height = image.naturalHeight;
80
+ const ctx = canvas.getContext("2d");
81
+ ctx == null ? void 0 : ctx.drawImage(image, 0, 0);
82
+ imageBase64.value = canvas.toDataURL();
83
+ };
84
+ image.src = url;
85
+ };
86
+ const makeSvgToBlobUrl = (svgStr) => {
87
+ const svgBlob = new Blob([svgStr], {
88
+ type: "image/svg+xml"
89
+ });
90
+ return URL.createObjectURL(svgBlob);
91
+ };
92
+ watchEffect(() => {
93
+ if (props.image) {
94
+ makeImageToBase64(props.image);
95
+ }
96
+ });
97
+ watch(() => [imageBase64.value, props.content, props.textColor, props.height, props.width, props.rotate, props.gapX, props.gapY], () => {
98
+ nextTick(() => {
99
+ if (svgElRef.value) {
100
+ if (watermarkUrl.value) {
101
+ URL.revokeObjectURL(watermarkUrl.value);
102
+ }
103
+ watermarkUrl.value = makeSvgToBlobUrl(svgElRef.value.innerHTML);
104
+ }
105
+ });
106
+ }, {
107
+ immediate: true
108
+ });
109
+ onUnmounted(() => {
110
+ if (watermarkUrl.value) {
111
+ URL.revokeObjectURL(watermarkUrl.value);
112
+ }
113
+ });
114
+ return () => {
115
+ const style = extend({
116
+ backgroundImage: `url(${watermarkUrl.value})`
117
+ }, getZIndexStyle(props.zIndex));
118
+ return _createVNode("div", {
119
+ "class": bem({
120
+ full: props.fullPage
121
+ }),
122
+ "style": style
123
+ }, [_createVNode("div", {
124
+ "class": bem("wrapper"),
125
+ "ref": svgElRef
126
+ }, [renderWatermark()])]);
127
+ };
128
+ }
129
+ });
130
+ export {
131
+ stdin_default as default,
132
+ watermarkProps
133
+ };
@@ -0,0 +1 @@
1
+ :root{--van-watermark-z-index: 100}.van-watermark{position:absolute;height:100%;width:100%;left:0;top:0;z-index:var(--van-watermark-z-index);background-repeat:repeat;pointer-events:none}.van-watermark__wrapper{display:none}.van-watermark--full{position:fixed}
@@ -0,0 +1,83 @@
1
+ export declare const Watermark: import("../utils").WithInstall<import("vue").DefineComponent<{
2
+ gapX: {
3
+ type: NumberConstructor;
4
+ default: number;
5
+ };
6
+ gapY: {
7
+ type: NumberConstructor;
8
+ default: number;
9
+ };
10
+ image: StringConstructor;
11
+ width: {
12
+ type: NumberConstructor;
13
+ default: number;
14
+ };
15
+ height: {
16
+ type: NumberConstructor;
17
+ default: number;
18
+ };
19
+ rotate: {
20
+ type: (NumberConstructor | StringConstructor)[];
21
+ default: number;
22
+ };
23
+ zIndex: (NumberConstructor | StringConstructor)[];
24
+ content: StringConstructor;
25
+ opacity: (NumberConstructor | StringConstructor)[];
26
+ fullPage: {
27
+ type: BooleanConstructor;
28
+ default: true;
29
+ };
30
+ textColor: {
31
+ type: import("vue").PropType<string>;
32
+ default: string;
33
+ };
34
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
35
+ gapX: {
36
+ type: NumberConstructor;
37
+ default: number;
38
+ };
39
+ gapY: {
40
+ type: NumberConstructor;
41
+ default: number;
42
+ };
43
+ image: StringConstructor;
44
+ width: {
45
+ type: NumberConstructor;
46
+ default: number;
47
+ };
48
+ height: {
49
+ type: NumberConstructor;
50
+ default: number;
51
+ };
52
+ rotate: {
53
+ type: (NumberConstructor | StringConstructor)[];
54
+ default: number;
55
+ };
56
+ zIndex: (NumberConstructor | StringConstructor)[];
57
+ content: StringConstructor;
58
+ opacity: (NumberConstructor | StringConstructor)[];
59
+ fullPage: {
60
+ type: BooleanConstructor;
61
+ default: true;
62
+ };
63
+ textColor: {
64
+ type: import("vue").PropType<string>;
65
+ default: string;
66
+ };
67
+ }>>, {
68
+ width: number;
69
+ height: number;
70
+ textColor: string;
71
+ rotate: string | number;
72
+ gapX: number;
73
+ gapY: number;
74
+ fullPage: boolean;
75
+ }>>;
76
+ export default Watermark;
77
+ export { watermarkProps } from './Watermark';
78
+ export type { WatermarkProps } from './Watermark';
79
+ declare module 'vue' {
80
+ interface GlobalComponents {
81
+ VanWatermark: typeof Watermark;
82
+ }
83
+ }
@@ -0,0 +1,10 @@
1
+ import { withInstall } from "../utils/index.mjs";
2
+ import _Watermark from "./Watermark.mjs";
3
+ const Watermark = withInstall(_Watermark);
4
+ var stdin_default = Watermark;
5
+ import { watermarkProps } from "./Watermark.mjs";
6
+ export {
7
+ Watermark,
8
+ stdin_default as default,
9
+ watermarkProps
10
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import "../../style/base.css";
2
+ import "../index.css";