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.
Files changed (66) hide show
  1. package/README.md +15 -10
  2. package/es/back-top/BackTop.d.ts +3 -0
  3. package/es/back-top/BackTop.mjs +3 -2
  4. package/es/back-top/index.css +1 -1
  5. package/es/back-top/index.d.ts +2 -0
  6. package/es/back-top/types.d.ts +3 -0
  7. package/es/dropdown-item/DropdownItem.mjs +1 -0
  8. package/es/dropdown-menu/DropdownMenu.mjs +2 -2
  9. package/es/dropdown-menu/types.d.ts +1 -0
  10. package/es/field/index.css +1 -1
  11. package/es/index.d.ts +2 -1
  12. package/es/index.mjs +4 -1
  13. package/es/locale/lang/uk-UA.mjs +15 -15
  14. package/es/picker/PickerColumn.mjs +1 -1
  15. package/es/picker-group/PickerGroup.mjs +5 -4
  16. package/es/popover/Popover.mjs +9 -1
  17. package/es/popover/index.css +1 -1
  18. package/es/space/Space.mjs +2 -2
  19. package/es/swipe/Swipe.mjs +6 -2
  20. package/es/tabs/Tabs.mjs +2 -0
  21. package/es/text-ellipsis/TextEllipsis.d.ts +63 -0
  22. package/es/text-ellipsis/TextEllipsis.mjs +108 -0
  23. package/es/text-ellipsis/index.css +1 -0
  24. package/es/text-ellipsis/index.d.ts +51 -0
  25. package/es/text-ellipsis/index.mjs +10 -0
  26. package/es/text-ellipsis/style/index.d.ts +1 -0
  27. package/es/text-ellipsis/style/index.mjs +2 -0
  28. package/es/text-ellipsis/types.d.ts +3 -0
  29. package/es/text-ellipsis/types.mjs +0 -0
  30. package/es/tree-select/TreeSelect.mjs +3 -2
  31. package/lib/back-top/BackTop.d.ts +3 -0
  32. package/lib/back-top/BackTop.js +2 -1
  33. package/lib/back-top/index.css +1 -1
  34. package/lib/back-top/index.d.ts +2 -0
  35. package/lib/back-top/types.d.ts +3 -0
  36. package/lib/dropdown-item/DropdownItem.js +1 -0
  37. package/lib/dropdown-menu/DropdownMenu.js +2 -2
  38. package/lib/dropdown-menu/types.d.ts +1 -0
  39. package/lib/field/index.css +1 -1
  40. package/lib/index.css +1 -1
  41. package/lib/index.d.ts +2 -1
  42. package/lib/index.js +4 -1
  43. package/lib/locale/lang/uk-UA.js +15 -15
  44. package/lib/picker/PickerColumn.js +1 -1
  45. package/lib/picker-group/PickerGroup.js +3 -2
  46. package/lib/popover/Popover.js +8 -0
  47. package/lib/popover/index.css +1 -1
  48. package/lib/space/Space.js +1 -1
  49. package/lib/swipe/Swipe.js +6 -2
  50. package/lib/tabs/Tabs.js +2 -0
  51. package/lib/text-ellipsis/TextEllipsis.d.ts +63 -0
  52. package/lib/text-ellipsis/TextEllipsis.js +127 -0
  53. package/lib/text-ellipsis/index.css +1 -0
  54. package/lib/text-ellipsis/index.d.ts +51 -0
  55. package/lib/text-ellipsis/index.js +35 -0
  56. package/lib/text-ellipsis/style/index.d.ts +1 -0
  57. package/lib/text-ellipsis/style/index.js +2 -0
  58. package/lib/text-ellipsis/types.d.ts +3 -0
  59. package/lib/text-ellipsis/types.js +15 -0
  60. package/lib/tree-select/TreeSelect.js +3 -2
  61. package/lib/vant.cjs.js +970 -849
  62. package/lib/vant.es.js +966 -845
  63. package/lib/vant.js +984 -850
  64. package/lib/vant.min.js +1 -1
  65. package/lib/web-types.json +1 -1
  66. 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.10";
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.10";
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,
@@ -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: "\u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438",
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\u0438",
37
+ start: "\u041F\u043E\u0447\u0430\u0442\u043E\u043A",
38
38
  title: "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440",
39
39
  weekdays: [
40
- "\u043D\u0435\u0434\u0456\u043B\u044F",
41
- "\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A",
42
- "\u0432\u0456\u0432\u0442\u043E\u0440\u043E\u043A",
43
- "\u0441\u0435\u0440\u0435\u0434\u0430",
44
- "\u0447\u0435\u0442\u0432\u0435\u0440",
45
- "\u043F'\u044F\u0442\u043D\u0438\u0446\u044F",
46
- "\u0441\u0443\u0431\u043E\u0442\u0430"
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) => `\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u043D\u0435 \u0431\u0456\u043B\u044C\u0448\u0435 \u043D\u0456\u0436 ${maxRange} \u0434\u043D\u0456\u0432`
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: "\u0412\u0438\u0431\u0440\u0430\u0442\u0438"
52
+ select: "\u041E\u0431\u0440\u0430\u0442\u0438"
53
53
  },
54
54
  vanPagination: {
55
- prev: "\u041F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u0456\u0439",
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: "\u041F\u043E\u0433\u0430\u043D\u043E \u043E\u043D\u043E\u0432\u0438\u0442\u0438..."
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\u0430"
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, \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u0437\u043E\u043D\u0443 \u043F\u0440\u0438\u0439\u043E\u043C\u0443",
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
- }, null), (0, import_vue.createVNode)(import_tabs.Tabs, {
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,
@@ -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
  }
@@ -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;transform:translate(-50%);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%}.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;transform:translateY(-50%);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%}.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;transform:translateY(-50%);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%}.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;transform:translate(-50%);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%}.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)}
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)}
@@ -51,7 +51,7 @@ function filterEmpty(children = []) {
51
51
  });
52
52
  return nodes.filter((c) => {
53
53
  var _a;
54
- return !(c && (typeof Comment !== "undefined" && c.type === Comment || c.type === import_vue2.Fragment && ((_a = c.children) == null ? void 0 : _a.length) === 0 || c.type === Text && c.children.trim() === ""));
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)({
@@ -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,2 @@
1
+ require("../../style/base.css");
2
+ require("../index.css");
@@ -0,0 +1,3 @@
1
+ export type TextEllipsisThemeVars = {
2
+ textEllipsisActionColor?: string;
3
+ };
@@ -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
- }, null));
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,