vant 4.0.10 → 4.1.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.
- package/README.md +15 -10
- package/es/back-top/BackTop.d.ts +3 -0
- package/es/back-top/BackTop.mjs +3 -2
- package/es/back-top/index.css +1 -1
- package/es/back-top/index.d.ts +2 -0
- package/es/back-top/types.d.ts +3 -0
- package/es/dropdown-item/DropdownItem.mjs +1 -0
- package/es/dropdown-menu/DropdownMenu.mjs +2 -2
- package/es/dropdown-menu/types.d.ts +1 -0
- package/es/field/index.css +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.mjs +4 -1
- package/es/locale/lang/uk-UA.mjs +15 -15
- package/es/picker/PickerColumn.mjs +1 -1
- package/es/picker-group/PickerGroup.mjs +5 -4
- package/es/popover/Popover.mjs +9 -1
- package/es/popover/index.css +1 -1
- package/es/space/Space.mjs +2 -2
- package/es/swipe/Swipe.mjs +6 -2
- package/es/tabs/Tabs.mjs +2 -0
- package/es/text-ellipsis/TextEllipsis.d.ts +63 -0
- package/es/text-ellipsis/TextEllipsis.mjs +108 -0
- package/es/text-ellipsis/index.css +1 -0
- package/es/text-ellipsis/index.d.ts +51 -0
- package/es/text-ellipsis/index.mjs +10 -0
- package/es/text-ellipsis/style/index.d.ts +1 -0
- package/es/text-ellipsis/style/index.mjs +2 -0
- package/es/text-ellipsis/types.d.ts +3 -0
- package/es/text-ellipsis/types.mjs +0 -0
- package/es/tree-select/TreeSelect.mjs +3 -2
- package/lib/back-top/BackTop.d.ts +3 -0
- package/lib/back-top/BackTop.js +2 -1
- package/lib/back-top/index.css +1 -1
- package/lib/back-top/index.d.ts +2 -0
- package/lib/back-top/types.d.ts +3 -0
- package/lib/dropdown-item/DropdownItem.js +1 -0
- package/lib/dropdown-menu/DropdownMenu.js +2 -2
- package/lib/dropdown-menu/types.d.ts +1 -0
- package/lib/field/index.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +4 -1
- package/lib/locale/lang/uk-UA.js +15 -15
- package/lib/picker/PickerColumn.js +1 -1
- package/lib/picker-group/PickerGroup.js +3 -2
- package/lib/popover/Popover.js +8 -0
- package/lib/popover/index.css +1 -1
- package/lib/space/Space.js +1 -1
- package/lib/swipe/Swipe.js +6 -2
- package/lib/tabs/Tabs.js +2 -0
- package/lib/text-ellipsis/TextEllipsis.d.ts +63 -0
- package/lib/text-ellipsis/TextEllipsis.js +127 -0
- package/lib/text-ellipsis/index.css +1 -0
- package/lib/text-ellipsis/index.d.ts +51 -0
- package/lib/text-ellipsis/index.js +35 -0
- package/lib/text-ellipsis/style/index.d.ts +1 -0
- package/lib/text-ellipsis/style/index.js +2 -0
- package/lib/text-ellipsis/types.d.ts +3 -0
- package/lib/text-ellipsis/types.js +15 -0
- package/lib/tree-select/TreeSelect.js +3 -2
- package/lib/vant.cjs.js +970 -849
- package/lib/vant.es.js +966 -845
- package/lib/vant.js +984 -850
- package/lib/vant.min.js +1 -1
- package/lib/web-types.json +1 -1
- package/package.json +2 -2
package/lib/index.d.ts
CHANGED
@@ -88,6 +88,7 @@ export * from "./tabbar";
|
|
88
88
|
export * from "./tabbar-item";
|
89
89
|
export * from "./tabs";
|
90
90
|
export * from "./tag";
|
91
|
+
export * from "./text-ellipsis";
|
91
92
|
export * from "./time-picker";
|
92
93
|
export * from "./toast";
|
93
94
|
export * from "./tree-select";
|
@@ -98,4 +99,4 @@ declare namespace _default {
|
|
98
99
|
}
|
99
100
|
export default _default;
|
100
101
|
export function install(app: any): void;
|
101
|
-
export const version: "4.0
|
102
|
+
export const version: "4.1.0";
|
package/lib/index.js
CHANGED
@@ -112,6 +112,7 @@ var import_tabbar = require("./tabbar");
|
|
112
112
|
var import_tabbar_item = require("./tabbar-item");
|
113
113
|
var import_tabs = require("./tabs");
|
114
114
|
var import_tag = require("./tag");
|
115
|
+
var import_text_ellipsis = require("./text-ellipsis");
|
115
116
|
var import_time_picker = require("./time-picker");
|
116
117
|
var import_toast = require("./toast");
|
117
118
|
var import_tree_select = require("./tree-select");
|
@@ -206,11 +207,12 @@ __reExport(stdin_exports, require("./tabbar"), module.exports);
|
|
206
207
|
__reExport(stdin_exports, require("./tabbar-item"), module.exports);
|
207
208
|
__reExport(stdin_exports, require("./tabs"), module.exports);
|
208
209
|
__reExport(stdin_exports, require("./tag"), module.exports);
|
210
|
+
__reExport(stdin_exports, require("./text-ellipsis"), module.exports);
|
209
211
|
__reExport(stdin_exports, require("./time-picker"), module.exports);
|
210
212
|
__reExport(stdin_exports, require("./toast"), module.exports);
|
211
213
|
__reExport(stdin_exports, require("./tree-select"), module.exports);
|
212
214
|
__reExport(stdin_exports, require("./uploader"), module.exports);
|
213
|
-
const version = "4.0
|
215
|
+
const version = "4.1.0";
|
214
216
|
function install(app) {
|
215
217
|
const components = [
|
216
218
|
import_action_bar.ActionBar,
|
@@ -302,6 +304,7 @@ function install(app) {
|
|
302
304
|
import_tabbar_item.TabbarItem,
|
303
305
|
import_tabs.Tabs,
|
304
306
|
import_tag.Tag,
|
307
|
+
import_text_ellipsis.TextEllipsis,
|
305
308
|
import_time_picker.TimePicker,
|
306
309
|
import_toast.Toast,
|
307
310
|
import_tree_select.TreeSelect,
|
package/lib/locale/lang/uk-UA.js
CHANGED
@@ -24,7 +24,7 @@ var stdin_default = {
|
|
24
24
|
name: "\u0406\u043C'\u044F",
|
25
25
|
tel: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D",
|
26
26
|
save: "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438",
|
27
|
-
confirm: "\
|
27
|
+
confirm: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438",
|
28
28
|
cancel: "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",
|
29
29
|
delete: "\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438",
|
30
30
|
loading: "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F...",
|
@@ -34,30 +34,30 @@ var stdin_default = {
|
|
34
34
|
telInvalid: "\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443",
|
35
35
|
vanCalendar: {
|
36
36
|
end: "\u041A\u0456\u043D\u0435\u0446\u044C",
|
37
|
-
start: "\u041F\u043E\u0447\u0430\u0442\
|
37
|
+
start: "\u041F\u043E\u0447\u0430\u0442\u043E\u043A",
|
38
38
|
title: "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440",
|
39
39
|
weekdays: [
|
40
|
-
"\
|
41
|
-
"\
|
42
|
-
"\
|
43
|
-
"\
|
44
|
-
"\
|
45
|
-
"\
|
46
|
-
"\
|
40
|
+
"\u041D\u0434",
|
41
|
+
"\u041F\u043D",
|
42
|
+
"\u0412\u0442",
|
43
|
+
"\u0421\u0440",
|
44
|
+
"\u0427\u0442",
|
45
|
+
"\u041F\u0442",
|
46
|
+
"\u0421\u0431"
|
47
47
|
],
|
48
48
|
monthTitle: (year, month) => `${year}/${month}`,
|
49
|
-
rangePrompt: (maxRange) => `\
|
49
|
+
rangePrompt: (maxRange) => `\u041E\u0431\u0435\u0440\u0456\u0442\u044C \u043D\u0435 \u0431\u0456\u043B\u044C\u0448\u0435 \u043D\u0456\u0436 ${maxRange} \u0434\u043D\u0456\u0432`
|
50
50
|
},
|
51
51
|
vanCascader: {
|
52
|
-
select: "\
|
52
|
+
select: "\u041E\u0431\u0440\u0430\u0442\u0438"
|
53
53
|
},
|
54
54
|
vanPagination: {
|
55
|
-
prev: "\u041F\u043E\
|
55
|
+
prev: "\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438\u0441\u044F",
|
56
56
|
next: "\u0414\u0430\u043B\u0456"
|
57
57
|
},
|
58
58
|
vanPullRefresh: {
|
59
59
|
pulling: "\u041F\u043E\u0442\u044F\u0433\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u043E\u043D\u043E\u0432\u0438\u0442\u0438...",
|
60
|
-
loosing: "\
|
60
|
+
loosing: "\u0412\u0456\u0434\u043F\u0443\u0441\u0442\u0456\u0442\u044C, \u0449\u043E\u0431 \u043E\u043D\u043E\u0432\u0438\u0442\u0438..."
|
61
61
|
},
|
62
62
|
vanSubmitBar: {
|
63
63
|
label: "\u0423\u0441\u044C\u043E\u0433\u043E:"
|
@@ -76,11 +76,11 @@ var stdin_default = {
|
|
76
76
|
close: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438",
|
77
77
|
enable: "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E",
|
78
78
|
disabled: "\u041D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E",
|
79
|
-
placeholder: "\u041A\u043E\u0434 \u043A\u0443\u043F\u043E\u043D\
|
79
|
+
placeholder: "\u041A\u043E\u0434 \u043A\u0443\u043F\u043E\u043D\u0443"
|
80
80
|
},
|
81
81
|
vanAddressEdit: {
|
82
82
|
area: "\u041E\u0431\u043B\u0430\u0441\u0442\u044C",
|
83
|
-
areaEmpty: "\u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \
|
83
|
+
areaEmpty: "\u0411\u0443\u0434\u044C \u043B\u0430\u0441\u043A\u0430, \u043E\u0431\u0435\u0440\u0456\u0442\u044C \u0437\u043E\u043D\u0443 \u043F\u0440\u0438\u0439\u043E\u043C\u0443",
|
84
84
|
addressEmpty: "\u0410\u0434\u0440\u0435\u0441\u0430 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0431\u0443\u0442\u0438 \u043F\u043E\u0440\u043E\u0436\u043D\u044C\u043E\u044E",
|
85
85
|
addressDetail: "\u0410\u0434\u0440\u0435\u0441\u0430",
|
86
86
|
defaultAddress: "\u0412\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438 \u044F\u043A \u0430\u0434\u0440\u0435\u0441\u0443 \u0437\u0430 \u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C"
|
@@ -177,7 +177,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
177
177
|
class: "van-ellipsis",
|
178
178
|
[props.allowHtml ? "innerHTML" : "textContent"]: text
|
179
179
|
};
|
180
|
-
return (0, import_vue.createVNode)("li", data, [slots.option ? slots.option(option) : (0, import_vue.createVNode)("div", childData, null)]);
|
180
|
+
return (0, import_vue.createVNode)("li", data, [slots.option ? slots.option(option, index) : (0, import_vue.createVNode)("div", childData, null)]);
|
181
181
|
});
|
182
182
|
};
|
183
183
|
(0, import_use.useParent)(PICKER_KEY);
|
@@ -76,12 +76,13 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
76
76
|
"confirmButtonText": confirmButtonText,
|
77
77
|
"onConfirm": onConfirm,
|
78
78
|
"onCancel": onCancel
|
79
|
-
},
|
79
|
+
}, (0, import_utils.pick)(slots, import_PickerToolbar.pickerToolbarSlots)), (0, import_vue.createVNode)(import_tabs.Tabs, {
|
80
80
|
"active": activeTab.value,
|
81
81
|
"onUpdate:active": ($event) => activeTab.value = $event,
|
82
82
|
"class": bem("tabs"),
|
83
83
|
"shrink": true,
|
84
|
-
"animated": true
|
84
|
+
"animated": true,
|
85
|
+
"lazyRender": false
|
85
86
|
}, {
|
86
87
|
default: () => [props.tabs.map((title, index) => (0, import_vue.createVNode)(import_tab.Tab, {
|
87
88
|
"title": title,
|
package/lib/popover/Popover.js
CHANGED
@@ -96,6 +96,10 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
96
96
|
}
|
97
97
|
if (!popper) {
|
98
98
|
popper = createPopperInstance();
|
99
|
+
if (import_utils.inBrowser) {
|
100
|
+
window.addEventListener("animationend", updateLocation);
|
101
|
+
window.addEventListener("transitionend", updateLocation);
|
102
|
+
}
|
99
103
|
} else {
|
100
104
|
popper.setOptions(getPopoverOptions());
|
101
105
|
}
|
@@ -168,6 +172,10 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
168
172
|
});
|
169
173
|
(0, import_vue2.onBeforeUnmount)(() => {
|
170
174
|
if (popper) {
|
175
|
+
if (import_utils.inBrowser) {
|
176
|
+
window.removeEventListener("animationend", updateLocation);
|
177
|
+
window.removeEventListener("transitionend", updateLocation);
|
178
|
+
}
|
171
179
|
popper.destroy();
|
172
180
|
popper = null;
|
173
181
|
}
|
package/lib/popover/index.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
:root{--van-popover-arrow-size: 6px;--van-popover-radius: var(--van-radius-lg);--van-popover-action-width: 128px;--van-popover-action-height: 44px;--van-popover-action-font-size: var(--van-font-size-md);--van-popover-action-line-height: var(--van-line-height-md);--van-popover-action-icon-size: 20px;--van-popover-light-text-color: var(--van-text-color);--van-popover-light-background: var(--van-background-2);--van-popover-light-action-disabled-text-color: var(--van-text-color-3);--van-popover-dark-text-color: var(--van-white);--van-popover-dark-background: #4a4a4a;--van-popover-dark-action-disabled-text-color: var(--van-text-color-2)}.van-popover{position:absolute;overflow:visible;background-color:transparent;transition:opacity .15s,transform .15s}.van-popover__wrapper{display:inline-block}.van-popover__arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;border-width:var(--van-popover-arrow-size)}.van-popover__content{overflow:hidden;border-radius:var(--van-popover-radius)}.van-popover__action{position:relative;display:flex;align-items:center;box-sizing:border-box;width:var(--van-popover-action-width);height:var(--van-popover-action-height);padding:0 var(--van-padding-md);font-size:var(--van-popover-action-font-size);line-height:var(--van-line-height-md);cursor:pointer}.van-popover__action:last-child .van-popover__action-text:after{display:none}.van-popover__action-text{display:flex;flex:1;align-items:center;justify-content:center;height:100%}.van-popover__action-icon{margin-right:var(--van-padding-xs);font-size:var(--van-popover-action-icon-size)}.van-popover__action--with-icon .van-popover__action-text{justify-content:flex-start}.van-popover[data-popper-placement^=top] .van-popover__arrow{bottom:0;border-top-color:currentColor;border-bottom-width:0;
|
1
|
+
:root{--van-popover-arrow-size: 6px;--van-popover-radius: var(--van-radius-lg);--van-popover-action-width: 128px;--van-popover-action-height: 44px;--van-popover-action-font-size: var(--van-font-size-md);--van-popover-action-line-height: var(--van-line-height-md);--van-popover-action-icon-size: 20px;--van-popover-light-text-color: var(--van-text-color);--van-popover-light-background: var(--van-background-2);--van-popover-light-action-disabled-text-color: var(--van-text-color-3);--van-popover-dark-text-color: var(--van-white);--van-popover-dark-background: #4a4a4a;--van-popover-dark-action-disabled-text-color: var(--van-text-color-2)}.van-popover{position:absolute;overflow:visible;background-color:transparent;transition:opacity .15s,transform .15s}.van-popover__wrapper{display:inline-block}.van-popover__arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;border-width:var(--van-popover-arrow-size)}.van-popover__content{overflow:hidden;border-radius:var(--van-popover-radius)}.van-popover__action{position:relative;display:flex;align-items:center;box-sizing:border-box;width:var(--van-popover-action-width);height:var(--van-popover-action-height);padding:0 var(--van-padding-md);font-size:var(--van-popover-action-font-size);line-height:var(--van-line-height-md);cursor:pointer}.van-popover__action:last-child .van-popover__action-text:after{display:none}.van-popover__action-text{display:flex;flex:1;align-items:center;justify-content:center;height:100%}.van-popover__action-icon{margin-right:var(--van-padding-xs);font-size:var(--van-popover-action-icon-size)}.van-popover__action--with-icon .van-popover__action-text{justify-content:flex-start}.van-popover[data-popper-placement^=top] .van-popover__arrow{bottom:0;border-top-color:currentColor;border-bottom-width:0;margin-bottom:calc(var(--van-popover-arrow-size) * -1)}.van-popover[data-popper-placement=top]{transform-origin:50% 100%}.van-popover[data-popper-placement=top] .van-popover__arrow{left:50%;transform:translate(-50%)}.van-popover[data-popper-placement=top-start]{transform-origin:0 100%}.van-popover[data-popper-placement=top-start] .van-popover__arrow{left:var(--van-padding-md)}.van-popover[data-popper-placement=top-end]{transform-origin:100% 100%}.van-popover[data-popper-placement=top-end] .van-popover__arrow{right:var(--van-padding-md)}.van-popover[data-popper-placement^=left] .van-popover__arrow{right:0;border-right-width:0;border-left-color:currentColor;margin-right:calc(var(--van-popover-arrow-size) * -1)}.van-popover[data-popper-placement=left]{transform-origin:100% 50%}.van-popover[data-popper-placement=left] .van-popover__arrow{top:50%;transform:translateY(-50%)}.van-popover[data-popper-placement=left-start]{transform-origin:100% 0}.van-popover[data-popper-placement=left-start] .van-popover__arrow{top:var(--van-padding-md)}.van-popover[data-popper-placement=left-end]{transform-origin:100% 100%}.van-popover[data-popper-placement=left-end] .van-popover__arrow{bottom:var(--van-padding-md)}.van-popover[data-popper-placement^=right] .van-popover__arrow{left:0;border-right-color:currentColor;border-left-width:0;margin-left:calc(var(--van-popover-arrow-size) * -1)}.van-popover[data-popper-placement=right]{transform-origin:0 50%}.van-popover[data-popper-placement=right] .van-popover__arrow{top:50%;transform:translateY(-50%)}.van-popover[data-popper-placement=right-start]{transform-origin:0 0}.van-popover[data-popper-placement=right-start] .van-popover__arrow{top:var(--van-padding-md)}.van-popover[data-popper-placement=right-end]{transform-origin:0 100%}.van-popover[data-popper-placement=right-end] .van-popover__arrow{bottom:var(--van-padding-md)}.van-popover[data-popper-placement^=bottom] .van-popover__arrow{top:0;border-top-width:0;border-bottom-color:currentColor;margin-top:calc(var(--van-popover-arrow-size) * -1)}.van-popover[data-popper-placement=bottom]{transform-origin:50% 0}.van-popover[data-popper-placement=bottom] .van-popover__arrow{left:50%;transform:translate(-50%)}.van-popover[data-popper-placement=bottom-start]{transform-origin:0 0}.van-popover[data-popper-placement=bottom-start] .van-popover__arrow{left:var(--van-padding-md)}.van-popover[data-popper-placement=bottom-end]{transform-origin:100% 0}.van-popover[data-popper-placement=bottom-end] .van-popover__arrow{right:var(--van-padding-md)}.van-popover--light{color:var(--van-popover-light-text-color)}.van-popover--light .van-popover__content{background:var(--van-popover-light-background);box-shadow:0 2px 12px rgba(50,50,51,.12)}.van-popover--light .van-popover__arrow{color:var(--van-popover-light-background)}.van-popover--light .van-popover__action:active{background-color:var(--van-active-color)}.van-popover--light .van-popover__action--disabled{color:var(--van-popover-light-action-disabled-text-color);cursor:not-allowed}.van-popover--light .van-popover__action--disabled:active{background-color:transparent}.van-popover--dark{color:var(--van-popover-dark-text-color)}.van-popover--dark .van-popover__content{background:var(--van-popover-dark-background)}.van-popover--dark .van-popover__arrow{color:var(--van-popover-dark-background)}.van-popover--dark .van-popover__action:active{background-color:rgba(0,0,0,.2)}.van-popover--dark .van-popover__action--disabled{color:var(--van-popover-dark-action-disabled-text-color)}.van-popover--dark .van-popover__action--disabled:active{background-color:transparent}.van-popover--dark .van-popover__action-text:after{border-color:var(--van-gray-7)}.van-popover-zoom-enter-from,.van-popover-zoom-leave-active{transform:scale(.8);opacity:0}.van-popover-zoom-enter-active{transition-timing-function:var(--van-ease-out)}.van-popover-zoom-leave-active{transition-timing-function:var(--van-ease-in)}
|
package/lib/space/Space.js
CHANGED
@@ -51,7 +51,7 @@ function filterEmpty(children = []) {
|
|
51
51
|
});
|
52
52
|
return nodes.filter((c) => {
|
53
53
|
var _a;
|
54
|
-
return !(c && (
|
54
|
+
return !(c && (c.type === import_vue2.Comment || c.type === import_vue2.Fragment && ((_a = c.children) == null ? void 0 : _a.length) === 0 || c.type === import_vue2.Text && c.children.trim() === ""));
|
55
55
|
});
|
56
56
|
}
|
57
57
|
var stdin_default = (0, import_vue2.defineComponent)({
|
package/lib/swipe/Swipe.js
CHANGED
@@ -253,7 +253,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
253
253
|
offset: delta.value
|
254
254
|
});
|
255
255
|
if (!dragging) {
|
256
|
-
emit("dragStart"
|
256
|
+
emit("dragStart", {
|
257
|
+
index: activeIndicator.value
|
258
|
+
});
|
257
259
|
dragging = true;
|
258
260
|
}
|
259
261
|
}
|
@@ -286,7 +288,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
286
288
|
}
|
287
289
|
dragging = false;
|
288
290
|
state.swiping = false;
|
289
|
-
emit("dragEnd"
|
291
|
+
emit("dragEnd", {
|
292
|
+
index: activeIndicator.value
|
293
|
+
});
|
290
294
|
autoplay();
|
291
295
|
};
|
292
296
|
const swipeTo = (index, options = {}) => {
|
package/lib/tabs/Tabs.js
CHANGED
@@ -38,6 +38,7 @@ var import_use_route = require("../composables/use-route");
|
|
38
38
|
var import_use_refs = require("../composables/use-refs");
|
39
39
|
var import_use_expose = require("../composables/use-expose");
|
40
40
|
var import_on_popup_reopen = require("../composables/on-popup-reopen");
|
41
|
+
var import_use_visibility_change = require("../composables/use-visibility-change");
|
41
42
|
var import_sticky = require("../sticky");
|
42
43
|
var import_TabsTitle = __toESM(require("./TabsTitle"));
|
43
44
|
var import_TabsContent = __toESM(require("./TabsContent"));
|
@@ -350,6 +351,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
350
351
|
(0, import_vue2.onActivated)(setLine);
|
351
352
|
(0, import_on_popup_reopen.onPopupReopen)(setLine);
|
352
353
|
(0, import_use.onMountedOrActivated)(init);
|
354
|
+
(0, import_use_visibility_change.useVisibilityChange)(root, setLine);
|
353
355
|
(0, import_use.useEventListener)("scroll", onScroll, {
|
354
356
|
target: scroller,
|
355
357
|
passive: true
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import { type ExtractPropTypes } from 'vue';
|
2
|
+
export declare const textEllipsisProps: {
|
3
|
+
rows: {
|
4
|
+
type: (NumberConstructor | StringConstructor)[];
|
5
|
+
default: number;
|
6
|
+
};
|
7
|
+
content: {
|
8
|
+
type: import("vue").PropType<string>;
|
9
|
+
default: string;
|
10
|
+
};
|
11
|
+
expandText: {
|
12
|
+
type: import("vue").PropType<string>;
|
13
|
+
default: string;
|
14
|
+
};
|
15
|
+
collapseText: {
|
16
|
+
type: import("vue").PropType<string>;
|
17
|
+
default: string;
|
18
|
+
};
|
19
|
+
};
|
20
|
+
export type TextEllipsisProps = ExtractPropTypes<typeof textEllipsisProps>;
|
21
|
+
declare const _default: import("vue").DefineComponent<{
|
22
|
+
rows: {
|
23
|
+
type: (NumberConstructor | StringConstructor)[];
|
24
|
+
default: number;
|
25
|
+
};
|
26
|
+
content: {
|
27
|
+
type: import("vue").PropType<string>;
|
28
|
+
default: string;
|
29
|
+
};
|
30
|
+
expandText: {
|
31
|
+
type: import("vue").PropType<string>;
|
32
|
+
default: string;
|
33
|
+
};
|
34
|
+
collapseText: {
|
35
|
+
type: import("vue").PropType<string>;
|
36
|
+
default: string;
|
37
|
+
};
|
38
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "clickAction"[], "clickAction", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
39
|
+
rows: {
|
40
|
+
type: (NumberConstructor | StringConstructor)[];
|
41
|
+
default: number;
|
42
|
+
};
|
43
|
+
content: {
|
44
|
+
type: import("vue").PropType<string>;
|
45
|
+
default: string;
|
46
|
+
};
|
47
|
+
expandText: {
|
48
|
+
type: import("vue").PropType<string>;
|
49
|
+
default: string;
|
50
|
+
};
|
51
|
+
collapseText: {
|
52
|
+
type: import("vue").PropType<string>;
|
53
|
+
default: string;
|
54
|
+
};
|
55
|
+
}>> & {
|
56
|
+
onClickAction?: ((...args: any[]) => any) | undefined;
|
57
|
+
}, {
|
58
|
+
content: string;
|
59
|
+
rows: string | number;
|
60
|
+
expandText: string;
|
61
|
+
collapseText: string;
|
62
|
+
}>;
|
63
|
+
export default _default;
|
@@ -0,0 +1,127 @@
|
|
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 stdin_exports = {};
|
19
|
+
__export(stdin_exports, {
|
20
|
+
default: () => stdin_default,
|
21
|
+
textEllipsisProps: () => textEllipsisProps
|
22
|
+
});
|
23
|
+
module.exports = __toCommonJS(stdin_exports);
|
24
|
+
var import_vue = require("vue");
|
25
|
+
var import_vue2 = require("vue");
|
26
|
+
var import_use = require("@vant/use");
|
27
|
+
var import_utils = require("../utils");
|
28
|
+
const [name, bem] = (0, import_utils.createNamespace)("text-ellipsis");
|
29
|
+
const textEllipsisProps = {
|
30
|
+
rows: (0, import_utils.makeNumericProp)(1),
|
31
|
+
content: (0, import_utils.makeStringProp)(""),
|
32
|
+
expandText: (0, import_utils.makeStringProp)(""),
|
33
|
+
collapseText: (0, import_utils.makeStringProp)("")
|
34
|
+
};
|
35
|
+
var stdin_default = (0, import_vue2.defineComponent)({
|
36
|
+
name,
|
37
|
+
props: textEllipsisProps,
|
38
|
+
emits: ["clickAction"],
|
39
|
+
setup(props, {
|
40
|
+
emit
|
41
|
+
}) {
|
42
|
+
const text = (0, import_vue2.ref)("");
|
43
|
+
const expanded = (0, import_vue2.ref)(false);
|
44
|
+
const hasAction = (0, import_vue2.ref)(false);
|
45
|
+
const root = (0, import_vue2.ref)();
|
46
|
+
const pxToNum = (value) => {
|
47
|
+
if (!value)
|
48
|
+
return 0;
|
49
|
+
const match = value.match(/^\d*(\.\d*)?/);
|
50
|
+
return match ? Number(match[0]) : 0;
|
51
|
+
};
|
52
|
+
const calcEllipsised = () => {
|
53
|
+
const cloneContainer = () => {
|
54
|
+
if (!root.value)
|
55
|
+
return;
|
56
|
+
const originStyle = window.getComputedStyle(root.value);
|
57
|
+
const container2 = document.createElement("div");
|
58
|
+
const styleNames = Array.prototype.slice.apply(originStyle);
|
59
|
+
styleNames.forEach((name2) => {
|
60
|
+
container2.style.setProperty(name2, originStyle.getPropertyValue(name2));
|
61
|
+
});
|
62
|
+
container2.style.position = "fixed";
|
63
|
+
container2.style.zIndex = "-9999";
|
64
|
+
container2.style.top = "-9999px";
|
65
|
+
container2.style.height = "auto";
|
66
|
+
container2.style.minHeight = "auto";
|
67
|
+
container2.style.maxHeight = "auto";
|
68
|
+
container2.innerText = props.content;
|
69
|
+
document.body.appendChild(container2);
|
70
|
+
return container2;
|
71
|
+
};
|
72
|
+
const calcEllipsisText = (container2, maxHeight2) => {
|
73
|
+
const {
|
74
|
+
content,
|
75
|
+
expandText
|
76
|
+
} = props;
|
77
|
+
const dot = "...";
|
78
|
+
let left = 0;
|
79
|
+
let right = content.length;
|
80
|
+
let res = -1;
|
81
|
+
while (left <= right) {
|
82
|
+
const mid = Math.floor((left + right) / 2);
|
83
|
+
container2.innerText = content.slice(0, mid) + dot + expandText;
|
84
|
+
if (container2.offsetHeight <= maxHeight2) {
|
85
|
+
left = mid + 1;
|
86
|
+
res = mid;
|
87
|
+
} else {
|
88
|
+
right = mid - 1;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
return content.slice(0, res) + dot;
|
92
|
+
};
|
93
|
+
const container = cloneContainer();
|
94
|
+
if (!container)
|
95
|
+
return;
|
96
|
+
const {
|
97
|
+
paddingBottom,
|
98
|
+
paddingTop,
|
99
|
+
lineHeight
|
100
|
+
} = container.style;
|
101
|
+
const maxHeight = (Number(props.rows) + 0.5) * pxToNum(lineHeight) + pxToNum(paddingTop) + pxToNum(paddingBottom);
|
102
|
+
if (maxHeight < container.offsetHeight) {
|
103
|
+
hasAction.value = true;
|
104
|
+
text.value = calcEllipsisText(container, maxHeight);
|
105
|
+
} else {
|
106
|
+
hasAction.value = false;
|
107
|
+
text.value = props.content;
|
108
|
+
}
|
109
|
+
document.body.removeChild(container);
|
110
|
+
};
|
111
|
+
const onClickAction = (event) => {
|
112
|
+
expanded.value = !expanded.value;
|
113
|
+
emit("clickAction", event);
|
114
|
+
};
|
115
|
+
const renderAction = () => (0, import_vue.createVNode)("span", {
|
116
|
+
"class": bem("action"),
|
117
|
+
"onClick": onClickAction
|
118
|
+
}, [expanded.value ? props.collapseText : props.expandText]);
|
119
|
+
(0, import_vue2.onMounted)(calcEllipsised);
|
120
|
+
(0, import_vue2.watch)(() => [props.content, props.rows], calcEllipsised);
|
121
|
+
(0, import_use.useEventListener)("resize", calcEllipsised);
|
122
|
+
return () => (0, import_vue.createVNode)("div", {
|
123
|
+
"ref": root,
|
124
|
+
"class": bem()
|
125
|
+
}, [expanded.value ? props.content : text.value, hasAction.value ? renderAction() : null]);
|
126
|
+
}
|
127
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
:root{--van-text-ellipsis-line-height: 1.6;--van-text-ellipsis-action-color: var(--van-blue)}.van-text-ellipsis{line-height:var(--van-text-ellipsis-line-height);white-space:pre-wrap}.van-text-ellipsis__action{cursor:pointer;color:var(--van-text-ellipsis-action-color)}.van-text-ellipsis__action:active{opacity:var(--van-active-opacity)}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
export declare const TextEllipsis: import("../utils").WithInstall<import("vue").DefineComponent<{
|
2
|
+
rows: {
|
3
|
+
type: (NumberConstructor | StringConstructor)[];
|
4
|
+
default: number;
|
5
|
+
};
|
6
|
+
content: {
|
7
|
+
type: import("vue").PropType<string>;
|
8
|
+
default: string;
|
9
|
+
};
|
10
|
+
expandText: {
|
11
|
+
type: import("vue").PropType<string>;
|
12
|
+
default: string;
|
13
|
+
};
|
14
|
+
collapseText: {
|
15
|
+
type: import("vue").PropType<string>;
|
16
|
+
default: string;
|
17
|
+
};
|
18
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "clickAction"[], "clickAction", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
19
|
+
rows: {
|
20
|
+
type: (NumberConstructor | StringConstructor)[];
|
21
|
+
default: number;
|
22
|
+
};
|
23
|
+
content: {
|
24
|
+
type: import("vue").PropType<string>;
|
25
|
+
default: string;
|
26
|
+
};
|
27
|
+
expandText: {
|
28
|
+
type: import("vue").PropType<string>;
|
29
|
+
default: string;
|
30
|
+
};
|
31
|
+
collapseText: {
|
32
|
+
type: import("vue").PropType<string>;
|
33
|
+
default: string;
|
34
|
+
};
|
35
|
+
}>> & {
|
36
|
+
onClickAction?: ((...args: any[]) => any) | undefined;
|
37
|
+
}, {
|
38
|
+
content: string;
|
39
|
+
rows: string | number;
|
40
|
+
expandText: string;
|
41
|
+
collapseText: string;
|
42
|
+
}>>;
|
43
|
+
export default TextEllipsis;
|
44
|
+
export { textEllipsisProps } from './TextEllipsis';
|
45
|
+
export type { TextEllipsisProps } from './TextEllipsis';
|
46
|
+
export type { TextEllipsisThemeVars } from './types';
|
47
|
+
declare module 'vue' {
|
48
|
+
interface GlobalComponents {
|
49
|
+
VanTextEllipsis: typeof TextEllipsis;
|
50
|
+
}
|
51
|
+
}
|
@@ -0,0 +1,35 @@
|
|
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
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
21
|
+
mod
|
22
|
+
));
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
24
|
+
var stdin_exports = {};
|
25
|
+
__export(stdin_exports, {
|
26
|
+
TextEllipsis: () => TextEllipsis,
|
27
|
+
default: () => stdin_default,
|
28
|
+
textEllipsisProps: () => import_TextEllipsis2.textEllipsisProps
|
29
|
+
});
|
30
|
+
module.exports = __toCommonJS(stdin_exports);
|
31
|
+
var import_utils = require("../utils");
|
32
|
+
var import_TextEllipsis = __toESM(require("./TextEllipsis"));
|
33
|
+
var import_TextEllipsis2 = require("./TextEllipsis");
|
34
|
+
const TextEllipsis = (0, import_utils.withInstall)(import_TextEllipsis.default);
|
35
|
+
var stdin_default = TextEllipsis;
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -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);
|
@@ -87,12 +87,13 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
87
87
|
const renderSidebar = () => {
|
88
88
|
const Items = props.items.map((item) => (0, import_vue.createVNode)(import_sidebar_item.SidebarItem, {
|
89
89
|
"dot": item.dot,
|
90
|
-
"title": item.text,
|
91
90
|
"badge": item.badge,
|
92
91
|
"class": [bem("nav-item"), item.className],
|
93
92
|
"disabled": item.disabled,
|
94
93
|
"onClick": onClickSidebarItem
|
95
|
-
},
|
94
|
+
}, {
|
95
|
+
title: () => slots["nav-text"] ? slots["nav-text"](item) : item.text
|
96
|
+
}));
|
96
97
|
return (0, import_vue.createVNode)(import_sidebar.Sidebar, {
|
97
98
|
"class": bem("nav"),
|
98
99
|
"modelValue": props.mainActiveIndex,
|